从Scratch到Python 04 变量与数据类型

在上一节课,我们学习了使用input和print进行输入输出程序设计的方法,有了输入和输出,我们就要把精力放在中间的程序处理上了。要进行处理,不可避免地就要用到变量。在Scratch程序中我们使用变量已经轻车熟路,这节课我们就来看看,在Python中是怎么使用变量的。

一、变量的定义和使用

Scratch中要使用变量,我们一般会这样处理:建立一个变量(定义变量,这时要选择它的应用范围是适用于所有角色还是当前角色,即公有变量或私有变量)—— 将变量设为(初始化)—— 将变量增加(或减少)——输出变量值(直接说出变量,或将它与其它内容连接起来输出等)。

在Python中,我们也要先定义变量,再使用它们。定义的方法有所不同。在上一节课我们是把input返回的内容赋值给了变量,这是其中一种方式,一般情况下,我们会直接写一个变量名称,然后后面写“=”号和它的初始取值,这样就完成了变量的定义,同时也让它有了初始值。

关于变量定义和使用,有以下几点需要注意:

1、变量的命名规则

变量的名字在Python中被视为一种标识符,函数的名字也是一种标识符。所有的标识符命名都必须遵循以下规则:

  • 标识符可以由字符、下划线和数字组成,中间不能有空格;
  • 不能以数字开头;
  • 命名时英文字母区分大小写,比如 Dog和dog就是两个变量;
  • 不能使用保留字或Python内置的函数作为变量名,比如我们使用过的input和print。

那么什么是保留字?就是Python语言本身保留自己使用的关键字,就是下面这些:

Python的保留字

有些同学可能会有一些问题,比如:

  • 我能不能用汉字当变量?答案是可以,但是不推荐,用汉字命名变量感觉很怪,输入也不方便;
  • 既然 input 是内置函数,我用Input当变量行不?第一个字母大写了,在Python看来,这是两个不同的标识符,因此是可以的,但是这样的变量是不“好”的变量。我们要养成良好的命名习惯。

2、变量命名的好习惯

  • 一般用小写字母命名变量
  • 变量名称不要直接用a、b这样没有意义的字母,尽可能与它的用途结合起来
  • 变量名称尽可能简单,不要太复杂
  • 如果是多个单词组成的变量,可以用 “_”连接起来;
  • 如果当作固定值来用的变量,可以用全大写字母表示,比如圆周率PI。

3、变量可以多次赋值

看这段代码:

### 变量赋值示例代码
a=1
print(a)    # 输出数字1
a='哈利波特'
print(a)    # 输出“哈利波特”四个字
a=1+1
print(a)    # 输出数字2

事实上,在Python的变量并不是一个盒子,我们把什么都向盒子里装,那样的话变量没了盒子里的东西也没了。我们可以把变量名当作一个标签,当你把它“贴”在一个数字或其它类型的数据上时,就可以用这个名字输出它对应的内容,多次赋值会以最后一次为准,相当于你最后把标签粘贴到哪里,变量就代表哪个数据。不同的标签(也就是变量)可以贴在同一个数据上,这样只有这个数据对应的变量全部被删除的时候,数据才会被Python删除。

4、多个变量可以一次赋值

# 一次给多个变量赋值示例代码
a, b = 20, 5.5  # a=20,b=5.5
print(a, b)  # 输出20 5.5

二、Python中的数据类型

在Scratch中,我们使用变量是不用操心它是什么数据类型的。不管你在变量里面保存了什么都可以直接使用。看下面这段指令:

Scratch没出错,而是直接说“180”,把“我的变量”忽略了。实际上,我的变量是一串文字,180是数字,它们属于不同的数据类型,怎么能相加呢?可是你非要这么写,Scratch为了不打击你的自信,就只好自作主张地把“我的变量”忽略,这是面对初学者一种不得已的作法。但是如果你用Python敢随便乱写,Python马上毫不客气地回一句:你这是什么代码?我不执行!

既然我们现在学的是“严肃”的编程语言,你就必须得按这门语言的语法来。知道什么样的数据类型之间能够做哪些运算,这是最基本的。我们来了解一下Python中的数据类型:

