Python条件判断语句 if、elif 、else

Python条件判断语句 if

核心概念

计算机能完成自动化任务,关键在于它能根据特定条件自动做出判断。在Python中,这种判断主要通过 if 语句来实现。

1. 基本 if 语句

  • 功能 :当条件判断为 True 时,执行缩进块内的代码;否则,什么也不做。

  • 语法与示例

    python 复制代码
    age = 20
    if age >= 18:
        print('your age is', age) # 注意缩进
        print('adult')            # 这两行属于if代码块
  • 关键:严格遵守Python的缩进规则来定义代码块。

2. if...else 语句

  • 功能 :提供两个分支。如果 if 的条件为 False,则执行 else 下的代码。

  • 语法与示例

    python 复制代码
    age = 3
    if age >= 18:
        print('adult')
    else:
        print('teenager') # 因为age=3不满足if条件,所以会执行这里
  • 注意 :不要遗漏冒号 :

3. if...elif...else 语句

  • 功能 :用于进行多个条件的细致判断。elifelse if 的缩写。

  • 语法与示例

    python 复制代码
    age = 3
    if age >= 18:
        print('adult')
    elif age >= 6: # 可以添加多个elif
        print('teenager')
    else:
        print('kid')
  • 执行特点从上到下判断 ,一旦某个条件为 True,便执行对应的代码块,并忽略 后续所有的 elifelse

    思考题答案 :为什么 age = 20 时打印 'teenager'

    python 复制代码
    age = 20
    if age >= 6:    # 第一个判断:20>=6 为 True
        print('teenager') # 立即执行,并忽略后面的elif和else
    elif age >= 18: # 这行已经被跳过,不会执行
        print('adult')
    else:
        print('kid')

4. 条件的简写

  • 判断条件可以非常简洁。只要 x非零数值、非空字符串、非空列表 等,就会被视为 True;反之(如 0, "", [], None)则被视为 False

  • 示例

    python 复制代码
    if x:
        print('True') # 只要x不是"空"值,就会打印True

5. 重要注意事项:处理用户输入 (input())

  • 问题input() 函数返回的数据类型永远是字符串 (str) ,不能直接与整数 (int) 进行比较。

  • 错误示例

    python 复制代码
    birth = input('birth: ') # 用户输入"1982",birth是字符串'1982'
    if birth < 2000:         # 错误!字符串和整数不能比较
        print('00前')

    这会引发 TypeError

  • 正确方法 :使用 int() 函数将字符串转换为整数。

    python 复制代码
    s = input('birth: ')
    birth = int(s) # 将字符串s转换为整数
    if birth < 2000:
        print('00前')
    else:
        print('00后')
  • 新的风险 :如果用户输入的不是数字(如 abc),int() 函数转换会失败,并引发 ValueError 导致程序崩溃。

  • 解决方案 :如何优雅地处理这种输入错误(例如,提示用户重新输入),将在后续关于错误捕获和调试的章节中讲解。


总结要点

  1. 核心if, elif, else 是实现程序分支和自动判断的基础。
  2. 语法 :牢记冒号 : 和代码缩进。
  3. 逻辑:理解"从上到下判断,遇真即止"的执行顺序。
  4. 陷阱 :使用 input() 获取用户输入时,务必注意类型转换,并考虑处理非法输入的情况。

做个练习题

小明身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:

  • 低于18.5:过轻
  • 18.5-25:正常
  • 25-28:过重
  • 28-32:肥胖
  • 高于32:严重肥胖

if-elif判断并打印结果:

python 复制代码
hight =1.50
weight=50.5
bmi=weight/hight**2
print("bmi=",bmi)

if bmi<18.5:
    print("过轻")
elif 18.5<bmi<25:
    print("正常")
elif 25<bmi<28:
    print("过重")
elif 28<bmi<32:
    print('肥胖')
elif bmi>=32:
    print("严重肥胖")
相关推荐
熊小猿1 小时前
在 Spring Boot 项目中使用分页插件的两种常见方式
java·spring boot·后端
listhi5201 小时前
利用React Hooks简化状态管理
前端·javascript·react.js
paopaokaka_luck1 小时前
基于SpringBoot+Vue的助农扶贫平台(AI问答、WebSocket实时聊天、快递物流API、协同过滤算法、Echarts图形化分析、分享链接到微博)
java·vue.js·spring boot·后端·websocket·spring
一点一木1 小时前
🚀 2025 年 10 月 GitHub 十大热门项目排行榜 🔥
前端·人工智能·github
做运维的阿瑞1 小时前
用 Python 构建稳健的数据分析流水线
开发语言·python·数据分析
华仔啊1 小时前
这个Vue3旋转菜单组件让项目颜值提升200%!支持多种主题,拿来即用
前端·javascript·css
左师佑图1 小时前
综合案例:Python 数据处理——从Excel文件到数据分析
开发语言·python·数据分析·excel·pandas
非凡ghost2 小时前
Adobe Lightroom安卓版(手机调色软件)绿色版
前端·windows·adobe·智能手机·软件需求
小蒜学长2 小时前
springboot酒店客房管理系统设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端
BestAns2 小时前
Postman 平替?这款轻量接口测试工具,本地运行 + 批量回归超实用!
前端