从Scratch到Python(上)

从Scratch到Python(上)

我是一年级开始跟着工程学院的大学生们学Scratch的,后来也学了一点Python。很多小朋友和我一样,也是从Scratch起步的,后来也想转入Python、C++等语言。这是爷爷和我一起写的文章,希望对大家有帮助。

一、搭建Python编程环境

1.1 安装一个Python集成开发环境

Python分2版与3版,相互之间有一些不兼容。我们下载Pythn3版吧,现在好像最新的是3.7.3。你自己已经下载安装成功过Python2,3版也差不多,详情这里就不介绍了。

1.2 进去看看

安装后,我们点选Windows的开始|IDLE(Python 3.7 32-bit),就出来“Python 3.7.3 Shell”窗口。这是Python的主窗口。Shell,外壳,Python的外壳,也就是Python与你打交道的界面。这个是Python的主窗口,后面我们会看到Python的其它窗口。

从Scratch到Python(上)

在显示版权后,显示“>>>”。这是Python的提示符(prompt),提示你可以输入你给Python的命令(就是你想让Python做什么事的指令)。

1.3 可以当计算器用

在编程之前,我们先把Python当计算器玩玩。我们在提示符“>>>”后键入“7*6”,按回车键后,可以看到下面出现“42”。如果我们键入“8+7*6”,出来结果是:50。原来,Python也知道先乘除后加减。我们再来试试括号,键入“(8+7)*6”,结果就变成了:90。Python也是先算括号内的,再算括号外的。

1.4 键入简单语句

现在我们来试着输入一条语句:

>>>print("Hello World!")

Hello World!

>>>

这条语句就是让Python显示命令后面跟随的字符串。字符串,就是一个单词,也可以一个句子。字符串要用双引号或单引号括起来。

2.1 什么是程序?

上面输入表达式,不算程序;逐个输入命令行,也不是程序。程序是什么?程序是把若干条语句,放在一个文件,在Python的开发环境里执行这个文件,才叫程序。在执行文件时,按照你编写的语句次序逐条执行这些语句。我们回忆一下Scratch,也是一样一样的。只不过,在Scratch里,是一堆积木按执行次序放在程序文件里,而Python是把一些语句按执行次序放在程序文件里。Scratch程序和Python程序,在本质上是相同的。

2.2 第一个程序

现在我们要开始编程了。首先,我们要找一个文本编辑器,以便输入程序。Windows的“记事本”就是一个文本编辑器。Python集成开发环境里也包含一个文本编辑器,用这个比较方便,因为可以直接运行程序。

点选“File|New File”,会弹出另一个窗口,标题为“Untitled”。这就是Python内置的文本编辑器。Untitled,意思是“尚无标题”。现在,我们把下面的程序输入到这个窗口里去。

print("I love pizza!")

print("pizza " * 2)

print("yum " * 4)

print("I'm full.")

注意:字符串"pizza "和"yum "里,末尾都有一个空格。

我们发现,输入的字符有三种颜色。关键字print是红色,用双引号括起的字符串为绿色,其它字符为黑色。这是为了便于阅读程序文本。

这print()是个内置函数。你回忆一下,Scratch里也有类似于print()的积木:“说[ ]”,它就是把跟在它后面的参数打印出来。参数可以是数值,也可以是字符串。

现在我们要把它存储为Python程序文件。点选“File|Save As...”,弹出“另存为”窗口。选择你要保存的文件夹,然后在“文件名”文本编辑框里输入文件名和扩展名。譬如,给我们的第一个程序取名为“First”,要输入“First.py”。注意:必须加扩展名“.py”,Python才会认定这个文件是Python程序文件。以后如果修改了这个程序,要保存修改时,点选“File|Save”就可以了。

创建了程序文件后,我们就可以运行我们编写的第一个Python程序了。点选“Run|Run Module F5”,我们发现,又回到了“Python Shell”窗口,而且出现了一行:

RESTART:完整的程序文件名

它的下面就是我们编写的第一个程序的运行结果:

