1

我有这个简单的代码:

var = 1
while var == 1 : 
   try:
        num = int(raw_input("Enter a number  :"))
   except ValueError:
        print "Thats not a number!"
        continue
   try:
        num2 = int(raw_input("Enter another number :"))
   except ValueError:
        print "Thats not a number!"
        continue
   print "Sum of previous 2 inputs:="+str(num+num2)
print "Good bye!"

现在第一个 continue 语句完成了这项工作,但第二个语句没有。因为它回到循环的顶部,但我需要它回到捕获第二个异常的地方,所以它会要求再次输入第二个数字,而不是第一个数字。

有任何想法吗?

4

1 回答 1

6

你可以将一个数字输入到一个函数中——这样可以避免你两次编写相同的代码:

def input_int(prompt):
    while True:
        try:
            return int(raw_input(prompt))
        except ValueError:
            print "That's not a valid integer!"

...
num = input_int("Please enter a number: ")
num2 = input_int("Please enter another number: ")
于 2012-08-10T11:45:01.547 回答