一、条件分支
1.1 if-elif-else
Python 没有 switch,用 if-elif-else 处理所有分支逻辑:
1 2 3 4 5 6 7 8 9 10 11 12 13
| score = 85
if score >= 90: print("优秀") elif score >= 80: print("良好") elif score >= 60: print("及格") else: print("不及格")
status = "及格" if score >= 60 else "不及格"
|
1.2 match-case(Python 3.10+)
Python 3.10 引入了 match-case,类似 Java 的 switch 表达式,但更强大:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| day = 3
match day: case 1: print("星期一") case 2: print("星期二") case 3 | 4 | 5: print("工作日") case _: print("周末")
point = (0, 5) match point: case (0, 0): print("原点") case (0, y): print(f"Y 轴上,y = {y}") case (x, 0): print(f"X 轴上,x = {x}") case (x, y): print(f"坐标 ({x}, {y})")
|
二、循环结构
2.1 for 循环
Python 的 for 直接遍历可迭代对象:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| fruits = ["apple", "banana", "orange"] for fruit in fruits: print(fruit)
for ch in "Python": print(ch)
for i in range(5): print(i)
for i in range(2, 6): print(i)
for i in range(0, 10, 3): print(i)
|
2.2 enumerate:同时获取索引和值
1 2 3 4 5 6 7
| names = ["Alice", "Bob", "Charlie"] for i, name in enumerate(names): print(f"{i}: {name}")
|
2.3 zip:并行遍历
1 2 3 4 5
| names = ["Alice", "Bob", "Charlie"] ages = [25, 30, 22]
for name, age in zip(names, ages): print(f"{name} 今年 {age} 岁")
|
2.4 while 循环
1 2 3 4 5 6 7 8 9 10 11
| count = 0 while count < 5: print(f"count: {count}") count += 1
while True: user_input = input("输入 'quit' 退出: ") if user_input == "quit": break print(f"你输入了: {user_input}")
|
2.5 break 与 continue
1 2 3 4 5 6 7 8 9
| for i in range(10): if i == 5: break print(i, end=" ")
for i in range(10): if i % 2 == 0: continue print(i, end=" ")
|
2.6 for-else / while-else
else 块在循环正常结束时执行(没有被 break 打断时):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| for i in range(5): print(i) else: print("循环正常结束")
data = [1, 3, 5, 7] target = 4
for num in data: if num == target: print("找到了") break else: print(f"{target} 不在列表中")
|
三、列表推导式(List Comprehension)
这是 Python 最具特色的语法之一,用一行代码生成列表:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| squares = [] for i in range(10): squares.append(i ** 2)
squares = [i ** 2 for i in range(10)]
evens = [i for i in range(20) if i % 2 == 0]
names = ["alice", "bob", "charlie"] upper = [n.upper() for n in names]
pairs = [(x, y) for x in range(3) for y in range(2)]
|
四、综合示例
打印九九乘法表
1 2 3 4
| for i in range(1, 10): for j in range(1, i + 1): print(f"{j}×{i}={i*j:<2}", end=" ") print()
|
判断素数
1 2 3 4 5 6 7 8 9 10 11
| def is_prime(n: int) -> bool: if n < 2: return False for i in range(2, int(n ** 0.5) + 1): if n % i == 0: return False return True
primes = [n for n in range(1, 100) if is_prime(n)] print(primes)
|
本系列导航:
- (一)变量与数据类型
- (二)流程控制 ← 当前
- (三)函数与面向对象