Python 三元操作符 if-else , 其他语言三元操操作符 ? : ;“三元操作”语句,她也就是一个表达式。


【学习的细节是欢悦的历程】


  • Python 官网:https://www.python.org/

  • Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
    地址:https://lqpybook.readthedocs.io/


  自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
            —— 华罗庚


  • My CSDN主页、My HOT博、My Python 学习个人备忘录
  • 好文力荐、 老齐教室



Python 三元操作符 if-else 三元操作语句 ( 其他语言三元操操作符 ? : )



本文质量分:

91 】 本文地址: https://blog.csdn.net/m0_57158496/article/details/130412250

CSDN质量分查询入口:http://www.csdn.net/qc


目 录

  • ◆ 三元操作语句
    • 1、“三元操作”概念
    • 2、 Python “没有”三元操作符
    • 3、 Python 三元操作举例
      • 3.1 简单的非A即B
      • 3.2 小“程序”
      • 3.3 N 元操作语句——“三元操作”多重嵌套
      • 3.4 解构“三元操作”嵌套
    • 4、完整源码

◆ 三元操作语句

1、“三元操作”概念

“三元操作”百科词条说:

  采用三元操作符对 ? : 对表达式进行运算,这种操作符比较特别,因为它有三个操作对象,但它确实属于操作符的一种,它最终也会生成一个值。

其表达式采取下述形式(语法)

  boolean-exp ? value0 : value1

  在表达式 boolean-exp ? value0 : value1 中,如果“布尔表达式”的结果为 True ,就计算“value0”,而且这个计算结果也就是操作符最终产生的值;如果“布尔表达式”的结果为 False ,就计算“value1”,同样,它的结果也就成为了操作符最终产生的值。

  当然,也可以换用普通的 if-else 语句,但 三元操作符更加简洁。尽管引以为傲的就是它是一种简练的语法,而且三元操作符的引入多半就是为了体现这种高效率的编程,但假如你打算频繁使用它,还是要先多作一些思量——因为它很容易就会产生可读性极差的代码。

  这种条件操作符的使用目的,有时是为了它的“副作用”——它运算生成的值。一般而言,我们需要的是其运算的结果值,这正是三元操作符与 if-else 不同之处。

  (点击“三元操作”蓝色文字跳转,了解更多)


  “三元操作”百科词条中列举的三元操作符半角问号冒号对(英文状态问号冒号对) ? : ,是大多数语言采用的“三元操作符”。问号 ? 前面是条件表达式,冒号 : 分隔需选择返回的对象,条件表达式值为 True 时返回冒号 : 左面对象,条件表达式值为 False 时返回冒号 : 右边对象。问号冒号对 ? : 没有特定含义,对写代码和读代码的人,都可能造成一定困扰。如果用上“三元操作语句”多重嵌套,电脑也会被绕晕的吧?

  相对于 Python 采用的 if-else 关键字对,她有常规 if-else 一样的含义,使用起来相对更易于理解和读写。即使用上几层嵌套,也并不是那么难以识记。当然,您要不断叠加“三元操作”,从而达到 N 元操作,那样子也会绕晕读您代码的人,虽然 Python 编译环境还是能被您正确驱使。但,“代码更多是写给人看的,只是偶尔让机器跑跑”,所以大量而频繁使用“三元操作语句”,还是需要谨慎操作的。


回页目录


2、 Python “没有”三元操作符

   Python “没有”三元操作符,她就用的 if-else 关键字对,把需选择返回的两个对象分别放在 if-else 关键字对两端,条件表达式放在 if-else 关键字对中间。条件表达式值为 True 时返回 if-else 关键字对左边对象,值为 False 时返回 if-else 关键字对右面对象。写起来感觉跟写正常的 if-else 语句几乎一样顺手,就是有一两层“三元操作嵌套”,也不是太难读。代码中嵌套“三元操作”太多,也一样让人晕头转向,但只要语法和条件表达式不写错,Python 解释器一样能理得清,给出您要的程序结果。

  实际上,不管您写出我多长的 Python “三元操作”语句,她也就 是一个表达式,始终只会 返回一个值。我们启用“三元操作”,恰恰就是希罕她的这个特性。

  • Python 三元操作符语法:

  表达式1 if 条件表达式 else 表达式2

  当 if 条件表达式值为 True 时,返回结果表达式1,否则返回结果表达式2。


回页目录


3、 Python 三元操作举例

3.1 简单的非A即B

  • 常规的 if-else 代码

def compare(a, b):''' 比较大小,返回大者 '''if a > b:return aelif a != b:return b
  • 三元操作代码

def compare(a, b):''' 比较大小,返回大者 '''return a if a > b else b if a != b else None
  • 调用函数输出结果

