程序控制流
控制流决定了程序执行的路径。包括条件判断(分支)和循环。
1. 条件语句 (if)
基本结构
x = 10
if x > 0:
print("x 是正数")
elif x < 0:
print("x 是负数")
else:
print("x 是零")
嵌套 if
age = 20
has_ticket = True
if age >= 18:
if has_ticket:
print("准许入内")
else:
print("请先买票")
else:
print("未成年人禁止入内")
三元运算符 (条件表达式)
用于将简单的 if-else 简写为一行。
# 语法: value_if_true if condition else value_if_false
status = "Adult" if age >= 18 else "Minor"
2. 模式匹配 (match-case)
Python 3.10+ 引入的新特性,类似于其他语言的 Switch-Case,但更强大。
status = 404
match status:
case 200:
print("Success")
case 400 | 404: # 匹配多个值
print("Client Error")
case 500:
print("Server Error")
case _: # 默认情况 (类似 default)
print("Unknown Status")
3. 循环语句 (Loops)
for 循环
用于遍历序列(列表、字符串、元组等)或迭代器。
# 遍历列表
names = ["Alice", "Bob", "Charlie"]
for name in names:
print(f"Hello, {name}")
# 遍历字符串
for char in "Python":
print(char)
range() 函数
常用于生成数字序列。
# range(stop) -> 0 到 stop-1
for i in range(5):
print(i) # 0, 1, 2, 3, 4
# range(start, stop)
for i in range(1, 4):
print(i) # 1, 2, 3
# range(start, stop, step)
for i in range(0, 10, 2):
print(i) # 0, 2, 4, 6, 8
while 循环
在条件为 True 时重复执行。
count = 5
while count > 0:
print(count)
count -= 1 # 别忘了更新条件,否则死循环
print("Blastoff!")
4. 循环控制
| 关键字 | 作用 |
|---|---|
break |
立即终止整个循环 |
continue |
跳过本次迭代,直接进入下一次循环 |
pass |
占位符,什么都不做 (保持语法结构完整) |
示例
for i in range(10):
if i == 3:
continue # 跳过 3
if i == 5:
break # 到 5 停止
print(i)
# 输出: 0, 1, 2, 4
5. 循环中的 else
Python 的循环支持 else 子句,这是一个独特但容易混淆的特性。
当循环正常结束(没有任何 break)时,执行 else 块。
# 查找质数示例
num = 11
for i in range(2, num):
if num % i == 0:
print(f"{num} 不是质数")
break
else:
# 只有循环完整走完没遇到 break 时才执行
print(f"{num} 是质数")
本章小结
- if-elif-else: 处理逻辑分支。
- for: 遍历确定的序列,配合
range()使用。 - while: 处理不确定次数的循环。
- break: 提前退出。
- continue: 跳过当前次。
练习题
- 成绩评级:编写程序,根据输入的分数 (0-100),输出评级:90+为 A, 80-89 为 B, 70-79 为 C, 60-69 为 D, 60 以下为 F。
- 累加求和:使用
for循环计算 1 到 100 的所有偶数之和。 - 猜数字游戏:程序随机生成一个 1-100 的数字(需
import random; target = random.randint(1, 100)),让用户通过while循环猜测,提示"大了"或"小了",直到猜对并在结束时打印猜测次数。
下一章:函数