Python核心语句与内置函数详解
前言
本文系统梳理 Python 中常用控制结构与部分关键内置函数,结合代码示例帮助理解其使用场景和行为逻辑。掌握这些基础内容是编写高效、可读性强的 Python 程序的前提。
一、常见程序语句
语句是构成程序执行流程的基本单元,决定了代码的运行顺序和逻辑分支。
1. 赋值操作
将数据绑定到变量名,支持多种赋值方式:
a = 8
b = a * 3
x, y = 10, 20 # 多重赋值
2. 条件判断
if-elif-else 结构
根据布尔表达式的真假选择执行路径:
value = -5
if value > 0:
print("正值")
elif value == 0:
print("零值")
else:
print("负值")
match-case 模式匹配(Python 3.10+)
适用于多分支且条件明确的场景,提升可读性:
status_code = 200
match status_code:
case 200:
print("请求成功")
case 404:
print("资源未找到")
case 500 | 502:
print("服务器错误")
case _:
print("未知状态")
也可嵌套条件判断:
num = 15
match num:
case n if n < 10:
print("小于10")
case n if 10 <= n < 20:
print("介于10到20之间")
3. 循环结构
for 循环
用于遍历序列或可迭代对象:
for item in [1, 2, 3]:
print(item)
while 循环
在条件为真时持续执行:
counter = 0
while counter < 4:
print(counter)
counter += 1
range 函数
生成整数序列,常用于控制循环次数:
list(range(5)) # [0, 1, 2, 3, 4]
list(range(2, 8)) # [2, 3, 4, 5, 6, 7]
list(range(1, 10, 2)) # [1, 3, 5, 7, 9]
无限循环处理
利用 while True 创建持续监听或等待输入的逻辑,配合 break 终止:
while True:
user_input = input("输入'quit'退出: ")
if user_input == 'quit':
break
4. 循环控制关键字
- break:立即跳出当前循环体。
- continue:跳过本次剩余步骤,进入下一轮迭代。
- pass:空操作占位符,保持语法完整性。
for i in range(5):
if i == 2:
continue
if i == 4:
break
print(i) # 输出: 0, 1, 3
5. 数据结构与循环结合应用
通过实际案例加深对容器类型的操作理解。
案例1:动态修改列表元素
data = []
for _ in range(4):
val = int(input("请输入整数: "))
data.append(val)
data.insert(2, 100) # 在索引2前插入
del data[3] # 删除第四个元素
data[1] += 1 # 第二个元素加1
print(data)
案例2:绘制空心矩形
n = int(input("请输入边长: "))
if n >= 1:
print('#' * n)
for _ in range(n - 2):
print('#' + ' ' * (n - 2) + '#')
if n > 1:
print('#' * n)
案例3:查找水仙花数(三位阿姆斯特朗数)
for num in range(100, 1000):
hundreds = num // 100
tens = (num // 10) % 10
units = num % 10
if hundreds**3 + tens**3 + units**3 == num:
print(num)
6. 函数定义
使用 def 关键字封装可复用逻辑块:
def multiply(x, y):
"""返回两个数的乘积"""
return x * y
result = multiply(4, 5)
7. 异常处理机制
try-except-finally
捕获并响应运行时错误:
try:
result = 10 / 0
except ZeroDivisionError:
print("禁止除以零")
finally:
print("清理工作完成")
raise 主动抛出异常
在不符合预期时中断执行:
def validate_age(age):
if not 0 <= age <= 150:
raise ValueError("年龄超出合理范围")
return True
assert 断言调试
仅在开发阶段启用条件检查:
temperature = 25
assert temperature >= 0, "温度不能为负"
常见异常类型
| 异常类 | 触发场景 |
|---|---|
| ValueError | 参数值不合法 |
| IndexError | 序列索引越界 |
| KeyError | 字典键不存在 |
| NameError | 变量未定义 |
| TypeError | 操作不支持的数据类型 |
8. 模块导入
加载外部功能模块:
import json
from datetime import datetime
9. 注释规范
增强代码可读性:
# 单行注释
x = 5
"""
多行文档字符串
说明函数用途或模块功能
"""
10. 类的定义
面向对象编程的基础结构:
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height
rect = Rectangle(4, 6)
print(rect.area())
11. 上下文管理 with 语句
自动管理资源生命周期,如文件操作:
with open("example.txt", "r") as f:
content = f.read()
print(content)
# 文件自动关闭
二、Python 内置函数精讲
Python 提供了一系列无需导入即可使用的内置函数,涵盖数据处理、类型检查、数学运算等常见需求。
1. all()
检测可迭代对象中是否所有元素均为真:
all([True, 1, "hello"]) # True
all([1, 0, 3]) # False
2. sum()
计算数值型元素总和:
sum([1, 2, 3, 4]) # 10
3. sorted()
返回排序后的新列表,原对象不变:
sorted([5, 1, 9, 2]) # [1, 2, 5, 9]
4. reversed()
返回反向迭代器,需转换为列表查看结果:
list(reversed([1, 2, 3])) # [3, 2, 1]
5. callable()
判断对象是否可调用:
callable(len) # True
callable("abc") # False
6. zip()
将多个序列合并为元组迭代器,用于并行遍历:
names = ["Tom", "Jerry"]
scores = [88, 95]
pairs = list(zip(names, scores))
# [('Tom', 88), ('Jerry', 95)]
7. eval()
执行字符串形式的表达式并返回结果(慎用,存在安全风险):
expr = "2 ** 3 + 1"
result = eval(expr) # 9
8. exec()
执行包含多条语句的代码字符串(同样注意安全性):
script = """
for i in range(2):
print(f"第{i+1}次")
"""
exec(script)
9. globals() 与 locals()
分别获取当前作用域的全局和局部命名空间字典:
x = 100
def test():
y = 200
print("局部变量:", list(locals().keys()))
test()
print("全局变量:", list(globals().keys()))
10. filter()
按条件筛选元素,返回迭代器:
numbers = [1, 2, 3, 4, 5, 6]
evens = filter(lambda n: n % 2 == 0, numbers)
print(list(evens)) # [2, 4, 6]