前三个我们在Scratch编程中就接触过,后面几个就比较陌生了。我们先简单介绍,后面的学习会逐步熟悉它们:

  • Number 数字:整数、小数等。
  • String 字符串:用单引号或双引号包括起来的字符
  • List 列表:用 “[ ]” (英文状态下的中括号)包括起来的一组数据,数据之间用“,”(英文状态下的逗号)分隔。比如:[1,2,’数据1′,’数据2′]。
  • Tuple 元组:用 “( )” (英文状态下的小括号)包括起来的一组数据,数据之间用“,”(英文状态下的逗号)分隔。比如:(1,2,’数据1′,’数据2′)。元组(tuple)与列表类似,不同之处在于元组的元素不能修改。
  • Dictionary 字典:字典是用“{ }”(大括号)包括起来的一组数据,但是和列表、元组不同,字典中的数据元素包括“键”和“值”两部分,例如{ ‘语文’ : 99 ,’数学’ : 100, ‘英语’ : 98 }。
  • Set 集合:集合是不重复的一组数据。

后面的四种数据类型,都是可以包括其它类型数据的,我们可以把它们都想象成“容器”,只是对容器中数据的要求不一样。

三、数字类型:Number

数字是我们最常用的数据类型,它进一步分为int(整数)、float(浮点数,就是小数)、bool(布尔型)、complex(复数),我们常用的是前三个:

int数据类型

int是英语单词Integer的缩写,它就是“整数”的意思。int用来表示整数数值(没有小数部分),包括正整数、负整数和0。整数可以用不同的进制来表示:

  • 十进制整数:由数字0-9组成,进位规则为“逢十进一”。
  • 二进制整数:由0和1两个数组成,进位规则为“逢二进一”,以0b或0B开头。比如110转换为十进制为6。
  • 八进制整数:由0-7数字组成,进位规则为“逢八进一”,以0o或0O开头,比如0o110转换为10进制是72。
  • 十六进制整数:由数字0-9和字母A-F组成,进位规则为“逢十六进一”,以0x或0X开头,比如0x110转换为10进制是272。

进制之间的转换还是有点复杂的,我们现在暂不涉及这方面的内容。如果你想知道其它进制的数据对应的十进制是多少,可以直接在海龟编辑器里面用print函数把它们打印出来:

# 输出不同进制的数字
print(0b110)  # 打印出6
print(0o110)  # 打印出72
print(0x110)  # 打印出272

float数据类型

float是英语“浮动”的意思。float数据类型的意思是“浮点数”,也就是小数,由整数部分与小数部分组成,比如3.14、-5.38等。为什么称它为“浮点数”呢?因为同一个小数,用科学计数法表示时,小数点的位置是不固定的。比如 3.14这个数字,你可以表示为 0.314e1(e1代表乘以1个10),也可以表示为0.0314e2(e2代表连续乘以2个10,也就是乘以100),甚至可以表示为31.4e-1(e-1表示除以10)、314e-2(e-2表示连续除以2个10,即除以100),以此类推。这么做的目的是为了计算机表示不同精度数据的需要,我们以后还会讲一些float数据类型的用法。

# 以下五行程序都会打印出3.14
print(3.14)  
print(0.314e1)  
print(0.0314e2)
print(31.4e-1)
print(314e-2)

bool数据类型

bool类型也叫“布尔类型”,就是我们以前用过的“真”、“假”这两个逻辑值,真值用True表示,假值用False表示。bool类型也可以表示为数值,True表示1,False表示0。

在Scratch中我们学过,关系运算的结果就是一种布尔类型数据。比如1=1的结果是True,1=2的结果是False。布尔值之间还可以用与、或、不成立指令进行逻辑运算。一般来说,我们会使用某些条件生成的布尔值来让程序进行判断,从而执行不同的分支代码。比如“如果……那么……”和“重复执行直到……”。在Python中也是类似的,我们以后再讲。现在你可以输入代码体验一下:

# 输出bool值
print(1==1)  # 这里的“==”是“相等”的意思,输出True(真值)
print(1==1)  # 输出False(假值)

四、课后作业

请将本节课程中老师的示例代码输入到海龟编辑器中,观察它们的运行结果。尝试更改数据内容,体会不同数据类型的用法。

给TA赞助
共{{data.count}}人
人已赞助
综合资讯

scratch接水果,电子学会图形化编程等级考试二级真题

2023-6-2 9:32:24

综合资讯

从Scratch到Python 05 数据运算

2023-6-2 9:34:42

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索