三元操作 三元操作符 if-else / ? :
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 / ? :相关推荐
- CoffeeScript中的三元操作
本文翻译自:Ternary operation in CoffeeScript I need to set value to a that depends on a condition. 我需要设置值 ...
- php 三元运算 简写,es6 三元运算(三元类目)符语法与简写,多条件判断与??::形式 - Laravel学习网...
三元运算符就是替代传统if-else语句让更简洁. 一.三元运算标准写法 我们传统的写法为: const x = 20; let answer; if (x > 10) { answer = ' ...
- 文件操作 - 三元运算/chardet/文件操作r w/文件的操作方法
Alex:读书可以改变一个人的气质 读书:豆瓣: 1年读20本 你的问题:想法太多,读书太少 书:追风筝的人,白鹿原 电影:阿甘正传 辛德勒名单 ------------------------- ...
- python中choice的用法_Python中choice用法与三元操作
今天随手写了一个随机答案生成器,用到了random模块的choice和三元运算符.以下是代码部分: import sys; import random; num = 3; if len(sys.arg ...
- 【C 语言】结构体 ( 结构体变量内存操作 | 通过 “ . “ 操作符操作结构体内存空间 | 通过 “ -> “ 操作符操作结构体内存空间 )
文章目录 一.通过 " . " 操作符操作结构体内存空间 二.通过 " -> " 操作符操作结构体内存空间 三.代码示例 一.通过 " . &q ...
- Js 三元运算符 三元表达式
<body><script>var a = 20;var b;if (a > 10) {b = 100;} else {b = 200;}alert("b=&q ...
- 三元函数的几何图形一般是_三元函数(三元函数能几何表示吗)
三元函数可是用二元函数来表示比方说f(x,y,z)=g(x,y)+g(y,z)+g(x,z),但是二元函数是在平面坐标系中表现的,而三元函数就是三维坐标系,这样看在三维坐标系中画一个向. 那么三元函数 ...
- 操作文件操作符的工作模式:LT(电平触发)ET(边缘触发)实验对比
文章目录 什么是LT和ET? LT(Level Trigger)模式: ET(Edge Trigger)模式: 得出结论,ET模式的工作效率要比LT高,因为ET模式降低了同一事件被重复触发的次数 实验 ...
- 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 ...
最新文章
- 疫情对房地产的后期影响:再见已不是从前
- [转载]LEB128格式简介(CN)
- Ubuntu下超实用的命令
- 如何让PHP性能问题不再饱受诟病
- 两台虚拟服务器如何串联,巧用路由器的DHCP功能,完成两台路由器之间的串联,你学会了么...
- 网页视频进度条禁止拖动----解决
- day05 Servlet组件(上)
- 概率论中常见分布总结以及python的scipy库使用:两点分布、二项分布、几何分布、泊松分布、均匀分布、指数分布、正态分布
- java 压缩图片时候加水印
- opencv之fitline直线拟合
- radmi4a Android,红米手机4A获取root超级权限的教程
- 学校计算机教室防火墙,学校网络及电脑教室建设方案
- 【DPDK】dpdk样例源码解析之二:dpdk-helloworld
- oracle workflow test,oracle workflow常见问题的解决方案
- DNA非编码区,外显子,内含子突变区别
- DRM之Microsoft PlayReady学习入门(一)
- webview 重定向
- [2022.10.30] Linux系统硬盘迁移方案
- 数据资产管理实践白皮书(5.0版)
- linux下的rar命令,Linux如何安装rar和unrar命令