Python的各种if
来源:互联网 发布:淘宝关小黑屋 编辑:程序博客网 时间:2024/06/05 00:52
暑假集训后回家,在家闷了几天,忽然发现好久没碰Python了。在这台陪了我8年的老电脑上下了Python,写着写着代码突然卡死,干了个尴尬,绝对不是我敲得太快它才卡的,咳
咳。最近都是在玩C++,现在发现Python的确生疏了很多。不过,我又学到了个骚操作。分享出来给有兴趣的朋友们看看,也算是笔记吧啦巴拉巴拉。。。。。。
我要说的就是那传说中天下无双的、缺之不可的、大名鼎鼎的。。。。。if else 选择语句。
是的,你没看错。就是if else。
C语言中可以这么玩:
if (x > y) w = x; else w = y;
变成Python就是:
if x > y: w = x else: w = y
这个简单就不解释了,Python还可以这样:
w = x if x > y else y
上面这个也能看懂吧,是不是更接近自然语言?这不算啥,骚的操作来啦:
w = [y,x][x>y]
懵逼了吧,嘿嘿。这玩意有人说是二维列表,我不知道大家都是怎么叫的,不过的确用到了列表。首先吧,[y,x]
就是个列表,[x>y]
呢,是这个列表的下标,(列
表和C语言的数组差不多)在Python中,默认真值为1假值为0,所以当x>y为真的时候呢,即[y,x][1]就是等于x。
更让人懵逼的写法:
w = (x>y and [a] or [b])[0]
真服能写出这种代码的家伙,咳咳,吓得我赶紧搬我的小板凳过来做笔记。
要明白这个写法的意思,首先要知道“短路原则”是什么。
短路原则:
1.在逻辑运算符and中,如果前面的条件为假,则不继续进行and后面的条件判断;
2.在逻辑运算符or中,如果前面的条件为真,则不继续进行or后面的条件判断。
在Python中呢,
对于`(x>y and [a] or [b])[0]`来说:
如果x>y的值为真,则继续判断and后面的条件,显然不管a的值为何,列表[a]都是个真值,此时根据短路原则就不继续判断or后面的条件了,返回true,并且返回
[a]
也就是列表,此时对其取值,即[a][0]
所以此时w == [a][0]
。如果x>y的值为假,则根据短路原则不判断and后面的条件,转而判断or后面的条件,显然[b]是真值,所以此时
w == [b][0]
。长见识了,虽然原理很简单,听别人一解释也都懂。但关键是这不是自己想出来的。所以说呢,大神和大傻之间的差别,就差在这里了。
牛逼的人各有各的牛逼之处,愣头青也有愣头青的瓜皮。学习吧,跟着大佬们的脚步颤抖吧。总有走过来的那一天。
额,今天讲了什么。。。。。
1.
if x > y: w = x else: w = y
2.
w = x if x > y else y
3.
w = [y,x][x>y]
4.
w = (x>y and [a] or [b])[0]
就这么少了,日积月累吧哈。
- Python的各种if
- Python的if语句
- python的if语句
- Python的if-判断
- if(表达式),各种表达式的区别
- python的for if语法
- python中if的讲解
- python的if判断语句
- python的各种问题
- python的各种问题
- Python的控制语句,(if,while,for)之if
- shell 里面的if的各种括号用法
- Shell中条件判断if中的各种参数的意思
- Python--关于for和if的一些
- python的条件分支语句(if)
- Python if 和 for 的多种写法
- Python中if/else结构的缩进
- python 的if和while语句
- 操作系统的文件结构
- oracle 查询结果横向union
- http常见状态码及设置方法
- Cryp.1.大整数相乘---分治法
- 哭笑不得的找不到id-R.id.
- Python的各种if
- 字符设备驱动-同步互斥阻塞
- js获取下一个标签
- AsyncTaskDemo
- disruptor案列
- 结合个人经历总结的前端入门方法
- Si6000 Controlled Impedance Field Solver V3.0
- java project jar包Linux环境执行
- glide的缓存策略