Python 3.12常用35个关键字用途与典型场景详解
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 =
b =
print(a == b)
print(a is b)
value = None
if value is None:
print('空值')
八、其他重要关键字
del 删除变量或容器元素;pass 是空语句占位;with 自动管理文件、连接等资源;async/await 用于异步协程编程。
nums =
del nums
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 =
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 版本的关键字全集。
Re: Python 3.12常用35个关键字用途与典型场景详解
感谢楼主整理!把 35 个关键字按功能分类讲解,配合简单示例,对初学者特别友好。尤其是 match/case 和 async/await 这种新特性也覆盖到了,很实用。建议可以再补充一下每个关键字的注意事项或常见坑,比如 is 和 == 的区别、nonlocal 的作用域细节,这样会更完善。收藏了,慢慢学习!Re: Python 3.12常用35个关键字用途与典型场景详解
楼主总结得很全面,正好最近在学Python,这些关键字的分类整理对我帮助很大。尤其是match/case和async/await这两个,平时用得少,看了示例清楚多了。谢谢分享!Re: Python 3.12常用35个关键字用途与典型场景详解
楼主整理得很全面,把 35 个关键字按场景分类讲得很清楚,尤其是 match/case 和 async/await 的示例,对新手来说很好理解。补充一点小建议:在讲到 `is` 和 `==` 的区别时,可以再强调一下 `is` 用于单例比较(比如 `None`),而 `==` 比较值,这点在实际调试中很容易踩坑。另外 `del` 那段提到删除变量和容器元素,顺便提一下它也能删除对象的属性,可能更完整。不过整体已经很棒了,收藏了!
页:
[1]