这是我制作的代码,它只是整个大事的一小部分。如何将其置于while循环中以便重复"Invalid answer, try again."
直到给出正确的答案?我已经尝试了很多个小时看着循环但是不能这样做。如果你实际上会运行代码,那么显然会出现错误,因为你没有路径等等。
以下是代码:
shortestpath = raw_input("Give the shortest path? (Y/N)")
if shortestpath == "Y" or shortestpath == "y":
answer = min(path1, path2, path3, path4, path5, path6, path7, path8, path9)
print "The shortest path is: "
print answer
if answer == path1:
print "a,f,e"
elif answer == path2:
print "a,c,f,e"
elif answer == path3:
print "a,f,c,d,e"
elif answer == path4:
print "a,f,c,b,d,e"
elif answer == path5:
print "a,c,d,e"
elif answer == path6:
print "a,c,b,d,e"
elif answer == path7:
print "a,b,c,f,e"
elif answer == path8:
print "a,b,c,d,e"
elif answer == path9:
print "a,b,d,e"
elif shortestpath == "N" or shortestpath == "n":
print "End of program."
else:
print "Invalid answer, try again."
答案 0 :(得分:0)
将代码包装在while
循环中。一旦您的代码达到正确答案,您就可以使用break
while True:
shortestpath = raw_input("Give the shortest path? (Y/N)")
if shortestpath == "Y" or shortestpath == "y":
answer = min(path1, path2, path3, path4, path5, path6, path7, path8, path9)
print "The shortest path is: "
print answer
if answer == path1:
print "a,f,e"
elif answer == path2:
print "a,c,f,e"
elif answer == path3:
print "a,f,c,d,e"
elif answer == path4:
print "a,f,c,b,d,e"
elif answer == path5:
print "a,c,d,e"
elif answer == path6:
print "a,c,b,d,e"
elif answer == path7:
print "a,b,c,f,e"
elif answer == path8:
print "a,b,c,d,e"
elif answer == path9:
print "a,b,d,e"
break
elif shortestpath == "N" or shortestpath == "n":
print "End of program."
break
else:
print "Invalid answer, try again."
答案 1 :(得分:0)
def get_answer(prompt,options):
while True:
result = raw_input(prompt)
if result in options: return result
print "Got unexpected input ... please try again"
selected_option = get_answer("Would you like to _____?",options=["y","Y","n","N"])