Python 流程控制与逻辑

🧠 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. 常见陷阱与注意事项

  1. 忘记冒号ifforwhile 语句行末一定要加 :
  2. 缩进错误:Python 对缩进极其敏感。同一代码块的缩进必须完全一致。
  3. 死循环 :使用 while 时,确保循环条件最终会变为 False
  4. 修改迭代中的列表 :在 for 循环中直接 remove 正在遍历的列表元素会导致奇怪的错误,建议先复制一份列表或使用推导式。

💡 总结建议

  • 如果你知道要循环多少次 :优先用 for
  • 如果你只知道循环结束的条件 :用 while
  • 如果你想让代码看起来更像"高级玩家":尝试学会列表推导式。

下一篇建议: "函数的艺术" ------ 学习如何把这些逻辑封装成可复用的工具。

相关推荐
糖炒栗子03262 小时前
架构笔记:应用配置无状态化 (Statelessness)
后端
long_songs2 小时前
手柄键盘映射器【github链接见文末 】
python·游戏·计算机外设·pygame·软件推荐·手柄映射键盘
必然秃头2 小时前
Python 环境安装及项目构建指南
python
Warson_L2 小时前
Python 四大组合数据类型 (Collection Types)
后端·python
廋到被风吹走2 小时前
【AI】Codex 多语言实测:Python/Java/JS/SQL 效果横评
java·人工智能·python
Warson_L2 小时前
Python 数据类型核心笔记
python
查古穆2 小时前
大白话讲ReAct:大模型的“边想边干”
后端
于先生吖2 小时前
SpringBoot+MQTT 无人健身房智能管控系统源码实战
java·spring boot·后端
毕设源码-小云学姐3 小时前
计算机毕业设计springboot网上招聘系统 基于SpringBoot的在线人才对接平台设计与实现 SpringBoot框架下的数字化求职招聘服务系统开发
spring boot·后端·课程设计