python的if-else语法

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]。
 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值