Python try/exception 帮助
我正在尝试实现一个功能,让用户输入一个文件名,然后再输入两个整数。如果出现错误,我希望能再次提示用户输入。
我的问题是,如果用户输入了一个有效的文件名,但输入了一个无效的整数,程序会要求重新输入文件名,而不是只要求重新输入整数。我该如何修改代码,让它只要求重新输入整数呢?
这是我现在的代码:
while True:
try:
f = raw_input("Enter name of file: ")
inFile = open(f)
# more code
except IOError:
print ("The file does not exist. Try Again.")
else:
try:
integer = int(raw_input("Enter an integer: "))
integer2 = int(raw_input("Enter an integer: "))
# more code
except (TypeError, ValueError):
print ("Not an integer. Try Again.")
4 个回答
0
>>> def ask(question, func, exceptions):
... while True:
... try:
... return func(raw_input(question))
... except exceptions, error:
... pass
...
>>> x = ask("integer?", int, ValueError)
integer?o
integer?l
integer?42
>>> x
42
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。
0
while True:
try:
a = int(raw_input('a: '))
b = int(raw_input('b: '))
break
except ValueError:
print "Numbers idiot"
#more code here
这段代码会在a或b出错时跳到异常处理的部分,如果数字没问题的话,它会继续执行后面的代码。
9
试着使用多个 while
循环:
while True:
fileName = raw_input("Enter name of file: ")
try:
# more code here to detect or open the file
break
except Exception: # can be IOError or something else
print ("error msg")
while True:
try:
integer = int(raw_input("Enter an integer: "))
integer2 = int(raw_input("Enter an integer: "))
break
except (TypeError, ValueError):
print ("error msg")
# more code