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可用于空代码块占位。
相关推荐
ATMQuant35 分钟前
量化指标解码21:逻辑回归支撑阻力 - 让逻辑回归给关键价位打分
python·机器学习·逻辑回归·量化交易·技术指标
q0371801 小时前
深色 IDE 截图 OCR 老是漏字,我加了一层预处理,顺手把识别结果做成了可搜索历史
python
蜗牛8751 小时前
个人机票监控开源项目:6 个平台、10 条通道的自托管方案
python
秋名山小白2 小时前
Playwright UI 自动化测试实战教程
python·ui
AI源码3 小时前
基于 Python 的汽车市场数据分析与可视化平台
python·数据分析·汽车
会飞锦鲤3 小时前
基于 SVM + HOG 的铸造缺陷检测系统
python·opencv·机器学习·计算机视觉·缺陷检测·图像分类·svm
starrysky8104 小时前
zipfile 中文乱码修复:把已知 GBK 旧 ZIP 解压到正确中文目录
python
用户91294046848424 小时前
Codex 从零到能交付(09):让 Codex 写有用的测试,而不是只测成功路径
python
2601_967987374 小时前
Debian如何配置Python调试工具
python·debian·pdb·调试工具·ipdb
MoRay4 小时前
放弃云端 Computer Use,我用 Python 手搓了一个带“物理防呆”的本地 GUI Agent 底座
python·github