🧠 Python 流程控制与逻辑 (Flow Control) 学习笔记
在 Python 中,流程控制依靠**缩进(Indentation)**来划分代码块。通常是 4 个空格。
1. 条件判断 (Conditional Statements)
根据条件的真假(True/False)来决定执行哪一段代码。
① 基础语法
python
age = 18
if age >= 18:
print("你已经成年了")
elif age >= 12:
print("你是青少年")
else:
print("你是儿童")
if: 必须有,判断第一个条件。elif: 可选,可以有多个,表示"否则如果"。else: 可选,表示以上条件都不满足时执行。
② 逻辑运算符
用于组合多个条件:
and: 且(两者都为真)。or: 或(只要有一个为真)。not: 非(取反)。
python
score = 85
if score >= 80 and score <= 90:
print("优秀")
2. 循环结构 (Loops)
① for 循环:遍历序列
for 循环用于遍历任何序列(列表、元组、字典、字符串等)。
python
# 遍历列表
fruits = ["苹果", "香蕉", "橙子"]
for fruit in fruits:
print(f"我想吃: {fruit}")
# 使用 range() 生成数字序列
# range(start, stop, step)
for i in range(1, 5): # 输出 1, 2, 3, 4 (不含 5)
print(i)
② while 循环:条件循环
只要条件为真,就一直执行。
python
count = 0
while count < 3:
print(f"计数中: {count}")
count += 1 # 记得修改条件,否则会死循环
3. 循环控制语句
有时我们需要提前结束循环或跳过某次迭代。
| 关键字 | 作用 |
|---|---|
break |
彻底终止当前循环,跳出循环体。 |
continue |
跳过本次循环剩下的代码,直接进入下一次迭代。 |
pass |
占位符。什么都不做,只为了保持语法完整(常用于还没写好逻辑的函数)。 |
示例代码:
python
for i in range(1, 6):
if i == 3:
continue # 跳过 3
if i == 5:
break # 看到 5 就停止整个循环
print(i)
# 输出结果: 1, 2, 4
4. 进阶:推导式 (Comprehensions) 🚀
这是 Python 的"黑魔法",能用一行代码完成循环+创建集合的操作。
① 列表推导式 (List Comprehension)
需求:得到 1-10 中所有偶数的平方。
python
# 普通写法
squares = []
for x in range(1, 11):
if x % 2 == 0:
squares.append(x**2)
# 推导式写法 (更 Pythonic)
squares = [x**2 for x in range(1, 11) if x % 2 == 0]
② 字典推导式 (Dict Comprehension)
python
# 将两个列表合并成一个字典
keys = ['name', 'age']
values = ['Jojo', 25]
user_dict = {keys[i]: values[i] for i in range(len(keys))}
# 结果: {'name': 'Jojo', 'age': 25}
5. 常见陷阱与注意事项
- 忘记冒号 :
if、for、while语句行末一定要加:。 - 缩进错误:Python 对缩进极其敏感。同一代码块的缩进必须完全一致。
- 死循环 :使用
while时,确保循环条件最终会变为False。 - 修改迭代中的列表 :在
for循环中直接remove正在遍历的列表元素会导致奇怪的错误,建议先复制一份列表或使用推导式。
💡 总结建议
- 如果你知道要循环多少次 :优先用
for。 - 如果你只知道循环结束的条件 :用
while。 - 如果你想让代码看起来更像"高级玩家":尝试学会列表推导式。
下一篇建议: "函数的艺术" ------ 学习如何把这些逻辑封装成可复用的工具。