python的if-else语法是我们学习这门语言时遇到的最基础的语法,下面我们来讲一讲关于if-else语法的几种变化形式。
1、常规形式的写法
if x > y:
w = x
else:
w = y
2、变形一
w = x if x > y else y
这种形式也是我们常见的形式之一,看起来要比上一种形式更加简洁,接下来看第三种形式
3、变形二
w = [y,x][x>y]
现在想一想我们该如何理解这种形式呢,首先前面是一个列表,这个很容易理解,后面的我们可以看作是列表的下标,我们知道x>y,在编程语言里如果是真就会显示为1,如果为假就会显示为0.所以我们就能根据后面的真假来选择取前面列表中的哪一个值。
4、变形三
w = (x>y and [a] or [b])[0]
这一种形式是最不好理解,也是最不常见的一种形式,关于这个的理解,我们首先要弄明白的是短路原则,那什么是短路原则呢?
短路原则:
1.在逻辑运算符and中,如果前面的条件为假,则不继续进行and后面的条件判断;
2.在逻辑运算符or中,如果前面的条件为真,则不继续进行or后面的条件判断。
了解了以上的原则,我们就容易理解上面的形式了:
① 如果x>y的值为真,则继续判断and后面的条件,显然不管a的值为何,列表[a]都是个真值,此时根据短路原则就不继续判断or后面的条件了,返回true,并且返回[a]也就是列表,此时对其取值,即[a][0]所以此时w == [a][0]。
② 如果x>y的值为假,则根据短路原则不判断and后面的条件,转而判断or后面的条件,显然[b]是真值,所以此时w == [b][0]。