如果用户在我的菜单选择中输入字符串而不是整数,我需要添加一条错误消息,并且还需要添加用户作为数据输入的数量。我试过这段代码,但它不起作用。
import sys
try:
newamount=int(input('Enter the new amount:'))
except ValueError:
print ("error")
我究竟做错了什么?
如果用户在我的菜单选择中输入字符串而不是整数,我需要添加一条错误消息,并且还需要添加用户作为数据输入的数量。我试过这段代码,但它不起作用。
import sys
try:
newamount=int(input('Enter the new amount:'))
except ValueError:
print ("error")
我究竟做错了什么?
那是因为将无效字符串(不是数字)传递给int()
将引发 a ValueError
,而不是TypeError
。你虽然很近。
只需更改它,它应该工作得很好。
except ValueError:
print('Error!')
如果你想对newamount
变量做一些事情,我建议你在try
块中做:
try:
newamount=int(input('Enter the new amount:'))
tempfunction = amount + newamount
希望这可以帮助!
TypeError
如果参数 toint()
的类型错误,将引发。
假设您使用的是 Python3,则返回值input()
将始终为 typestr
ValueError
如果类型正常则引发,但内容无法转换为int
.
要一遍又一遍地询问,您应该使用while
循环
while True:
try:
newamount=int(input('Enter the new amount:'))
break
except ValueError:
print ("error")
如果要保留错误计数,请使用itertools.count
和for
循环
from itertools import count
for c in count():
try:
newamount=int(input('Enter the new amount:'))
break
except ValueError:
print ("error", c)
我认为在手动 eval 输入的这些情况下使用 raw_input 更好。事情是这样的……
s = raw_input()
try:
choice = int(s)
except ValueError:
print ('Wrong Input!')