这个 if 语句如何判断 num%2 是真还是假
How does this if statement determine whether num%2 is true or false
好的,这是一段代码。代码的作用是取一个值,判断是奇数还是偶数。
def isEvenOrOdd(num):
return 'odd' if num % 2 else 'even'
现在我的问题在于为什么会这样。我目前看待这个的方式是--
num%2 returns 个值。如果 num 为 3,则 num%2 = 1。
为什么'1'的值会满足'if'条件?
我以为这是 1 和 0 的问题,但我用 %4 尝试了相同的代码,如果返回 3,它仍然满足 if 语句。
我知道这对某些人来说可能是一个基本问题,所以我很抱歉理解这个问题可能很慢。谢谢!
感谢您的帮助!我现在真的明白了
原因与Python中对象的“真实性”有关。 Python 中的每个对象,即使它不是布尔值,也被认为是“真实的”或“虚假的”。在这种情况下,一个整数当且仅当它不为零时才被认为是“真实的”。
因此,如果数字是奇数,则其模数将为1,即为真。否则,模数将为 0,这被认为是错误的。
如果将模数切换为 4,则当余数不为零时(即,如果数字不是 4 的倍数),结果将为真。
在python中,有些数据类型有真值或假值,它不一定是布尔值。
例如
test = None
if test:
print("working")
else:
print("Not working")
你会注意到你得到了 Not working
的输出,原因是对象 None
被视为 False
同样适用于其他一些数据类型,对于整数,只要一个值是 zero (0)
它会把它当作 False
所以在你的情况下,如果 num % 2
return 0
那么你将
'odd' if 0 else 'even' # will will return 'even'
好的,这是一段代码。代码的作用是取一个值,判断是奇数还是偶数。
def isEvenOrOdd(num):
return 'odd' if num % 2 else 'even'
现在我的问题在于为什么会这样。我目前看待这个的方式是--
num%2 returns 个值。如果 num 为 3,则 num%2 = 1。 为什么'1'的值会满足'if'条件?
我以为这是 1 和 0 的问题,但我用 %4 尝试了相同的代码,如果返回 3,它仍然满足 if 语句。
我知道这对某些人来说可能是一个基本问题,所以我很抱歉理解这个问题可能很慢。谢谢!
感谢您的帮助!我现在真的明白了
原因与Python中对象的“真实性”有关。 Python 中的每个对象,即使它不是布尔值,也被认为是“真实的”或“虚假的”。在这种情况下,一个整数当且仅当它不为零时才被认为是“真实的”。
因此,如果数字是奇数,则其模数将为1,即为真。否则,模数将为 0,这被认为是错误的。
如果将模数切换为 4,则当余数不为零时(即,如果数字不是 4 的倍数),结果将为真。
在python中,有些数据类型有真值或假值,它不一定是布尔值。 例如
test = None
if test:
print("working")
else:
print("Not working")
你会注意到你得到了 Not working
的输出,原因是对象 None
被视为 False
同样适用于其他一些数据类型,对于整数,只要一个值是 zero (0)
它会把它当作 False
所以在你的情况下,如果 num % 2
return 0
那么你将
'odd' if 0 else 'even' # will will return 'even'