我对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,则第一条语句将返回false并转到“ next elif”。但这不能做到,因为我收到此错误:TypeError:类型为“ NoneType”的对象没有len()
我最大的问题是我不能使用if x:
,因为显然取决于旧的还是新的Reddit,它具有不同的值,并且其中之一可能是无宽度的空间,不确定如何使用打印unicode,但是当我打印x时,该行只是空的。
答案 0 :(得分:2)
问题是,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,则条件的第二部分将不会评估。