我想在python中做到这一点:
if year and year.isdigit() and year > 0:
但它不起作用。语句数量有限制吗?
有任何想法吗?
我想在python中做到这一点:
if year and year.isdigit() and year > 0:
但它不起作用。语句数量有限制吗?
有任何想法吗?
语句的数量不受限制。如果不确切地看到“不起作用”是什么意思,很难说清楚,但是您可能遇到的情况是这样的:
>>> 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