【发布时间】:2019-04-26 18:08:45
【问题描述】:
我有一个清单:
['x', '-', '1', '=', '5']
这是我写的代码:
if (a[1]) == '+':
try:
print(int(int(a[0])+int(a[2])))
except ValueError:
print(int(int(a[0])+int(a[4])))
except ValueError:
print(int(int(a[2])+int(a[4])))
if (a[1]) == '-':
try:
print(int(int(a[0])-int(a[2])))
except ValueError:
print(int(int(a[0])-int(a[4])))
except ValueError:
print(int(int(a[4])-int(a[2])))
但是这个“尝试除外”显示以下错误并且无法运行。
Traceback (most recent call last): File "Main.py", line 16, in <module>
print(int(int(a[0])-int(a[2]))) ValueError: invalid literal for int() with base 10: 'x'
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "Main.py", line 18, in <module>
print(int(int(a[0])-int(a[4]))) ValueError: invalid literal for int() with base 10: 'x'
谁能告诉我如何修复这个代码?
当我使用列表运行时:
['1', '+', '3', '=', 'x']
这确实有效。
【问题讨论】:
-
您期望
int('x')等于多少? -
您也不需要有多个
int演员表。与另一个整数相加或减去的整数始终是整数。 -
对于同一个
try块有两个except ValueError块是没有意义的。 -
附加的
except ValueError行不会捕获前面ValueError中引发的附加异常,除了处理程序。您必须使用另一个try ... except,嵌套。
标签: python valueerror