Python,不止于OR吗? [也与Reddit相关]

时间:2019-09-21 12:11:43

标签: python reddit

我对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时,该行只是空的。

1 个答案:

答案 0 :(得分:2)

问题是,x is not None不正确,因此必须求len(x)!= 0才能确定整个语句是否正确。 如果它是and而不是or,则不会进行评估。您可能需要的是if x is not None and len(x) != 0if x is None or len(x) == 0。在这两种情况下,如果x为None,则条件的第二部分将不会评估。