Python3 条件控制

Python3 条件控制(Conditionals)


🎯 学习目标

掌握 Python 中的条件控制语句(if, elif, else),理解其在程序流程控制中的作用。能够在实际项目中灵活使用条件判断进行逻辑分支处理,提升代码的逻辑清晰度与可维护性。


🔑 核心重点

分类 内容
基本结构 使用 if, elif, else 控制程序执行路径
逻辑表达式 支持 and, or, not 进行复合判断
真值测试 掌握空值、布尔值、容器类型等“真假”判定规则
实际应用场景 用户输入验证、权限控制、状态判断、数据筛选等
性能优化技巧 合理组织条件顺序、避免重复判断、使用短路求值

📚 详细讲解

一、什么是条件控制?

条件控制是程序中最基本的流程控制结构之一。通过判断某个条件是否成立,决定执行哪一段代码。

✅ 基本语法:

if condition1:
    # 条件1为 True 时执行
elif condition2:
    # 条件2为 True 时执行
else:
    # 所有条件都不满足时执行

📌 注意

  • if 是必须的
  • elif 可以有多个或没有
  • else 最多只能有一个,且必须在最后

二、比较运算符

运算符 描述 示例
== 等于 x == y
!= 不等于 x != y
< 小于 x < y
> 大于 x > y
<= 小于等于 x <= y
>= 大于等于 x >= y

三、逻辑运算符

用于组合多个条件判断。

运算符 描述 示例
and 两个条件都为真才返回真 (x > 5) and (x < 10)
or 至少一个条件为真就返回真 (x < 5) or (x > 10)
not 取反条件结果 not (x == y)

📌 短路求值:Python 在计算逻辑表达式时会进行短路判断,即只要能确定最终结果就不会继续计算后续部分。


四、真值测试(Truth Value Testing)

在 Python 中,很多对象都可以被当作布尔值使用:

类型 默认为 False 的情况
数字 0, 0.0
字符串 ""
列表 []
元组 ()
字典 {}
集合 set()
None None
if "":
    print("This will not print")

if []:
    print("This will also not print")

五、嵌套条件判断

可以在一个条件块内再写另一个 if 语句,形成嵌套结构。

age = 20
has_permission = True

if age >= 18:
    if has_permission:
        print("可以进入系统")
    else:
        print("需要管理员授权")
else:
    print("未满18岁,禁止访问")

📌 建议:尽量避免过多层嵌套,可使用“提前 return”或“提取函数”来简化逻辑。


六、简洁写法(一行写完)

适用于简单判断:

x = 10
result = "偶数" if x % 2 == 0 else "奇数"
print(result)

📌 也可以结合 inis 等关键字:

name = input("请输入用户名:")
if name in ["admin", "root"]:
    print("欢迎管理员!")
else:
    print("普通用户登录")

⚠️ 注意事项

  • 缩进统一使用 4 个空格(PEP8 要求)
  • 条件表达式要明确,避免模糊判断(如 if x: 应说明含义)
  • 不要滥用嵌套,保持代码扁平化
  • 对比浮点数时应使用误差范围(避免精度问题)
  • 使用 elif 替代多个独立 if,提高效率和可读性

🧪 实际案例分析

📌 场景:用户登录权限判断

我们模拟一个简单的登录系统,根据用户输入的用户名和密码判断是否有权限访问。

username = input("请输入用户名:")
password = input("请输入密码:")

valid_users = {
    "admin": "123456",
    "user1": "pass123"
}

if username in valid_users:
    if password == valid_users[username]:
        print("登录成功!")
        if username == "admin":
            print("您拥有管理员权限。")
        else:
            print("您是普通用户。")
    else:
        print("密码错误,请重试。")
else:
    print("用户名不存在。")

📌 应用

  • 登录验证系统
  • 权限管理模块
  • 数据过滤器
  • 状态机设计

🧩 拓展练习(动手实践)

  1. 编写一个程序,接收用户输入的成绩(0~100),输出对应的等级(A/B/C/D/F)。
  2. 输入三个整数,判断它们能否构成三角形,并输出三角形类型(等边、等腰、不等边)。
  3. 编写一个模拟 ATM 取款程序,判断余额是否足够并提示相应操作。
  4. 实现一个简单的计算器,支持加减乘除,并处理除零异常。
  5. 设计一个菜单选择系统,根据用户输入数字执行不同功能(如查询、添加、退出)。

📚 推荐阅读


🧭 下一步建议

  • 下一章学习内容:《Python3 循环结构详解》
  • 掌握 forwhile 循环的基本用法
  • 学习 break, continue, else 在循环中的使用
  • 探索嵌套循环、迭代器与生成器
  • 结合条件控制与循环知识,尝试编写复杂逻辑程序(如猜数字游戏、排序算法等)

如果你希望我为你提供:

  • Python 条件控制速查表 PDF
  • 更多实战项目练习题(如登录系统、成绩分类器、菜单系统等)
  • 条件判断高级技巧详解(如链式判断、模式匹配、枚举判断等)
  • 视频教学资源推荐(中文讲解)

欢迎随时告诉我 😊

posted @ 2025-05-28 20:18  红尘过客2022  阅读(62)  评论(0)    收藏  举报