2024-04-20 05:10:27 发布
网友
我想用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检查而发生,如果您将其限制为该检查,您将得到相同的错误(或者,在python2中,它将始终为True—即使对于"-20"这样的字符串也是如此)。如果您显式地将其转换为一个数字来执行该检查,则会消除此问题:
year > 0
"-20"
>>> int(year) > 0 True
陈述的数量不受限制。如果看不清你所说的“不起作用”是什么意思,很难判断,但你可能遇到的情况是这样的:
这是因为正如错误所说,Python不知道如何将字符串与数字进行比较。它只会因为
year > 0
检查而发生,如果您将其限制为该检查,您将得到相同的错误(或者,在python2中,它将始终为True—即使对于"-20"
这样的字符串也是如此)。如果您显式地将其转换为一个数字来执行该检查,则会消除此问题:相关问题 更多 >
编程相关推荐