网站首页 > 精选教程 正文
python的三元表达式相信学过python的朋友都会。但是大部分学python的朋友不知道的是三元表达式还可以嵌套三元表达式。
请看代码案例:
cmp = lambda a, b: 0 if a == b else 1 if a > b else -1
print(cmp(3,2))
print(cmp(2,3))
print(cmp(2,2))
out:
1
-1
0
以上代码的功能是对两个数进行比较,若第一个数等于第二个数返回0;若第一个数大于第二个数返回1;若第一个数小于第二个数返回-1。
直接看是不是比较懵?我把它拆分一下,换一种写法,会容易懂得多。
def cmp2(a, b):
if a == b:
return 0
else:
if a > b:
return 1
else:
return -1
print(cmp2(3, 2))
print(cmp2(2, 3))
print(cmp2(2, 2))
out:
1
-1
0
可以看到上述2个函数功能完全一致,第一种写法简洁的多!
再来熟悉一下这种写法,为了便于理解我多加了对括号:
0 if a == b else (1 if a > b else -1)
这种语句是三元表达式嵌套三元表达式的结构,从左向右计算。
三元表达式首先找if,找到if判断a ==b (判断元素):
- 若该条件满足则返回if左边的0(结果元素1)作为整个表达式的运算结果。
- 若该判断条件不满足则返回判断条件右边的三元表达式(结果元素2)。
右边仍然是三元表达式,继续计算该三元表达式,找到if判断a>b(判断元素):
- 若该条件满足则返回if左边的1(结果元素1)作为整个表达式的运算结果。
- 若该判断条件不满足则返回判断条件右边的-1(结果元素2)作为整个表达式的运算结果。
python的三元表达式非常灵活,从上述案例中可以学习到三元表达式的结果元素可以是三元表达式,也就是说三元表达式可以嵌套三元表达式使用。
三元表达式嵌套三元表达式的结构并不难懂,熟练掌握以后会让你的代码更简洁,用三元表达式嵌套三元表达式感觉比用if else if else瞬间高大上了很多,嘻嘻。
欢迎学python的朋友关注我,我会经常更新深入学python的知识点。
- 上一篇: Java运算符之位运算运算符并举例说明
- 下一篇: java中运算符分类
猜你喜欢
- 2024-11-17 项目中的参数限制、非空、以及集合中的验证,你真的会做吗
- 2024-11-17 方法和+=符号的运算
- 2024-11-17 Java运算符之比较运算符
- 2024-11-17 《Java开发手册灵魂13问》正式上线,带你剖析阿里巴巴的开发细节
- 2024-11-17 03_Java_基础_表达式
- 2024-11-17 如何在 Python 中使用三元运算符?
- 2024-11-17 三目运算符的空指针问题,终于被阿里巴巴开发手册收录了
- 2024-11-17 Elasticsearch:painless script语法编程和入门实战
- 2024-11-17 golang三元表达式
- 2024-11-17 Java数组案例
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)