如何在一个ifclause子句中使用多个语句?

2024-04-20 05:10:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用python做这个:

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

但它不起作用。声明的数量有限吗?你知道吗

有什么想法吗?你知道吗


Tags: and声明数量ifyearisdigit
1条回答
网友
1楼 · 发布于 2024-04-20 05:10:27

陈述的数量不受限制。如果看不清你所说的“不起作用”是什么意思,很难判断,但你可能遇到的情况是这样的:

>>> 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"这样的字符串也是如此)。如果您显式地将其转换为一个数字来执行该检查,则会消除此问题:

>>> int(year) > 0
True

相关问题 更多 >