python条件控制与if语句

一、条件控制与 if 语句的核心概念

条件控制的本质是:程序根据一个或多个条件的 "真 / 假"(True/False),决定执行哪一段代码。if 语句是实现条件控制的核心语法,它有三种基本形式:单分支、双分支、多分支。

1. 单分支 if 语句(满足条件才执行)

语法:

python

运行

复制代码
if 条件表达式:
    满足条件时执行的代码块  # 注意缩进,Python用缩进区分代码块

示例:判断数字是否为正数

python

运行

复制代码
num = 18
if num > 0:  # 条件表达式:num大于0
    print(f"{num} 是正数")  # 满足条件时执行

输出 :18 是正数

2. 双分支 if-else 语句(二选一执行)

语法:

python

运行

复制代码
if 条件表达式:
    满足条件时执行的代码块
else:
    不满足条件时执行的代码块

示例:判断数字是正数还是非正数

python

运行

复制代码
num = -5
if num > 0:
    print(f"{num} 是正数")
else:
    print(f"{num} 不是正数")

输出 :-5 不是正数

3. 多分支 if-elif-else 语句(多选一执行)

语法:

python

运行

复制代码
if 条件1:
    满足条件1执行的代码块
elif 条件2:
    满足条件2执行的代码块
# 可以有多个elif
else:
    所有条件都不满足时执行的代码块

示例:判断成绩等级

python

运行

复制代码
score = 85
if score >= 90:
    print("优秀")
elif score >= 80:  # 隐含条件:score < 90 且 score >=80
    print("良好")
elif score >= 60:
    print("及格")
else:
    print("不及格")

输出 :良好

二、关键细节说明

  1. 条件表达式 :可以是直接的比较(>、<、>=、<=、==、!=),也可以是逻辑运算(and、or、not),最终结果必须是 True/False。示例(逻辑运算):

    python

    运行

    复制代码
    age = 20
    if 18 <= age < 60:  # 等价于 age >=18 and age <60
        print("成年且未退休")
  2. 缩进规则 :Python 中没有大括号{},而是用4 个空格(或 1 个 Tab) 缩进表示代码块归属,缩进错误会直接报错。❌ 错误示例(缩进不一致):

    python

    运行

    复制代码
    num = 3
    if num > 0:
    print("正数")  # 没有缩进,报错
  3. 空判断(pass) :如果条件满足但暂时不想执行任何代码,可用pass占位,避免语法错误。

    python

    运行

    复制代码
    num = 0
    if num == 0:
        pass  # 占位,不执行任何操作
    else:
        print("非零")

三、实际应用示例

写一个程序,根据输入的分数判断是否及格,且处理非数字输入的异常:

python

运行

复制代码
try:
    score = float(input("请输入你的分数:"))
    if score < 0 or score > 100:
        print("分数必须在0-100之间!")
    elif score >= 60:
        print("恭喜,及格了!")
    else:
        print("很遗憾,不及格。")
except ValueError:
    print("输入错误,请输入数字!")

测试用例:

  • 输入 88 → 输出:恭喜,及格了!
  • 输入 59 → 输出:很遗憾,不及格。
  • 输入 101 → 输出:分数必须在 0-100 之间!
  • 输入 abc → 输出:输入错误,请输入数字!

总结

  1. if 语句是 Python 实现条件判断的核心,有单分支(if)、双分支(if-else)、多分支(if-elif-else)三种形式。
  2. 条件表达式最终要返回 True/False,可结合比较运算符和逻辑运算符使用。
  3. Python 通过缩进 区分代码块,缩进错误会导致程序报错,pass可用于空代码块占位。
相关推荐
默_笙3 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
qq_426003963 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫3 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
长沙三为智能科技3 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
伞伞悦读3 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
只睡四小时3 天前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas
奇思妙想聪明勤奋的小羊3 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
lpfasd1233 天前
2026年第38周GitHub趋势周报
python·科技·github
IZero073 天前
Jev 与 Laya
python·语言模型