Python3 杂记

if

if 实现三元运算

例:

a = 1
b = 2
c = b if a>b else a
print(c)

结果为: 1

while

while int:

k = 1
while k:
    <循环体>

当 k!=0 时,将会不断循环。

一行挨打

while True: pass

list

list 实现三元运算

例:

a = 1
b = 2
c = [a,b][a>b]
print(c)

结果为: 1

a>bTrue 时,[a,b][a>b] 等价于 [a,b][1] ,即取 b。

a>bFalse 时,[a,b][a>b] 等价于 [a,b][0] ,即取 a。

and & or

and/or 返回的值不是布尔值,而是参与计算的某个值。

and

and 从左到右计算表达式的(布尔)值,返回最后一个为真的值。

若计算中出现假,则立即返回。

如:

print('a' and 'b' and 'c')

其结果为: c

or

or 从左到右计算表达式的值,返回第一个为真的值。

若最终无真,则为假。

如:

print('a' or 'b' or 'c')

其结果为: a

三元运算

例:

a = 1
b = 2
c = True
d = (c and [a] or [b])[0]
print(d)

其结果为: 1

当 c 为 True 时, c and [a] 返回 [a] ,进行运算 [a] or [b] ,返回 [a],再经过 [a][0] 取到值 a。

当 c 为 False 时, c and [a] 返回 c ,进行运算 c or [b] ,返回 [b],再经过 [b][0] 取到值 b。

不直接使用 a/b 而使用 [a]/[b] ,是为了防止当 a/b 为空字符串/list/dict/… 等时出现异常。

知识共享许可协议

本作品(《Python3 杂记》由 gggxbbb)采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。


转载请注明出处: https://evax.top/2021/04/04/python3-za-ji.html

暂无评论

发送评论 编辑评论

上一篇
下一篇