I love pizza!

pizza pizza

yum yum yum yum

I’m full.

第2、3语句里出现了操作符*。*如果放在两个数值之间,它就是乘号,所有的编程语言都这样。你知道,Scratch、BASIC、C都是这样。在Python里,*还有一个特别的用途:复写或倍增字符串。

"pizza " * 2 等效于 "pizza pizza "

"yum " * 4 等效于 "yum yum yum yum "

因为我们预先在字符串末尾加了空格,因此,倍增后的每个单词是被空格隔开的。你会想到,如果我们希望倍增后单词是连在一起的,不加空格就行了。

2.3 第二个程序

稍为复杂一点,我们编一个做一位数乘法的程序。让计算机出两个一位随机数,你输入它们的积,如果正确,程序说“OK”。

import random

m1 = random.randint(1, 9)

m2 = random.randint(1, 9)

print(m1, m2)

p = input("Product = ")

if int(p) == m1 * m2:

		print("OK!")

else:

   print("Error!")

下面逐条解释这个程序。第一条语句,import的意思是导入,在Python里,你要使用随机数,你必须先导入随机数发生器模块,这个在Scratch里是不需要的。第二、三句是分别产生1~9的随机数到两个乘数。Scratch里是“在[1]到[9]间随机选一个数”积木。m1、m2,还有下面的p是三个变量。这个比Scratch简单,不需要创建,你第一次对它赋值,就等于创建了它。第四句是打印出两个乘数。一条print语句可以打印几个参数,你用逗号隔开就可以了。第五句使用了input(输入)函数来从键盘上读取数据。括号内是提示字符串。你输入的数据存放在变量p里。Scratch是用两个积木“询问[Product = ]并等待”和“回答”配合来完成输入。第六句是if语句,判断是否做对?如果你的答数和电脑计算结果一致,就显示“OK!”,否则显示“Error!”。这个和Scratch的“如果< >那么,否则”积木是一样的。注意:在if语句和else语句后面都有一个冒号。还有一点更重要:if和else下面的语句必须缩进(使用Tab键)。这个下面会详细说。

语句中,为啥要把p放在函数int()里呢?因为input()函数输入的是字符串,必须用int()函数转换成整数,才能和m1*m2比较。

到这里,我们清楚了,Scratch编程如同搭积木,而在Python里编程,需要一个一个字符输进去。输错了,程序就不能正常运行,也就是程序里有了BUG(虫),就需要DEBUG(除虫)。DEBUG有点麻烦,所以我们要仔细输入程序文本,尽可能不让它出错。

2.4 注释

老程序员都知道,即使是自己编写的程序,隔一段时间拿出来,自己也可能看不懂。这就需要在程序里加上注释。如果你的程序打算让别人看,更应该加上注释。我们试着给上面第二个程序加上注释。

import random  # 导入随机数发生模块

m1 = random.randint(1, 9)  # 随机产生被乘数

m2 = random.randint(1, 9) # 随机产生乘数

print(m1, m2)              # 显示被乘数与乘数

p = input("Product = ")    # 输入你计算出来的积

if int(p) == m1 * m2:            # 如果与电脑计算的积相同

   print("OK!")               # 告诉你答对了

else:

   print("Error!")            # 否则告诉你答错了

在一行内出现注释符#时,#号前的内容是语句,#后的内容全部是注释。如果#号放在行首,那整行全是注释。编译器遇到#,就跳过注释,去编译下一行。

有一个例外,在两个引号之间的#,不是注释符,而是字符串里的一个字符。

Scratch程序里也可以加注释,你用过的。多加注释,是一个很好的编程习惯!

三、数据类型、常量与变量

3.1 数据类型(初步)

我们常用四种数据类型:整数、浮点数、字符串和逻辑值。

3.1.1 整数

