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可用于空代码块占位。
相关推荐
张张123y5 小时前
后端第一课:输入 URL 后发生了什么?我用手写 Socket 把全链路跑通了
python·websocket·ai·socket·url·后端开发
全栈弄潮儿7 小时前
Python实战第7期:字典与集合
后端·python·编程语言
2603_965148117 小时前
电商选品调研:通过关键词搜索API获取市场热销商品,结合商品详情API分析竞品卖点与定价
开发语言·数据库·人工智能·python·信息可视化
xixiaoyunya8 小时前
Python 异步编程入门:用 asyncio 轻松实现并发任务
开发语言·python·php
把我格子衫拿来8 小时前
Dice 很高就够了吗?分割评价中的 IoU、表面距离与 HD95
python·图像分割·模型评估·医学影像·dice
曲径海盗8 小时前
【Python 学习第 31 天】复习:变量与数据类型 等 3 题
python·学习笔记·编程入门
Data_Journal9 小时前
如何绕过 Cloudflare:网页抓取的最佳方法
网络·python
我命由我123459 小时前
智能助手通用问答边界
人工智能·python·学习·ai·学习方法·ai编程·智能体
Angeldream12310 小时前
第 4 章 医学影像预处理
图像处理·人工智能·python·医学影像·医学影像处理
Web3&Basketball10 小时前
实测Gemini4Argon:ERQA 87%登顶长程任务榜
数据库·python·大模型·多模态·gemini·长上下文·推理优化