-1

我想在python中做到这一点:

if year and year.isdigit() and year > 0:

但它不起作用。语句数量有限制吗?

有任何想法吗?

4

1 回答 1

3

语句的数量不受限制。如果不确切地看到“不起作用”是什么意思,很难说清楚,但是您可能遇到的情况是这样的:

>>> year = "2013"
>>> year and year.isdigit() and year > 0
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unorderable types: str() > int()

发生这种情况是因为 - 正如错误所说 - Python 不知道如何将字符串与数字进行比较。它只是因为year > 0检查而发生,如果你限制它,你会得到同样的错误(或者,在 Python 2 中,它总是为 True - 即使对于像这样的字符串"-20")。如果您将其显式转换为数字来进行检查,这就会消失:

>>> int(year) > 0
True
于 2013-03-12T00:59:57.690 回答