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

python刷题笔记:三目运算符的写法

在Python中,三目运算符(条件表达式)是简化if-else逻辑的语法工具,其标准格式为:
值 A i f 条件 e l s e 值 B 值A \quad if \quad 条件 \quad else \quad 值B Aif条件elseB


一、基础用法

1. 变量赋值(最常用场景)

传统写法

if a > b:max_val = a
else:max_val = b

三目运算符简化

max_val = a if a > b else b  # 条件为真取a,否则取b
2. 函数返回值
def check_parity(x):return "奇数" if x % 2 == 1 else "偶数"  # 直接返回条件判断结果

二、进阶用法

1. 嵌套条件(多条件判断)

示例:比较三个数中的最大值

a, b, c = 10, 20, 15
max_val = a if a > b and a > c else (b if b > c else c)  # 嵌套判断
2. 列表推导式结合
numbers = [3, -5, 8, -2]
abs_list = [x if x >= 0 else -x for x in numbers]  # 输出[3,5,8,2]

三、注意事项

  1. 运算顺序
    多级嵌套时从左向右计算,可用()明确优先级

    # 示例:表达式等价性对比
    ret = (x if x>y else y) if y>z else z  # 明确分组
    
  2. 可读性边界
    适用于简单逻辑,复杂条件建议保留if-else结构

  3. 类型一致性
    值A值B应为相同类型或可兼容类型

    result = "正数" if n > 0 else 0  # 混合类型可能引发后续问题
    

四、与C语言对比

特性Python三目运算符C语言三目运算符
语法结构a if cond else bcond ? a : b
返回值类型允许不同类型需类型兼容

http://www.xdnf.cn/news/4292.html

相关文章:

  • vue3+vite+AI大模型实现谷歌插件-web诊断
  • 高频PCB设计如何选择PCB层数?
  • 视觉爬虫开发:通过Puppeteer截图+CV定位动态元素坐标
  • 线上部署的项目Redis突然宕机了怎么办
  • 解决 Exception in thread “main“ java.lang.NoClassDefFoundError
  • CPU:为什么Ryzen 7000系列处理器PCIe通道总数是28,而可用的通道数是24?
  • 【coze】工作流(B站视频总结改写)
  • 推荐两本集成电路制作书籍
  • 14.Spring Boot 3.1.5 集成 Spring Security 进行访问控制
  • SQL Server执行安装python环境
  • GIS中常见的影像数据格式和类型
  • 【SpringBoot教程】SpringBoot自定义注解与AOP实现切面日志
  • Spring Boot Starter简介-笔记
  • UE5 C++项目实现单例
  • 基于STM32、HAL库的TTP224C-BSBN 触摸屏控制器驱动程序设计
  • ultralytics框架进行RT-DETR目标检测训练
  • 人工智能 计算智能模糊逻辑讲解
  • 使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第十一讲)
  • clickhouse - 重新建表覆盖旧表-解决分区时间错误问题-197001
  • GEC6818蜂鸣器驱动开发
  • K8S - Helm 入门与实战 - 应用部署与依赖治理
  • BERT 微调
  • Linux系统之shell脚本基础:条件测试、正整数字符串比较与if、case语句
  • 第四节:进程控制
  • 8086汇编:寄存器
  • 匿名函数对编译错误的影响
  • JVM——垃圾回收
  • 开发规范 - 空指针异常等低级问题注意点
  • 10B扩散文生图模型F-Lite技术报告速读
  • C++ 享元模式与共享工厂模式详解