pin_drop当前位置:知识文库 ❯ 图文
Python关键字与标识符
概述
Python关键字是语言保留的具有特殊含义的单词,不能用作变量名、函数名或其他标识符。标识符则是程序中用来命名变量、函数、类等元素的名称。理解关键字与标识符的规则,是编写合法Python代码的前提。本节将介绍Python的全部关键字、标识符的命名规则以及查看关键字的方法。
Python关键字列表
Python 3.x中的关键字如下表所示:
全部关键字
关键字分类
提示:Python关键字全部为小写(除了
True、False和None),且不能用作变量名。
标识符规则
标识符是用来标识变量、函数、类、模块等对象的名称。Python标识符必须遵循以下规则:
强制规则
-
只能包含:字母(a-z, A-Z)、数字(0-9)和下划线(_)
-
不能以数字开头:必须以字母或下划线开头
-
不能使用关键字:Python保留字不能作为标识符
-
区分大小写:
Name和name是不同的标识符 -
长度无限制:但应保持合理长度
合法标识符示例
代码示例
name = "Alice"
_age = 25
score1 = 100
student_name = "Bob"
__private = True
MAX_VALUE = 999非法标识符示例
代码示例
2name = "Alice"
my-name = "Bob"
my name = "Charlie"
class = "Math"
@var = 10标识符命名建议
查看关键字的方法
Python提供了keyword模块来查看和判断关键字。
查看所有关键字
代码示例
import keyword
print(keyword.kwlist)输出:
代码示例
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']判断是否为关键字
代码示例
import keyword
print(keyword.iskeyword("if"))
print(keyword.iskeyword("hello"))
print(keyword.iskeyword("True"))
print(keyword.iskeyword("true"))输出:
代码示例
True
False
True
False查看关键字数量
代码示例
import keyword
print(len(keyword.kwlist))查看Python内置函数
除了关键字,Python还有许多内置函数名也应避免用作标识符:
代码示例
print(dir(__builtins__))
常见的内置函数包括:print, input, len, range, type, str, int, float, list, dict, set, tuple, sum, max, min, abs, round, sorted, open, help等。
提示:使用内置函数名作为变量名不会报错,但会覆盖内置函数,导致后续无法使用该函数。
代码示例
示例1:查看与判断关键字
代码示例
import keyword
print("Python关键字数量:", len(keyword.kwlist))
print()
test_words = ["if", "hello", "True", "false", "None", "name", "class", "my_class"]
for word in test_words:
result = "是关键字" if keyword.iskeyword(word) else "不是关键字"
print(f"'{word}' {result}")示例2:标识符合法性检查
代码示例
import keyword
import re
def is_valid_identifier(name):
if keyword.iskeyword(name):
return False, "是Python关键字"
if not re.match(r'^[a-zA-Z_][a-zA-Z0-9_]*$', name):
return False, "不符合命名规则"
return True, "是合法标识符"
test_names = ["my_name", "2nd_place", "_private", "class", "hello123", "my-var", ""]
for name in test_names:
valid, reason = is_valid_identifier(name)
status = "合法" if valid else f"非法({reason})"
print(f"'{name}': {status}")示例3:避免覆盖内置函数
代码示例
print(len([1, 2, 3]))
list_name = [1, 2, 3]
print(len(list_name))
my_list = [4, 5, 6]
print(len(my_list))错误示例(不要这样做):
代码示例
list = [1, 2, 3]
new_list = list([4, 5, 6])注意事项
提示:关键字不能用作标识符:使用关键字作为变量名会导致
SyntaxError。
提示:内置函数名慎用:虽然不会报错,但会覆盖内置函数,造成难以排查的bug。
提示:大小写敏感:
True是关键字,但true不是。不过建议不要使用与关键字仅大小写不同的名称,容易造成混淆。
提示:Python版本差异:不同版本的Python关键字可能略有不同,使用
keyword.kwlist查看当前版本的关键字列表。
提示:软关键字:Python 3.10+引入了软关键字(soft keyword)概念,如
match和case,它们只在特定上下文中作为关键字,其他场景可用作标识符。
小结
本节我们学习了:
-
Python关键字:共35个保留字,具有特殊含义,不能用作标识符
-
标识符规则:只能包含字母、数字和下划线,不能以数字开头,区分大小写
-
查看关键字:使用
keyword模块的kwlist和iskeyword()方法 -
避免覆盖内置函数:不要使用内置函数名作为变量名
理解关键字与标识符的规则是编写合法Python代码的基础,也是避免常见命名错误的关键。
练习题
练习1
编写一个程序,接收用户输入的一个字符串,判断它是否可以作为Python的合法标识符(同时不能是关键字)。输出判断结果和原因。
练习2
使用keyword模块,统计Python关键字中包含字母"a"的关键字有哪些,并将结果打印出来。
小贴士
Python的keyword模块不仅能查看所有关键字,还可以使用keyword.isidentifier()方法判断一个字符串是否为合法标识符(但不包括关键字检查)。此外,Python 3.10+引入了softkwlist属性,用于查看软关键字列表。
常见问题
Python有多少个关键字?
Python 3.x共有35个关键字。可以使用len(keyword.kwlist)查看当前版本的关键字数量,不同版本可能略有差异。
True、False、None为什么是大写开头?
True、False和None是Python中唯一的非小写关键字,它们分别表示布尔值和空值。这是Python语言的设计规范,遵循PascalCase命名风格,与其余全小写的关键字区分开来。
能否使用下划线开头的标识符?
可以。以下划线开头的标识符是合法的,如_name或__private。在Python中,双下划线开头的名称通常用于表示私有变量,单下划线开头的名称常用于表示内部使用的变量。
使用内置函数名作为变量名会有什么后果?
使用内置函数名(如list、print)作为变量名不会报错,但会覆盖原有的内置函数,导致在后续代码中无法再使用该函数。这种bug往往难以排查,应严格避免。
什么是Python的软关键字?
Python 3.10+引入了软关键字(soft keyword)概念,如match和case。它们只在特定的语法上下文中才被视为关键字(如模式匹配语句),在其他场景下仍然可以用作标识符,这是与普通关键字的重要区别。
本文涉及AI创作
内容由AI创作,请仔细甄别