if __name__ == '__main__':print(f"\n{'比较大小':^46}{'':~^50}")for i in ((45, 6), ('a', 'A'), (1, True), (False, 1), (56//7, ord('h'))):print(f"\n({i[0]}, {i[1]}) -> {compare(i[0], i[1])}")print(f"\n{'':~^50}")
  • 代码运行效果截屏图片

  分别调用两个函数,可以得到一样的输出。嵌套一层“三元操作”就还原了 Python 函数的默认返回空值,代码也还是比较易读。


回页目录


3.2 小“程序”

  • 常规的 if-else 代码输出和“三元操作”输出

weather = input(f"\n输入天气:")if not weather:print(' 输入不可以为空!'.center(42, '~'))exit()def isnice():if '雨' in weather or '雪' in weather:return '路滑'else:return '路好走'print(f"\n\n{weather},{isnice()}。")print(f"\n\n三元操作:\n\n{weather},{'路滑' if '雨' in weather or '雪' in weather else '路好走'}。")
  • 代码运行效果截屏图片




回页目录


3.3 N 元操作语句——“三元操作”多重嵌套

  通过“三元操作”多重嵌套运作,可以实现 “ n 元操作” ,每增加一层嵌套,就会增加“一元”。但,进行过多层次嵌套“加元”操作,还须谨慎!那样做会让您的代码真的“好难读”的咯。

三元操作 三元操作符 if-else / ? :相关推荐

  1. CoffeeScript中的三元操作

    本文翻译自:Ternary operation in CoffeeScript I need to set value to a that depends on a condition. 我需要设置值 ...

  2. php 三元运算 简写,es6 三元运算(三元类目)符语法与简写,多条件判断与??::形式 - Laravel学习网...

    三元运算符就是替代传统if-else语句让更简洁. 一.三元运算标准写法 我们传统的写法为: const x = 20; let answer; if (x > 10) { answer = ' ...

  3. 文件操作 - 三元运算/chardet/文件操作r w/文件的操作方法

    Alex:读书可以改变一个人的气质 读书:豆瓣: 1年读20本 你的问题:想法太多,读书太少 书:追风筝的人,白鹿原   电影:阿甘正传 辛德勒名单 ------------------------- ...

  4. python中choice的用法_Python中choice用法与三元操作

    今天随手写了一个随机答案生成器,用到了random模块的choice和三元运算符.以下是代码部分: import sys; import random; num = 3; if len(sys.arg ...

  5. 【C 语言】结构体 ( 结构体变量内存操作 | 通过 “ . “ 操作符操作结构体内存空间 | 通过 “ -> “ 操作符操作结构体内存空间 )

    文章目录 一.通过 " . " 操作符操作结构体内存空间 二.通过 " -> " 操作符操作结构体内存空间 三.代码示例 一.通过 " . &q ...

  6. Js 三元运算符 三元表达式

    <body><script>var a = 20;var b;if (a > 10) {b = 100;} else {b = 200;}alert("b=&q ...

  7. 三元函数的几何图形一般是_三元函数(三元函数能几何表示吗)

    三元函数可是用二元函数来表示比方说f(x,y,z)=g(x,y)+g(y,z)+g(x,z),但是二元函数是在平面坐标系中表现的,而三元函数就是三维坐标系,这样看在三维坐标系中画一个向. 那么三元函数 ...

  8. 操作文件操作符的工作模式:LT(电平触发)ET(边缘触发)实验对比

    文章目录 什么是LT和ET? LT(Level Trigger)模式: ET(Edge Trigger)模式: 得出结论,ET模式的工作效率要比LT高,因为ET模式降低了同一事件被重复触发的次数 实验 ...

  9. php解三元一次方程,三元一次方程的求解

    #7 忘了2010-06-10 20:41 main(){ long  a[4],b,c,d,i,m=0; double f,x=1,sum,n=1; printf("input:a,b,c ...

最新文章

  1. 疫情对房地产的后期影响:再见已不是从前
  2. [转载]LEB128格式简介(CN)
  3. Ubuntu下超实用的命令
  4. 如何让PHP性能问题不再饱受诟病
  5. 两台虚拟服务器如何串联,巧用路由器的DHCP功能,完成两台路由器之间的串联,你学会了么...
  6. 网页视频进度条禁止拖动----解决
  7. day05 Servlet组件(上)
  8. 概率论中常见分布总结以及python的scipy库使用:两点分布、二项分布、几何分布、泊松分布、均匀分布、指数分布、正态分布
  9. java 压缩图片时候加水印
  10. opencv之fitline直线拟合
  11. radmi4a Android,红米手机4A获取root超级权限的教程
  12. 学校计算机教室防火墙,学校网络及电脑教室建设方案
  13. 【DPDK】dpdk样例源码解析之二:dpdk-helloworld
  14. oracle workflow test,oracle workflow常见问题的解决方案
  15. DNA非编码区,外显子,内含子突变区别
  16. DRM之Microsoft PlayReady学习入门(一)
  17. webview 重定向
  18. [2022.10.30] Linux系统硬盘迁移方案
  19. 数据资产管理实践白皮书(5.0版)
  20. linux下的rar命令,Linux如何安装rar和unrar命令

热门文章

  1. 正高职称 程序员_高级工程师、副高、正高有什么区别?
  2. 系统规划---新旧系统的分析和比较
  3. submit assembly to NCBI
  4. AOP 的详细说明以及基本的使用
  5. class4-操作列表
  6. 详解libevent网络库(一)---框架的搭建
  7. 星球日报 | 英伟达70亿美元收购同行公司;XRPL Labs推出针对WooCommerce项目开发人员的奖励基金...
  8. DirectX11 设备、交换链和设备环境如何创建
  9. pytorch读取图片并按比例改变图片的大小或者是固定大小
  10. 记账本开发进程第六天