多个try语句;返回相应的try语句而不是第一个输入

时间:2017-04-16 22:41:55

标签: python

当用户正确输入第一个输入的数字而不是第二个输入时,我试图让程序循环回第二个try语句。 代码:

print ("We're gonna be doing some division")

while True:
    try:
        a=float(input("input the first number: "))
    except:
        print ("try again")

    else:
        break
        pass

while True:
    try:
        b=float(input("input the second number: "))
    except:
        print ("try again")

    else:
        break
print ("Your final answer is: ", a/b)
编辑:对不起,这是我的第一个问题。我不确定如何正确格式化问题的代码部分。我试过大约20分钟导致失败和沮丧。

EDIT2:谢谢你的评论。最后想出了如何格式化问题,但仍需要答案。

2 个答案:

答案 0 :(得分:1)

以下是对此代码的快速重构,说明如何(A)不重复自己,以及(B)使用稍微更具描述性的变量名称:

def get_input(prompt):

    # Get a number from the user.

    while True:
        try:
            answer = float(input(prompt))
            return answer
        except ValueError:
            print ("try again")

def main():
    print ("We're gonna be doing some division")
    numerator = get_input("Input the first number: ")
    denominator = get_input("Input the second number: ")
    print ("Your final answer is: ", numerator/denominator)

main()

答案 1 :(得分:0)

根据我的判断,您的程序中的逻辑是正确的,除非:您不需要pass关键字。相反,当输入正确时,从while循环中断。此外,请尝试确保所有空白区域都符合预期。如果我理解正确,你想要这样的东西:

a = 0.0
b = 0.0

print("We're going to do some division")
while True:
    try:
        a = float(input("Enter first number: "))
        break
    except:
        print("try again")

while True:
    try:
        b = float(input("Enter second number: "))
        break
    except:
        print("try again")

print("The answer is: " + str(a / b))