4、100、-256、-1000都是整数。我们小学学的自然数都是正整数,这里要学到负整数。以气温为例。0度,并不是最冷的。冬天,还有零下的。我们宁波,最低也就是零下几度,在北方,还有零下三十多、四十多度的。再以屏幕坐标为例。通常以屏幕中心点为0点,右边x坐标为正,左边为负;上面y坐标为正,下面为负。我们标注地形高度时,往往以海平面为基准。譬如,珠穆朗玛峰是8844米。新疆吐鲁番有3%土地低于海平面,最低处-154米。

3.1.2 浮点数

1.4、0.05,这些带小数的数值在计算机里是浮点数。在生活中,1元2角3分,可以写成1.23元;爷爷身高1.73米,也是小数。

同一个数,写成4,是整数,写成4.0,就变成浮点数了。

3.1.3 字符串

一个字符、一个单词、一句话,这些都是字符串。要用双引号括起来,譬如前面的"I love pizza!"、"pizza "、"yum "、"I'm full."都是。在Scratch里,字符串不用加双引号,在Python里不能省略。

注意:下面当我们说整数和浮点数时,我们使用“数值”这个词,如果还包括字符串,我们就使用另一个词“数据”。这就是说,字符串不是数值,或者说,数据分数值型数据与非数值型数据。前者可以加减乘除,后者不能加减乘除。在Python里,3,是一个数值,而"3"则是一个字符。

3.1.4 逻辑值

只有true和false两个值。这个和Scratch一样,用法也一样。

3.2 常量

上面举例的都是常量。在程序运行中,值不变的叫常量。

3.3 变量

Python的变量与Scratch完全相同。唯一的区别是,Scratch在使用变量前,先要创建这个变量,而Python不需要。Python在第一次使用某个变量时,就先自动创建了这个变量。

四、操作符(初步)

前面说的常量、变量,在程序里用作操作数。程序里还有操作符,用来对操作数进行“运算”(处理)。用操作符把操作数连接起来,就构成了表达式。表达式就相当于数学里的算式。

4.1 加、减、乘、除、取余

操作符分别是:+、-、*、/、//。它们也是先乘除后加减。同样,用圆括号()可以改变运算的次序。Scratch里也有相对应的四个积木。不过,Scratch里没有括号,它是靠积木搭建次序来确定运算次序的。

操作符/计算结果总是浮点数。譬如,12 / 3的结果是4.0,而不是4。譬如:

>>> print(7 / 2)

3

要得到的是整数商和余数,可以同时使用//和%:

>>> print(7 / 2)

3

>>>print(7 % 2)

1

Scratch也有取余积木:“○除以○的余数”。

4.2 串接符+

用来串接两个字符串。譬如,"I am LinChen. "+"I love pizza!"等价于"I am LinChen. I love pizza!"。Scratch里也有等效的积木:“连接[hello]和[world]”。

+号在两个数值之间是加号,放在两个字符串之间是串接符。

4.3 字串倍增符*

我们在2.2节里已经介绍过了,"yum " * 4等效于"yum yum yum yum "。

*号放在两个数值之间是乘号。如果前面是字符串,后面是数值,那就是倍增符了。

Scratch没有这样的积木。

4.3 赋值操作符

把一个数据放进一个变量里,叫赋值。如:

a = 12

Scratch也有同样的积木“将[ ]设定为[ ]”

你也可以把一个表达式赋给变量,如:

a = a * 3 + 12

编写表达式,是Python清晰明了,和数学的算式几乎一样。而在Scratch里,复杂表达式的可读性就差了。很复杂的表达式,一眼看不明白。

4.4 自增+=与自减-=

下列程序:

number = 7

number += 3

print(number)

的运行结果是:10。

Scratch也有这样的积木。我们把这个翻译成Scratch程序就是:

“将[number]设定为[7]”

“将[number]增加(3)”

“说(number)”

自减符-=是让变量自己减去个数。Scratch没有相同的积木怎么解决?你懂的。

展开阅读全文

页面更新:2024-03-26

标签:乘数   常量   积木   整数   表达式   次序   字符串   数值   注释   变量   语句   窗口   两个   操作   程序

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top