在摆弄我的代码时,我今天注意到了一些事情:
print("lol") if None else print("Not lol") # Displays 'Not lol'
print("lol") if 0 else print("Not lol") # Displays 'Not lol'
print("lol") if float("nan") else print("Not lol") # Displays 'lol'
与None
和0
不同。为什么float("nan")
不被视为Falsy?
干杯
OP:与None和0不同。为什么浮动(“nan”)不被视为Falsy?
答:Because that's what the language designers decided would be most useful.
print(bool(float('nan'))) # returns True
因此:
print("lol") if float("nan") else print("Not lol")
OUTPUT:
lol
它不是假的,因为它是float的有效字符串参数。您可以在文档中找到更多信息。 https://docs.python.org/3/library/functions.html?highlight=float#float
如果参数是一个字符串,它应该包含一个十进制数字,可选地以符号开头,并且可选地嵌入在空格中。可选符号可以是“+”或“ - ”; “+”符号对产生的值没有影响。参数也可以是表示NaN(非数字)或正或负无穷大的字符串。