Python 的关键字是语言保留词,变量名、函数名、类名都不能占用它们。Python 3.12 一共 35 个关键字,但数量少不代表不重要,条件分支、循环、函数、异常处理、模块组织等基础语法全靠它们撑起来。本文按功能分类逐个拆解,并给出可运行代码示例。
先用标准库快速查看当前版本的全部关键字:- import keyword
- print(keyword.kwlist)
- print(len(keyword.kwlist))
- print(keyword.iskeyword('if'))
复制代码
在交互式环境中也可以执行 help('keywords') 查看官方说明。
一、条件控制
if 是最基本的分支关键字,elif 是 else if 的缩写,注意中间不能有空格。else 负责处理所有其他情况。match/case 是 Python 3.10 引入的模式匹配,比普通的 switch 更灵活,支持值匹配、组合匹配和数据结构匹配。
- score = 85
- if score >= 90:
- print('成绩优秀')
- elif score >= 80:
- print('成绩良好')
- else:
- print('继续加油')
- status = 404
- match status:
- case 200:
- print('成功')
- case 301 | 302:
- print('重定向')
- case _:
- print('未知状态')
复制代码
match 还可以直接匹配字典结构,适合按 action 字段做命令分发。
二、循环与迭代
for/in 是遍历列表、字典和 range 的常用方式,in 还可以用于成员判断和列表推导式。while 在条件为真时持续执行。break 立即跳出整个循环,continue 跳过本次迭代的剩余部分,进入下一轮。
- for i in range(1, 6):
- if i % 2 == 0:
- continue
- if i == 5:
- break
- print(i)
- count = 0
- while count < 3:
- print(count)
- count += 1
复制代码
三、函数、lambda 与生成器
def 定义函数,return 返回结果。lambda 适合写单表达式匿名函数,常用于排序或过滤的 key 参数。yield 可以把普通函数变成生成器,每次迭代暂停并返回一个值,适合处理大数据流。
- def add(a, b):
- return a + b
- add_lambda = lambda a, b: a + b
- def countdown(n):
- while n > 0:
- yield n
- n -= 1
- for x in countdown(4):
- print(x)
复制代码
四、类
class 用于定义类,配合 __init__ 方法完成实例初始化,实例方法第一个参数通常是 self。
- class Dog:
- species = '犬科'
- def __init__(self, name):
- self.name = name
- def bark(self):
- return f'{self.name}: 汪汪'
复制代码
五、异常处理
try/except/finally 负责捕获异常,无论是否出错 finally 都会执行。raise 可以主动抛出异常,assert 是开发期的条件断言,条件为假时抛出 AssertionError。
- try:
- num = int(input('输入数字:'))
- r = 100 / num
- except ValueError:
- print('需要数字')
- except ZeroDivisionError:
- print('不能除零')
- finally:
- print('结束')
- def check_age(age):
- if age < 0:
- raise ValueError('年龄不能为负')
- def avg(scores):
- assert len(scores) > 0, '列表不能为空'
- return sum(scores) / len(scores)
复制代码
六、导入与作用域
import/from/as 控制模块导入方式,可以用别名解决命名冲突。global 在函数内部修改全局变量,nonlocal 在嵌套函数中修改外层函数的局部变量。
- import math
- from math import sqrt as square_root
- global_count = 0
- def outer():
- n = 0
- def inner():
- nonlocal n
- n += 1
- return n
- return inner
复制代码
七、逻辑运算与特殊值
and/or/not 做布尔运算,and 和 or 会短路求值。is 比较对象身份,== 比较值是否相等。True、False、None 是 Python 3 中的三个常量关键字,也是单例对象。
- a = [1, 2]
- b = [1, 2]
- print(a == b)
- print(a is b)
- value = None
- if value is None:
- print('空值')
复制代码
八、其他重要关键字
del 删除变量或容器元素;pass 是空语句占位;with 自动管理文件、连接等资源;async/await 用于异步协程编程。
- nums = [1, 2, 3]
- del nums[0]
- def todo():
- pass
- with open('data.txt', 'r', encoding='utf-8') as f:
- data = f.read()
复制代码
异步示例:
- import asyncio
- async def fetch(url):
- await asyncio.sleep(1)
- return url
- async def main():
- tasks = [fetch('https://a.com'), fetch('https://b.com')]
- results = await asyncio.gather(*tasks)
- print(results)
- asyncio.run(main())
复制代码
最后按功能快速回顾这 35 个关键字:条件控制 if/elif/else/match/case;循环 for/in/while/break/continue;函数 def/return/lambda/yield;类 class;异常 try/except/finally/raise/assert;模块与作用域 import/from/as/global/nonlocal;逻辑与特殊值 and/or/not/is/True/False/None;其他 del/pass/with/async/await。
实际编码中,if、for、def、return、import、class、try/except 是使用频率最高的几个。需要特别注意:elif 不能写成 else if;is 用于判断 None;and/or 有短路特性;关键字不能当作标识符。随时可以用 import keyword; print(keyword.kwlist) 确认当前 Python 版本的关键字全集。 |