当前位置: 首页 > news >正文

Python--条件结构

Python--条件结构

    • Python条件结构的基本语法
    • 单条件判断
    • 多条件分支
    • 嵌套条件结构
    • 条件表达式
    • 逻辑运算符组合
    • 特殊值判断
    • 空值检查的简化写法
    • 多条件链式比较
    • 字典代替复杂分支

Python条件结构的基本语法

Python中使用ifelifelse关键字实现条件结构。语法要求严格依赖缩进(通常为4个空格),结构如下:

if 条件1:执行语句1
elif 条件2:  # 可选执行语句2
else:        # 可选执行语句3

单条件判断

最简单的形式是仅使用if。当条件为True时执行代码块:

x = 10
if x > 5:print("x大于5") # 当x > 5的结果为True时执行

多条件分支

通过elif添加更多判断分支,else处理所有未满足的情况:

score = 85
if score >= 90:print("优秀")
elif score >= 80:print("良好")
else:print("需努力")

嵌套条件结构

条件语句可以多层嵌套,每层需保持缩进一致:

num = 15
if num > 0:if num % 2 == 0:print("正偶数")else:print("正奇数")
else:print("非正数")

条件表达式

Python支持单行条件表达式(三元运算符),格式为值1 if 条件 else 值2

age = 20
status = "成年" if age >= 18 else "未成年"

逻辑运算符组合

使用andornot组合多个条件:

temperature = 25
humidity = 70
if temperature > 30 and humidity > 80:print("高温高湿")
elif not (temperature > 0):print("零下温度")

特殊值判断

利用成员运算符in和身份运算符is进行判断:

colors = ["red", "green", "blue"]
if "green" in colors:print("绿色存在")a = None
if a is None:print("变量为空")

空值检查的简化写法

直接使用变量作为条件时,空列表、空字符串等会被视为False

name = ""
if not name:print("姓名为空")

多条件链式比较

Python允许数学风格的链式比较:

size = 15
if 10 <= size < 20:print("中等尺寸")

字典代替复杂分支

在Python编程中,当遇到多分支场景(如根据不同的输入值执行不同的操作)时,使用多层if-elif-else语句虽然可行,但代码可能变得冗长且不易维护。一种更简洁、高效的方法是使用字典映射(dictionary mapping)。字典将键值对(key-value pairs)存储起来,通过键直接查找值,避免了复杂的条件链。下面通过一个例子逐步说明。

示例场景
假设我们有一个函数,输入一个字符串表示动物名称(如"dog"、“cat”、“bird”),输出该动物的叫声(如"汪汪"、“喵喵”、“叽叽”)。如果输入不在预设范围内,则返回默认提示。

传统方法:使用多层if-elif-else
这种方法需要为每个分支编写单独的elif语句,当分支增多时,代码会变得冗长。

def get_animal_sound(animal):if animal == "dog":return "汪汪"elif animal == "cat":return "喵喵"elif animal == "bird":return "叽叽"elif animal == "cow":return "哞哞"else:return "未知动物的叫声"

缺点: 每增加一个新动物,就需要添加一个新的elif分支,代码可读性下降,且容易出错。

改进方法: 使用字典映射
我们可以创建一个字典,将动物名称映射到叫声。然后使用字典的get方法来处理查找,并指定默认值。这样代码更简洁、易扩展。

def get_animal_sound(animal):sound_map = {"dog": "汪汪","cat": "喵喵","bird": "叽叽","cow": "哞哞"}return sound_map.get(animal, "未知动物的叫声")

测试
测试上述字典映射函数:

print(get_animal_sound("dog"))  # 输出: 汪汪
print(get_animal_sound("bird")) # 输出: 叽叽
print(get_animal_sound("lion")) # 输出: 未知动物的叫声

