跳到主要内容

Python 关键字

什么是Python关键字?

Python关键字是语言内部预定义的、具有特殊含义的单词。这些单词是Python语法的基础构建块,用于定义程序的结构和执行流程。由于它们是语言的保留字,不能用作变量名、函数名或任何其他标识符

Python关键字具有以下特点:

  • 它们都是小写字母
  • 每个关键字都有特定的功能和用途
  • 不能被重新定义或用作变量名

Python 中的所有关键字

让我们先来了解Python 3中的所有关键字。你可以使用以下代码来查看当前Python版本中的所有关键字:

python
import keyword
print(keyword.kwlist)

输出结果(Python 3.9):

['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']
备注

随着Python版本的更新,关键字可能会有所变化。例如,asyncawait是在Python 3.5中添加的。

关键字分类

为了更好地理解这些关键字,我们可以将它们分类:

1. 值关键字

这些关键字代表特定的值:

  • True: 布尔值真
  • False: 布尔值假
  • None: 表示空值或不存在
python
is_active = True
has_error = False
result = None

print(type(True)) # <class 'bool'>
print(10 > 5 is True) # True
print(result is None) # True

2. 控制流关键字

用于控制程序执行流程的关键字:

  • if, elif, else: 条件语句
  • for, while: 循环语句
  • break, continue: 循环控制
  • pass: 空操作占位符
python
# if-elif-else条件语句
score = 85
if score >= 90:
print("优秀")
elif score >= 80:
print("良好")
else:
print("一般")

# for循环
fruits = ["苹果", "香蕉", "橙子"]
for fruit in fruits:
print(fruit)

# while循环
count = 0
while count < 3:
print(f"计数: {count}")
count += 1

# break和continue
for i in range(10):
if i == 3:
continue # 跳过当前迭代
if i == 7:
break # 终止循环
print(i)

# pass占位符
def function_to_implement_later():
pass # 暂不实现,但语法上需要有内容

3. 异常处理关键字

用于处理程序运行时可能出现的异常:

  • try, except, finally: 异常捕获和处理
  • raise: 手动引发异常
  • assert: 调试断言
python
# try-except-finally
try:
x = 10 / 0 # 会引发ZeroDivisionError
except ZeroDivisionError:
print("不能除以零!")
finally:
print("无论如何都会执行这里")

# 使用raise手动引发异常
def verify_age(age):
if age < 0:
raise ValueError("年龄不能为负数")
return age

# 使用assert进行断言
def calculate_average(numbers):
assert len(numbers) > 0, "列表不能为空"
return sum(numbers) / len(numbers)

4. 定义相关关键字

用于定义变量、函数、类等:

  • def: 定义函数
  • class: 定义类
  • lambda: 定义匿名函数
  • return: 函数返回值
  • yield: 生成器返回
python
# 定义函数
def greet(name):
return f"你好,{name}!"

# 定义类
class Person:
def __init__(self, name, age):
self.name = name
self.age = age

def introduce(self):
return f"我是{self.name}{self.age}岁。"

# 匿名函数
square = lambda x: x ** 2
print(square(5)) # 25

# 生成器函数
def count_up_to(n):
i = 1
while i <= n:
yield i
i += 1

for number in count_up_to(5):
print(number)

5. 导入相关关键字

用于导入和管理模块:

  • import: 导入模块
  • from: 从模块中导入特定内容
  • as: 为导入的模块或函数创建别名
python
# 导入整个模块
import math
print(math.pi) # 3.141592653589793

# 从模块导入特定函数
from random import randint
print(randint(1, 10)) # 生成1到10之间的随机整数

# 使用别名
import pandas as pd
import numpy as np

6. 逻辑运算关键字

用于逻辑运算:

  • and: 逻辑与
  • or: 逻辑或
  • not: 逻辑非
  • is: 身份比较
  • in: 成员测试
python
# 逻辑运算
x = 5
y = 10
print(x > 0 and y > 0) # True
print(x > 10 or y > 5) # True
print(not x == y) # True

# 身份比较
a = [1, 2, 3]
b = [1, 2, 3]
c = a
print(a is b) # False(不同对象)
print(a is c) # True(同一对象)

# 成员测试
print(2 in a) # True
print("hello" in "hello world") # True

7. 变量作用域关键字

