当用户正确输入第一个输入的数字而不是第二个输入时,我试图让程序循环回第二个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:谢谢你的评论。最后想出了如何格式化问题,但仍需要答案。
答案 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))