Python 有着并不十分苛刻严谨的语法要求,如常用的if-else语句块,就有多种简洁的写法。对于简单的if-else判断,可以在一行上完成表达。我们需要认识这些写法,在阅读别人的代码时,才会有清楚的认识。
如下看到的是最普通的if-else 的写法,看似简单的代码,却也占据了4行。
if a>b:
c = a
else:
c = b
观察这段if-else语句,为“真”时把a赋值给c,为“假”时把b赋值给c,可见都是对c赋值。
一种简洁的表达是,判断为“真”的语句(即c = a)放if前,可以写成一行表达式。
c = a if a>b else b
这和上面4行代码完成的效果是相同的。
还有一种写法比较少见,使用二维列表,利用大小判断的0,1当作索引。
c= [b, a][a > b]