第二章 变量与数据类型
变量
变量的定义
为何需要变量?
变量的功能:通过一个有意义的标识(变量),将变量与某个具体内容(数值、数组、对象等)进行关联,方便访问。
门牌号与房子、人与人名。
通过变量,不需要记住存放内容的内存物理地址。
在Python中,变量存的是记录具体数据的地址。
1
2
3
4
5
6print('---------将变量与字面量进行关联,便于访问和使用。--------------')
message = "Hello Python world!" #将字符串字面量赋值给message变量
print(message, type(message))
输出:
---------将变量与字面量进行关联,便于访问和使用。--------------
Hello Python world! <class 'str'>
知识点:
- Jupyter在命令模式下开启cell的行号。
- 快捷键L。
变量的命名和使用
在Python中使用变量时,需要遵守一些规则。违反这些规则将引发错误。请务必牢记下述有关变量的规则:
- 变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头,例如,可将变量命名为message_1,但不能将其命名为1_message。
- 变量名不能包含空格,但可使用下划线来分隔其中的单词。例如,变量名greeting_message可行,但变量名greeting message会引发错误。
- 不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,如
print
。 - 有意义的变量名,应既简短又具有描述性。例如,name比n好,student_name比s_n好,name_length比length_of_persons_name好。
- 慎用小写字母l和大写字母O,因为它们可能被人错看成数字1和0。
要创建良好的变量名,需要经过一定的实践,在程序复杂而有趣时尤其如此。随着你编写的程序越来越多,并开始阅读别人编写的代码,将越来越善于创建有意义的变量名。
注意 就目前而言,应使用小写的Python变量名。在变量名中使用大写字母虽然不会导致错误,但避免使用大写字母是个不错的主意。
1 | greeting_message = 111 |
变量命名的常见错误
1 | print("------------没有被赋值的变量,使用会出现NameError错误----------") |
数值类型
整数类型
掌握整数类型的四则运算
在Python中,可对整数执行加(+
)减(-
)乘(*
)除(/
)等运算。
1 | print(2 + 3) |
掌握整数类型的指数运算
在终端会话中,Python直接返回运算结果。Python使用两个乘号表示乘方运算.
1 | print(3 ** 2) |
掌握运算的优先级
Python还支持运算次序,因此你可在同一个表达式中使用多种运算。你还可以使用括号来修改运算次序,让Python按你指定的次序执行运算,如下所示:
1 | print(2 + 3*4) |
运行结果:
1 | 14 |
- 在这些示例中,空格不影响Python计算表达式的方式,它们的存在旨在让你阅读代码时,能迅速确定先执行哪些运算。
- 习题四。
浮点类型
掌握浮点数类型运算操作
知识点:
- Python将带小数点的数字都称为浮点数。
- 小数点可出现在数字的任何位置。
1 | print(0.1 + 0.1) |
掌握浮点数运算误差
知识点:
- 由于计算机采用二进制工作,很多小数都没法被二进制准确表示。
- 因此,Python的浮点数小数位并不精确。
1 | print(0.2 * 0.1) |
如何正确比较两个浮点数大小
知识点:
- 浮点数是不确定数,所以不能用
==
等号判断两个浮点数相等。 - 整数是确定数,所以能用
==
等号判断两个整数相等。 - 不仅仅是Python,其他所有语言的浮点数都存在误差。
1 | a = 0.2 + 0.1 |
- 习题五
str()的使用
字符串不能和数值类型拼接
- 常常需要在消息中使用字符串拼接,在构造完整的消息信息。例如,要祝某人生日快乐,可能会编写代码打印一条简单的生日祝福语:
Happy 23rd birthday!
。但如果运行如下代码,将会触发类型错误:
1 | age = 23 |
分析:
- 这是一个**类型错误(TypeError)**,无法执行对字符类型
str
和数值类型int
的数据直接相加。 - 运算操作数需要类型匹配,否则将会触发
TypeError
。
使用str()
转换非字符类型数据
知识点:
- 需要显式地将数值类型转换为字符串类型。
- 可调用函数
str()
,它让Python将非字符串值转换为字符串。 - 在字符串拼接时,特别要注意拼接的变量类型是否是字符串,否则就会出现类型错误。
1 | age = 23 |
- 习题六
注释
如何编写注释(快捷键ctrl+/)
知识点:
- 注释让你能够使用自然语言在程序中添加说明。
- 在Python中,注释用井号(
#
)标识。井号后面的内容都会被Python解释器忽略。 - 注释快捷键:
ctrl+/
1 | # 向大家问好 |
- Python解释器将忽略第1行,只执行第2行。
多行注释
知识点:
- 多行注释用三个单引号
'''
或者三个双引号"""
将注释括起来。
1 | ''' |
1 | """ |
熟悉该编写什么样的注释
- 在开发项目期间,你对各个部分如何协同工作了如指掌,但过段时间后,有些细节你可能不记得了。当然,你总是可以通过研究代码来确定各个部分的工作原理,但通过编写注释,以清晰的自然语言对解决方案进行概述,可节省很多时间。
- 要成为专业程序员或与其他程序员合作,就必须编写有意义的注释。当前,大多数软件都是合作编写的,编写者可能是同一家公司的多名员工,也可能是众多致力于同一个开源项目的人员。训练有素的程序员都希望代码中包含注释,因此你最好从现在开始就在程序中添加描述性注释。作为新手,最值得养成的习惯之一是,在代码中编写清晰、简洁的注释。
- 如果不确定是否要编写注释,就问问自己,找到合理的解决方案前,是否考虑了多个解决方案。如果答案是肯定的,就编写注释对你的解决方案进行说明吧。相比回过头去再添加注释,删除多余的注释要容易得多。
习题七
任务
第1题
题目要求:
添加了一个名为message的变量。每个变量都存储了一个值——与变量相关联的信息。 在这里,存储的值为字符串“Hello Python world!”。
- 第1行代码,用于代码注释输出。
- 第2行代码,它将字符串字面量“Hello Python world!”与变量message关联起来;
- 第3行代码,它将与变量message关联的值打印到屏幕。
修改程序,使其再打印一条消息:
代码如下:
1 | print('---------在创建或赋值变量时,不需要为变量指定 类型--------------') |
1 | print('--------不能使用未创建的变量---------------') |
运行结果:
1 | ---------在创建或赋值变量时,不需要为变量指定 类型-------------- |
1 | --------不能使用未创建的变量--------------- |
1 | Hello Python world! |
第2题
题目要求:
在程序中可随时修改变量的值,而Python将始终记录变量的最新值。通过input
函数接受用户的输入,注意该函数的返回为str类型。
代码如下
1 | # input 函数的返回是str |
运行结果:
1 | 22.0 <class 'float'> |
第3题
题目要求:
- 创建变量,将一条消息存储到变量中,再将其打印出来。
- 将一条消息存储到变量中,将其打印出来;再将变量的值修改为一条新消息,并将其打印出来。
- 使用
input()
函数,接收外部输入(输入字符),并把结果存到变量中,组织消息内容,打印结果。 - 使用
input()
函数,接收外部输入(输入数字),并把结果存到变量中,对这数进行平方运算,打印结果
代码如下
1 | massage='Hello World!' |
运行结果:
1 | Hello World! |
第4题
题目要求:
- 数字8:编写4个表达式,它们分别使用加法、减法、乘法和除法运算,但结果都是数字8。为使用
print
语句来显示结果,务必将这些表达式用括号括起来,也就是说,你应该编写4行类似于下面的代码:print(5 + 3)
。输出应为4行,其中每行都只包含数字8。 - 使用
input()
函数,键盘输入两个整数,然后再对这两个数进行上述运算操作。
代码如下:
1 | print(2+6) |
运行结果:
1 | 8 |
第5题
题目要求:
- 使用
input()
函数,键盘输入两个浮点数,然后再对这两个数进行四则运算操作,观察浮点数计算误差。 - 使用
input()
函数,键盘输入两个浮点数,比较整这两个数的大小,并输出结果。
代码如下:
1 | num1=float(input('num1')) |
运行结果:
1 | 11.2 |
第6题
题目要求:
- 最喜欢的数字:将你最喜欢的数字存储在一个变量中,再使用这个变量创建一条消息,指出你最喜欢的数字,然后将这条消息打印出来。
- 使用
input()
函数,键盘输入两个3位数的整数,然后通过str()
将它们转换为字符串,再使用+
对它们进行拼接,并输出结果。
代码如下:
1 | massage=98 |
运行结果:
1 | 我最喜欢的数字是:98 |
第7题
题目要求:
- 添加注释:选择你编写的两个程序,在每个程序中都至少添加一条注释。如果程序太简单,实在没有什么需要说明的,就在程序文件开头加上你的姓名和当前日期,再用一句话阐述程序的功能。
代码如下:
1 | num1=float(input('num1')) # str --> float |
1 | #谢森时 3/20 |