控制变量作用域的关键字:

  • global: 声明全局变量
  • nonlocal: 声明非局部变量(闭包中)
python
# global关键字
x = 10

def change_global():
global x
x = 20
print(f"函数内部x: {x}")

change_global()
print(f"函数外部x: {x}") # 输出: 函数外部x: 20

# nonlocal关键字
def outer_function():
y = 5

def inner_function():
nonlocal y
y = 10
print(f"内部函数y: {y}")

inner_function()
print(f"外部函数y: {y}") # 输出: 外部函数y: 10

outer_function()

8. 其他关键字

  • del: 删除变量或对象
  • with: 上下文管理
  • async, await: 用于异步编程
python
# del关键字
my_list = [1, 2, 3]
del my_list[1] # 删除索引1的元素
print(my_list) # [1, 3]

# with关键字(上下文管理)
with open("example.txt", "w") as file:
file.write("这是一个示例文件。")
# 文件会自动关闭

# async和await(异步编程)
import asyncio

async def say_after(delay, message):
await asyncio.sleep(delay)
print(message)

async def main():
await say_after(1, "你好")
await say_after(2, "世界")

# 运行异步函数
# asyncio.run(main()) # 实际运行时取消注释

关键字的实际应用场景

下面通过一些实际案例来展示关键字的真实应用场景:

案例1:数据处理

python
def process_student_scores(scores):
"""处理学生成绩并返回统计信息"""
if not scores:
return None

result = {
"average": sum(scores) / len(scores),
"max": max(scores),
"min": min(scores),
"passed": 0,
"failed": 0
}

for score in scores:
if score >= 60:
result["passed"] += 1
else:
result["failed"] += 1

return result

# 使用函数
student_scores = [78, 92, 45, 87, 65, 53, 91]
stats = process_student_scores(student_scores)
print(f"平均分: {stats['average']:.2f}")
print(f"最高分: {stats['max']}")
print(f"最低分: {stats['min']}")
print(f"通过人数: {stats['passed']}")
print(f"不及格人数: {stats['failed']}")

案例2:文件处理工具

python
def safe_read_file(file_path):
"""安全读取文件内容"""
try:
with open(file_path, 'r', encoding='utf-8') as file:
return file.read()
except FileNotFoundError:
print(f"文件不存在: {file_path}")
return None
except PermissionError:
print(f"没有权限读取文件: {file_path}")
return None
except Exception as e:
print(f"读取文件时发生错误: {e}")
return None

案例3:简单的命令行计算器

python
def calculator():
"""简单的命令行计算器"""
print("欢迎使用计算器!输入'q'退出。")

while True:
try:
expression = input("请输入表达式(如 3 + 5): ")

if expression.lower() == 'q':
break

result = eval(expression)
print(f"结果: {result}")

except ZeroDivisionError:
print("错误: 除以零")
except SyntaxError:
print("错误: 语法错误")
except Exception as e:
print(f"错误: {e}")

# 实际使用时取消注释
# calculator()
警告

eval() 函数在实际应用中可能存在安全风险,不建议在处理用户输入时使用。这里仅作为示例。

总结

Python关键字是该编程语言的基础构建块,理解它们的用途和使用方法对于掌握Python编程至关重要。我们学习了:

  1. Python关键字的定义和特点
  2. 不同类别的关键字及其功能
  3. 每个关键字的基本用法和示例代码
  4. 关键字在实际应用场景中的使用

记住,Python关键字不能用作变量名或函数名,因为它们已被Python语言保留,具有特殊的语法含义。掌握这些关键字将帮助你更好地理解和编写Python代码。

练习

为了巩固你对Python关键字的理解,尝试完成以下练习:

  1. 编写一个程序,使用ifelifelse根据用户输入的温度返回相应的天气描述。
  2. 创建一个函数,使用tryexceptfinally安全地将用户输入的字符串转换为整数。
  3. 编写一个使用forbreakcontinue的循环,打印1到20之间的所有质数。
  4. 创建一个简单的类,使用classdefreturn关键字实现一个银行账户系统。
  5. 使用lambdamapfilter函数处理一个数字列表,筛选出偶数并将它们翻倍。

附加资源

要进一步学习Python关键字,可以参考以下资源:

继续学习和实践是掌握Python编程的关键。随着你编写更多代码,你将更加熟悉这些关键字及其用法。