第2章 变量和简单数据类型
2.1 运行hello_world.py发生的情况
运行hello_world.py时,Python都做了什么?
print("Hello Python World!")
运行上述代码,可以看到如下输出:
Hello Python World!
文件末尾的.py说明这是一个Python文件,因此编辑器将使用Python解释器来运行它。
Python解释器读取整个程序,确定每个单词的含义。比如,看到print就会将括号中的内容打印到屏幕,不管括号里写的是什么。
编辑器会用不同的颜色来突出显示程序的不同部分。例如print是一个函数名称,将其显示为蓝色;Hello Python World!不是Python代码,将其显示为橙色。这种功能叫语法突出。
2.2 变量
下面尝试在hello_world.py中使用一个变量。
message = "Hello Python World!"
print(message)
运行这个程序,将看到输出:
Hello Python World!
我们添加了一个名为message的变量。每个变量都会存储与其相关联的信息。
在这里,message存储的内容是Hello Python World!。
添加变量需要Python解释器做更多的工作,首先它将文本Hello Python World!与变量message关联起来;然后,它将与变量message关联的值打印到屏幕。
现在进一步扩展这个程序,在hello_world.py增加两行代码:
message = "Hello Python World!"
print(message)
message = "Hello Python Crush Course World!"
print(message)
运行这个程序,可以看到两行输出:
Hello Python World!
Hello Python Crush Course World!
程序中可以随时修改变量的值,而Python始终记录变量的最新值。
2.2.1 变量的命名和使用
在Python中使用变量要遵守一些规则和指南。违反这些规则会引发错误。
- 变量只能包含字母、数字和下划线。变量名可以字母或下划线开头,不能以数字开头。例如,可以命名
message_1,但不能命名1_message。 - 变量名不能包含空格,但可以用下划线分隔单词。例如,
greeting_message是可以的,greeting message不行。 - 不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词。
- 变量名应该简短又有描述性。
name比n好,student_name比s_n好,name_length比length_of_person_name好。 - 慎用小写字母
l和大写字母O,可能被人错看成1和0。
2.2.2 使用变量时避免命名错误
编写程序时总会犯错。优秀的程序员也会犯错,但是他们知道如何高效地消除错误。
现在有意编写一些会引发错误的代码(拼写错误的message):
message = "Hello Python World!"
print(mesage)
当程序出错时,Python将尽力找出问题所在。当程序无法运行时,解释器会提供一个Traceback,它是一条记录,指出解释器尝试运行代码时,在何处陷入了困境。
Traceback (most recent call last):
File "hello_world.py", line 2, in <module>
print(mesage)
NameError: name \'mesage\' is not defined
解释器指出,文件hello_world.py的第2行存在错误;它列出了这行代码(print(mesage))旨在帮助你更快地找出错误;它还指出了发现的是什么类型的错误(NameError: name \'mesage\' is not defined)。在这里解释器发现了一个名称错误(NameError),指出打印的变量mesage没有定义。Python无法识别你给的变量,要么是在使用变量时忘了赋值,要么是输入变量时拼写不正确。
解释器不会对代码拼写做检查,但是要求变量名的拼写一致。如果一开始就将message错误地拼写成了mesage,那么程序将成功运行。
mesage = "Hello Python World!"
print(mesage)
>>> Hello Python World!