pin_drop当前位置:知识文库 ❯ 图文

Python关键字与标识符

概述

Python关键字是语言保留的具有特殊含义的单词,不能用作变量名、函数名或其他标识符。标识符则是程序中用来命名变量、函数、类等元素的名称。理解关键字与标识符的规则,是编写合法Python代码的前提。本节将介绍Python的全部关键字、标识符的命名规则以及查看关键字的方法。


Python关键字列表

Python 3.x中的关键字如下表所示:

全部关键字

关键字 关键字 关键字 关键字 关键字
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

关键字分类

类别 关键字 说明
布尔值 True, False 布尔类型的两个值
空值 None 表示没有值
条件控制 if, elif, else 条件判断语句
循环控制 for, while, break, continue 循环语句与控制
函数相关 def, return, lambda 函数定义与返回
异常处理 try, except, finally, raise, assert 异常捕获与抛出
导入模块 import, from, as 模块导入
类相关 class 类定义
上下文管理 with 上下文管理器
作用域 global, nonlocal 变量作用域声明
逻辑运算 and, or, not 逻辑运算符
成员判断 in, is 成员与身份判断
删除 del 删除变量或元素
异步 async, await 异步编程
生成器 yield 生成器函数
占位 pass 空语句占位

提示:Python关键字全部为小写(除了TrueFalseNone),且不能用作变量名。


标识符规则

标识符是用来标识变量、函数、类、模块等对象的名称。Python标识符必须遵循以下规则:

强制规则

  • 只能包含:字母(a-z, A-Z)、数字(0-9)和下划线(_)

  • 不能以数字开头:必须以字母或下划线开头

  • 不能使用关键字:Python保留字不能作为标识符

  • 区分大小写Namename是不同的标识符

  • 长度无限制:但应保持合理长度

合法标识符示例

代码示例

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

标识符命名建议

建议 说明 好的示例 差的示例
见名知义 名称应表达含义 student_age a
避免单字符 除循环变量外 count c
不用中文 虽然支持但不推荐 name 姓名
避免混淆 不用容易混淆的字符 lowercase_l l(与1混淆)

查看关键字的方法

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)概念,如matchcase,它们只在特定上下文中作为关键字,其他场景可用作标识符。


小结

本节我们学习了:

  • Python关键字:共35个保留字,具有特殊含义,不能用作标识符

  • 标识符规则:只能包含字母、数字和下划线,不能以数字开头,区分大小写

  • 查看关键字:使用keyword模块的kwlistiskeyword()方法

  • 避免覆盖内置函数:不要使用内置函数名作为变量名

理解关键字与标识符的规则是编写合法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中,双下划线开头的名称通常用于表示私有变量,单下划线开头的名称常用于表示内部使用的变量。

使用内置函数名作为变量名会有什么后果?

使用内置函数名(如listprint)作为变量名不会报错,但会覆盖原有的内置函数,导致在后续代码中无法再使用该函数。这种bug往往难以排查,应严格避免。

什么是Python的软关键字?

Python 3.10+引入了软关键字(soft keyword)概念,如matchcase。它们只在特定的语法上下文中才被视为关键字(如模式匹配语句),在其他场景下仍然可以用作标识符,这是与普通关键字的重要区别。

标签: Python关键字 标识符规则 Python基础 keyword模块 命名规范 内置函数

本文涉及AI创作

内容由AI创作,请仔细甄别

list快速访问

上一篇: Python变量与命名规则 下一篇: Python input()函数

poll相关推荐

作者头像 智能小晨 python

Python类型转换详解

发布日期 2026-05-27
全面掌握Python类型转换的核心知识,包括int float str bool等内置函数的用法、隐式转换规则、容器类型之间的转换方法,以及使用try-except安全处理转换异常的实战技巧。通过丰富的代码示例,帮助你写出更健壮的Python代码。
作者头像 智能小晨 python

Python字符串类型详解

发布日期 2026-05-27
全面学习Python字符串类型的核心知识,涵盖单引号双引号三引号定义方式、原始字符串r前缀、转义字符详解、字符串不可变性原理以及Unicode编码支持。
作者头像 智能小晨 python

Python布尔类型详解

发布日期 2026-05-27
深入解析Python布尔类型的核心知识,包括True和False的定义、and or not逻辑运算、短路求值特性、bool()函数用法以及隐式布尔转换规则。通过丰富的代码示例,帮助你掌握Python布尔类型的实际应用,写出更优雅的条件判断代码。
作者头像 智能小晨 python

Python复数类型complex详解

发布日期 2026-05-27
全面介绍Python复数类型complex的使用方法,包括复数定义、实部虚部访问、算术运算、cmath模块函数以及极坐标转换。掌握复数在科学计算和工程领域的应用。