适用场景

  • 当分支数量较多时(如超过5个),字典映射的优势更明显。
  • 适用于基于固定键值(如字符串、数字)的分支处理,但不适用于复杂条件(如涉及比较运算或范围判断)。
  • 通过这个例子,您可以看到字典映射如何简化多分支逻辑,使代码更清晰、可扩展。在实际项目中,这能提高开发效率和代码质量。

文章转载自:

http://BrPQRHTH.gstmn.cn
http://hYg5IrQm.gstmn.cn
http://8xCP23Rt.gstmn.cn
http://drOUPTfT.gstmn.cn
http://IaMgKLvo.gstmn.cn
http://vCggm8Lo.gstmn.cn
http://PBW4DGsR.gstmn.cn
http://W8HIyY6J.gstmn.cn
http://OasFZWdp.gstmn.cn
http://gI3aRaR1.gstmn.cn
http://UePXxHQ9.gstmn.cn
http://qb5Pnzbx.gstmn.cn
http://ULrQdd8Y.gstmn.cn
http://zJybWnwe.gstmn.cn
http://pwOlNHDN.gstmn.cn
http://x0WhJVpq.gstmn.cn
http://kXJzdc6r.gstmn.cn
http://PxIPrwXU.gstmn.cn
http://OmJhcW7V.gstmn.cn
http://mvwa4CEy.gstmn.cn
http://ljln3C82.gstmn.cn
http://GzYJOieM.gstmn.cn
http://2W7xNydk.gstmn.cn
http://1czZhnzD.gstmn.cn
http://qWJ81KCS.gstmn.cn
http://2VvKMqbO.gstmn.cn
http://owbU2fUr.gstmn.cn
http://3kpJjEkA.gstmn.cn
http://t3qL5LnX.gstmn.cn
http://yA4HQ42j.gstmn.cn
http://www.dtcms.com/a/366349.html

相关文章:

  • 2025年GEO服务商推荐:AI驱动的精准增长之道——权威深度洞察与未来趋势解析
  • Interbrand《2025中国最佳品牌排行榜》发布:中国平安跻身中国品牌前三、位列金融行业第一
  • 猫头虎AI 荐研|腾讯开源长篇叙事音频生成模型 AudioStory:统一模型,让 AI 会讲故事
  • 国内首个开源的 AI CRM 开启公测!
  • 汉诺塔递归过程推导(详细+省流)
  • MySQL高可用之组复制(MGR)
  • 单串口服务器-工业级串口联网解决方案
  • 数据库中事务、指令、写法解读
  • 【Cesium】介绍及基础使用
  • 新手向:使用 DeepSeek 帮助自己的工作
  • React Hooks深度解析:useState、useEffect及自定义Hook最佳实践
  • Shadcn UI – 开发者首选的高性能、高定制化 React 组件库
  • 【Day 20】148.排序链表
  • Flash Attention vs Paged Attention:大语言模型注意力计算的内存管理革命
  • 设计模式:中介者模式(Mediator Pattern)
  • 从Java全栈到Vue3:一个程序员的面试实战记录
  • 虚拟环境克隆
  • leetcode算法刷题的第二十六天
  • STM32传感器模块编程实践(十五)DIY语音对话控制+满溢检测智能垃圾桶模型
  • 5.7 点云公开数据集——3D形状分类/部件分割
  • 食物分类案例优化 调整学习率和迁移学习
  • Python快速入门专业版(二):print 函数深度解析:不止于打印字符串(含10+实用案例)
  • 阿里云-基于通义灵码实现高效 AI 编码 | 1 | 在 Visual Studio Code 中安装和使用灵码
  • 高并发系统设计方案(直播场景)
  • VisionPro工业相机 硬触发操作前以及Vs实现
  • ClickHouse 分片、 Distributed 表、副本机制
  • STM32启动模式配置
  • 嵌入式铁头山羊stm32-SAR型ADC模块介绍、采样时间、转换时间-Day24
  • uniapp中使用echarts并且支持pc端的拖动、拖拽和其他交互事件
  • uniapp的上拉加载H5和小程序