关键字 —— Python教程

2,189 阅读5分钟

本节将讲解有关 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=1index=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'>

小结

阅读本教程后,你应该对关键字、标识符和变量是什么有个感性的认识。这篇文章已经基本涵盖有关它们的所有相关知识,阅读后应该能理解并快速使用它们。