Python 如果条件为或,则返回计算结果为FALSE的变量
我想知道在计算结果为Python 如果条件为或,则返回计算结果为FALSE的变量,python,Python,我想知道在计算结果为FALSE(或TRUE)的if-else中返回变量的最简单(也是最短)的方法 利用或操作员短路: def foo(a, b): if a == 0 or b == 0: return a or b 如果a为0,则返回b。请注意,如果a和b都是0,则返回0 如果您确实希望这些值是布尔值,那么请使用Pythonbool类型值、False和True: def foo(a, b): if not (a and b): # equivalent of
FALSE
(或TRUE
)的if-else
中返回变量的最简单(也是最短)的方法
利用
或操作员短路:
def foo(a, b):
if a == 0 or b == 0:
return a or b
如果a
为0
,则返回b
。请注意,如果a
和b
都是0
,则返回0
如果您确实希望这些值是布尔值,那么请使用Pythonbool
类型值、False
和True
:
def foo(a, b):
if not (a and b): # equivalent of "not a or not b"
return a or b
foo(False, True) # produces True
foo(True, True) # produces None
利用或操作员短路:
def foo(a, b):
if a == 0 or b == 0:
return a or b
如果a
为0
,则返回b
。请注意,如果a
和b
都是0
,则返回0
如果您确实希望这些值是布尔值,那么请使用Pythonbool
类型值、False
和True
:
def foo(a, b):
if not (a and b): # equivalent of "not a or not b"
return a or b
foo(False, True) # produces True
foo(True, True) # produces None
也许我误解了这个问题,但这不是我试图这样做的原因吗:
a = None
b = 123
c = a or b
print(c)
> 123
这是一种模式,用于在未设置非强制参数的情况下初始化具有默认值的函数的参数:
def func(a, b=None):
b = b or 'default_value'
print(a, b)
func('abc', 'b defined')
func('cde')
也许我误解了这个问题,但这不是我试图这样做的原因吗:
a = None
b = 123
c = a or b
print(c)
> 123
这是一种模式,用于在未设置非强制参数的情况下初始化具有默认值的函数的参数:
def func(a, b=None):
b = b or 'default_value'
print(a, b)
func('abc', 'b defined')
func('cde')
else:pass
是多余的。你不必包含一个else
。如果a
和b
都是0
,该怎么办?@MartijnPieters其实并不重要,因为我当时对值不感兴趣。我只是想知道是否有一种方法可以获取其中一个值,如果一个值被求值为FALSE
。当然,我可以简单地写一个更长的,如果不是这样的话,但我认为可能会有更短的方法:)接下来,你是说a
和b
被视为布尔值吗?然后使用False
而不是0
,True
而不是1
@MartijnPieters no,作为数字:)但是我看到你的困惑否则:pass
是多余的。你不必包含一个else
。如果a
和b
都是0
,该怎么办?@MartijnPieters其实并不重要,因为我当时对值不感兴趣。我只是想知道是否有一种方法可以获取其中一个值,如果一个值被求值为FALSE
。当然,我可以简单地写一个更长的,如果不是这样的话,但我认为可能会有更短的方法:)接下来,你是说a
和b
被视为布尔值吗?然后用False
代替0
,True
代替1
@MartijnPieters不,作为数字:)但是我看到了你的困惑,我正在寻找!谢谢你会怎么做呢?获取计算结果为TRUE
的变量?所以0
?@Chrissl:a和b
如果为false(设置为0
),则返回a
,否则返回b
。我正在寻找它!谢谢你会怎么做呢?获取计算结果为TRUE
的变量?所以0
?@Chrissl:a和b
如果为false(设置为0
),则返回a
,否则返回b
。