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. 条件表达式 :可以是直接的比较(>、<>=<===!=),也可以是逻辑运算(andornot),最终结果必须是 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可用于空代码块占位。
相关推荐
serve the people几秒前
python环境搭建 (十三) httpx和aiohttp
开发语言·python·httpx
Allen_LVyingbo1 分钟前
医疗AI新范式:当数理模型开始“计算”生命,传统大模型面临重构(中)
开发语言·人工智能·python·自然语言处理·重构·知识图谱
时艰.4 分钟前
Java 线程池 — ThreadPoolExecutor
java·开发语言·python
七夜zippoe7 分钟前
时间序列分析实战:从平稳性检验到Prophet与LSTM预测
人工智能·python·机器学习·arima·时间序列·prophet
多恩Stone12 分钟前
【3D-AICG 系列-2】Trellis 2 的O-voxel (上) Shape: Flexible Dual Grid
人工智能·python·算法·3d·aigc
AAD555888997 小时前
数字仪表LCD显示识别与读数:数字0-9、小数点及单位kwh检测识别实战
python
开源技术8 小时前
Python Pillow 优化,打开和保存速度最快提高14倍
开发语言·python·pillow
Li emily9 小时前
解决港股实时行情数据 API 接入难题
人工智能·python·fastapi
wfeqhfxz258878210 小时前
农田杂草检测与识别系统基于YOLO11实现六种杂草自动识别_1
python
mftang10 小时前
Python 字符串拼接成字节详解
开发语言·python