本节将讲解有关 Python 关键字、标识符和变量的信息。这是 Python 编程中的基本构建块。
Python 关键字是一个独特的编程术语,主要用来执行某些操作。在 Python 中有 33 个关键字,每个都有不同的目的,它们共同建立了 Python 语言的词汇表。
它们代表着 Python 程序的语法和结构,因为都是保留的,所以不能使用这些关键字定义变量、类和函数。
关键字
关键字是保留的特殊单词,具有特定的含义。
Python 中所有的关键字均区分大小写,所以在代码使用中必须注意。Python 中有哪些关键字:

关键字有很多,这里提到的只需要大致了解即可,以后用到时就能够加深印象。
每个版本的关键字数量可能不同,这是由于随着技术进步和版本升级越来越多不适应的被抛弃,也越来越多强大好用的被添加进来。
此外,也可以使用 Python 的 keyword 模块查看目前支持的关键字:

标识符
Python 标识符是用户定义的名称,可以代表变量、函数、类、模块和任何其他对象。在 Python 编程中为实体分配的名称我们称它是标识符。
Python 也为创建合法的标识符制定了一些规则。
制定规则
一、可包含小写字母(a-z)或大写字母(A-Z)的字母序列。在写入标识符时也可以混入数字(0-9)或下划线(_)。
例如:shapeClass、shape_1、upload_shape_to_db。
二、不能使用数字作为标识符的开头,这会导致语法错误。
例如:0Shape 是错误的,shape1 是正确的。
三、不能使用保留的关键字作为标识符。
>>> for=1
File "<stdin>", line 1
for=1
^
SyntaxError: invalid syntax
>>> True=1
File "<stdin>", line 1
SyntaxError: cannot assign to True
四、标识符的格式中不能包含这些特殊字符[.、!、@、#、$、%]。
>>> @index=0
File "<stdin>", line 1
@index=0
^
SyntaxError: invalid syntax
>>> isPython?=True
File "<stdin>", line 1
isPython?=True
^
SyntaxError: invalid syntax
五、Python 理论上可以定义一个无限长度的标识符,但显然这是不准确的。
在 PEP-8 标准中明确规定定义的最大标识符长度不能超过 79 个字符,所以我们应该遵守这项标准。
Limit all lines to a maximum of 79 characters.
测试标识符的有效性
可以使用 keyword.iskeyword() 函数来测试标识符是否是保留的关键字。若是返回 True,否则返回 False。
>>> import keyword
>>> keyword.iskeyword('techbeamers')
False
>>> keyword.iskeyword('try')
True
可以使用 str.isidentifier() 函数来测试标识符是否合法。合法返回 True,否则返回 False。(注意:这只在 Python3 版本上有效。)
>>> 'techbeamers'.isidentifier()
True
>>> '1techbeamers'.isidentifier()
False
>>> 'techbeamers.com'.isidentifier()
False
>>> 'techbemaers_com'.isidentifier()
True
定义标识符的最佳做法
- 定义类名称时首字母大写,其他标识符首字母小写开头。
- 使用(_)下划线来作为私有标识符的首字母。
- 此外,不要使用(_)下划线来作为标识符的开头和结尾,因为 Python 中有很多内置类型使用了这种方法。
- 避免使用一个字符名称,而是有意义的名字。虽然
i=1有效,但是写成iter=1或index=1可能更好些。 - 最好的办法是使用(_) 下划线来连接多个单词形成一个合理的标识符。例如:
count_no_of_letters。
变量
Python 中的变量表示一个实体,其值可以在任何需要时被改变。它保存实际值的存储位置,可以通过查询代码中的实体来检索值。
在内存中我们需要为其分配标签,以便可以随时使用。在编程上我们称它为变量。
下面是关于变量的一些作用,了解这些有助于提高 Python 编程水平。
一、变量不需要声明,但是需要在使用前进行初始化。
例如:
test = 10
二、上面的表达式将进行如下操作:
- 创建一个代表值 10 的对象。
- 如果变量 test 不存在,那么将创建它。
- 关联变量和对象,以便可以通过引用名称/变量名称获取到变量值。
变量 test 是对值 10 的引用。参考下图:
| ~~~~~ | ----- ~~~~~~~~~ ------- ****
( test ) ----- Reference ------- ** 10 **
| ~~~~~ | ----- ~~~~~~~~~ ------- ****
Variable ----- ~~~~~~~~~~ ------- Object
三、每当表达式做出改变时,Python 都会重新创建一个新对象(新的内存空间)与该变量关联,以便变量引用该值。而旧的对象(内存空间)就会进入垃圾回收处理。
例如:
>>> test = 10
>>> id(test)
4460686256
>>> test = 11
>>> id(test)
4460686288
四、此外,为了优化读写效率,Python 建立了一个缓存并重用了一些不可变的对象,例如小的整数和字符串。
五、对象是用来保存以下内容的内存空间:
- 实际对象值。
- 反映对象类型的类型指示器。
- 引用计数器(Reference counting),用于确定何时回收对象。
六、变量可以在任何需要的时候保存不同类型的对象。
例如:
>>> test = 10
>>> type(test)
<class 'int'>
>>> test = 'techbeamers'
>>> type(test)
<class 'str'>
>>> test = {'Python', 'C', 'C++'}
>>> type(test)
<class 'set'>
小结
阅读本教程后,你应该对关键字、标识符和变量是什么有个感性的认识。这篇文章已经基本涵盖有关它们的所有相关知识,阅读后应该能理解并快速使用它们。