查看: 752|回复: 3

Python 3.12常用35个关键字用途与典型场景详解

[复制链接]
发表于 4 小时前 | 显示全部楼层 |阅读模式
Python 的关键字是语言保留词,变量名、函数名、类名都不能占用它们。Python 3.12 一共 35 个关键字,但数量少不代表不重要,条件分支、循环、函数、异常处理、模块组织等基础语法全靠它们撑起来。本文按功能分类逐个拆解,并给出可运行代码示例。

先用标准库快速查看当前版本的全部关键字:
  1. import keyword
  2. print(keyword.kwlist)
  3. print(len(keyword.kwlist))
  4. print(keyword.iskeyword('if'))
复制代码

在交互式环境中也可以执行 help('keywords') 查看官方说明。

一、条件控制

if 是最基本的分支关键字,elif 是 else if 的缩写,注意中间不能有空格。else 负责处理所有其他情况。match/case 是 Python 3.10 引入的模式匹配,比普通的 switch 更灵活,支持值匹配、组合匹配和数据结构匹配。
  1. score = 85
  2. if score >= 90:
  3.     print('成绩优秀')
  4. elif score >= 80:
  5.     print('成绩良好')
  6. else:
  7.     print('继续加油')
  8. status = 404
  9. match status:
  10.     case 200:
  11.         print('成功')
  12.     case 301 | 302:
  13.         print('重定向')
  14.     case _:
  15.         print('未知状态')
复制代码

match 还可以直接匹配字典结构,适合按 action 字段做命令分发。

二、循环与迭代

for/in 是遍历列表、字典和 range 的常用方式,in 还可以用于成员判断和列表推导式。while 在条件为真时持续执行。break 立即跳出整个循环,continue 跳过本次迭代的剩余部分,进入下一轮。
  1. for i in range(1, 6):
  2.     if i % 2 == 0:
  3.         continue
  4.     if i == 5:
  5.         break
  6.     print(i)
  7. count = 0
  8. while count < 3:
  9.     print(count)
  10.     count += 1
复制代码

三、函数、lambda 与生成器

def 定义函数,return 返回结果。lambda 适合写单表达式匿名函数,常用于排序或过滤的 key 参数。yield 可以把普通函数变成生成器,每次迭代暂停并返回一个值,适合处理大数据流。
  1. def add(a, b):
  2.     return a + b
  3. add_lambda = lambda a, b: a + b
  4. def countdown(n):
  5.     while n > 0:
  6.         yield n
  7.         n -= 1
  8. for x in countdown(4):
  9.     print(x)
复制代码

四、类

class 用于定义类,配合 __init__ 方法完成实例初始化,实例方法第一个参数通常是 self。
  1. class Dog:
  2.     species = '犬科'
  3.     def __init__(self, name):
  4.         self.name = name
  5.     def bark(self):
  6.         return f'{self.name}: 汪汪'
复制代码

五、异常处理

try/except/finally 负责捕获异常,无论是否出错 finally 都会执行。raise 可以主动抛出异常,assert 是开发期的条件断言,条件为假时抛出 AssertionError。
  1. try:
  2.     num = int(input('输入数字:'))
  3.     r = 100 / num
  4. except ValueError:
  5.     print('需要数字')
  6. except ZeroDivisionError:
  7.     print('不能除零')
  8. finally:
  9.     print('结束')
  10. def check_age(age):
  11.     if age < 0:
  12.         raise ValueError('年龄不能为负')
  13. def avg(scores):
  14.     assert len(scores) > 0, '列表不能为空'
  15.     return sum(scores) / len(scores)
复制代码

六、导入与作用域

import/from/as 控制模块导入方式,可以用别名解决命名冲突。global 在函数内部修改全局变量,nonlocal 在嵌套函数中修改外层函数的局部变量。
  1. import math
  2. from math import sqrt as square_root
  3. global_count = 0
  4. def outer():
  5.     n = 0
  6.     def inner():
  7.         nonlocal n
  8.         n += 1
  9.         return n
  10.     return inner
复制代码

七、逻辑运算与特殊值

and/or/not 做布尔运算,and 和 or 会短路求值。is 比较对象身份,== 比较值是否相等。True、False、None 是 Python 3 中的三个常量关键字,也是单例对象。
  1. a = [1, 2]
  2. b = [1, 2]
  3. print(a == b)
  4. print(a is b)
  5. value = None
  6. if value is None:
  7.     print('空值')
复制代码

八、其他重要关键字

del 删除变量或容器元素;pass 是空语句占位;with 自动管理文件、连接等资源;async/await 用于异步协程编程。
  1. nums = [1, 2, 3]
  2. del nums[0]
  3. def todo():
  4.     pass
  5. with open('data.txt', 'r', encoding='utf-8') as f:
  6.     data = f.read()
复制代码

异步示例:
  1. import asyncio
  2. async def fetch(url):
  3.     await asyncio.sleep(1)
  4.     return url
  5. async def main():
  6.     tasks = [fetch('https://a.com'), fetch('https://b.com')]
  7.     results = await asyncio.gather(*tasks)
  8.     print(results)
  9. 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` 那段提到删除变量和容器元素,顺便提一下它也能删除对象的属性,可能更完整。不过整体已经很棒了,收藏了!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-9-1 19:44 , Processed in 0.027607 second(s), 17 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部