Python, 不在 OR 处停止? [也与 Reddit 相关]
Python, does not stop at OR? [also Reddit related]
我有一个关于 Python 的问题,我不太确定其他编程语言是否也有同样的问题,但让我解释一下这个问题:
#Let's pretend x could be 'None' or some string.
x = None
if x is not None or len(x) != 0:
pass
#next elif
我正在努力实现的是。在这种情况下,如果 x 为 None,则第一个语句将为 return false 并转到 "next elif"。但它不能这样做,因为我收到这个错误:TypeError: object of type 'NoneType' has no len()
我最大的问题是我无法使用,if x:
因为显然取决于旧的还是新的 reddit,它有不同的值,其中之一可能是无宽度 space ,不确定如何打印 unicode,但是当我打印 x 时该行是空的。
事实是,x is not None
不正确,因此必须评估 len(x) != 0 以确定整个语句是否正确。
如果它是 and
而不是 or
,则不会对其进行评估。您可能需要的是 if x is not None and len(x) != 0
或 if x is None or len(x) == 0
。在这两种情况下,条件的第二部分不会评估 x 是否为 None.
我有一个关于 Python 的问题,我不太确定其他编程语言是否也有同样的问题,但让我解释一下这个问题:
#Let's pretend x could be 'None' or some string.
x = None
if x is not None or len(x) != 0:
pass
#next elif
我正在努力实现的是。在这种情况下,如果 x 为 None,则第一个语句将为 return false 并转到 "next elif"。但它不能这样做,因为我收到这个错误:TypeError: object of type 'NoneType' has no len()
我最大的问题是我无法使用,if x:
因为显然取决于旧的还是新的 reddit,它有不同的值,其中之一可能是无宽度 space ,不确定如何打印 unicode,但是当我打印 x 时该行是空的。
事实是,x is not None
不正确,因此必须评估 len(x) != 0 以确定整个语句是否正确。
如果它是 and
而不是 or
,则不会对其进行评估。您可能需要的是 if x is not None and len(x) != 0
或 if x is None or len(x) == 0
。在这两种情况下,条件的第二部分不会评估 x 是否为 None.