Perl的Python版本=| |(=或)
我似乎找不到python的表达方式Perl的Python版本=| |(=或),python,Python,我似乎找不到python的表达方式 x = y or 1 在Perl中: $x = $y || 1; 在python中是否有一种很好的方法可以做到这一点?一种简单但没有那么好的方法: x = y if y else 1 x=y或1与: if y: x = y else: x = 1 这不是你想要做的吗?Python的或具有我认为你需要的语义。看见必须认识到,它返回的是输入值,而不是True或False y = 2 x = y if y else 1 # x == 2 y = N
x = y or 1
在Perl中:
$x = $y || 1;
在python中是否有一种很好的方法可以做到这一点?一种简单但没有那么好的方法:
x = y if y else 1
x=y或1
与:
if y:
x = y
else:
x = 1
这不是你想要做的吗?Python的
或具有我认为你需要的语义。看见必须认识到,它返回的是输入值,而不是True
或False
y = 2
x = y if y else 1
# x == 2
y = None
x = y if y else 1
# x == 1
>>> "" or 12
12
>>> 27 or 9
27
>> None or "default"
'default'
这意味着x=y或1
应该是您所追求的,x
将是y
如果y
是非False
,否则它将是1
如果定义了y,所有提到的解决方案都将有效(可以是无)
如果未定义y,Python将抛出异常,而Perl代码将在非严格模式下工作。什么不适用于x=y或1
?我的程序失败了,看起来这是问题所在,但事实并非如此。x=y或1是正确的。谢谢大家!