所以我理解goto是一种非常糟糕的编码形式,但是我需要一个程序在控制台输入错误时返回上一行。
print ("You wake up.")
print ("You do what?")
seg1 = input()
if seg1 == ("Stand") or seg1 == ("stand") or seg1 == ("stand up") or seg1 == ("Stand up") or seg1 == ("Stand Up"):
print ("You get up")
print ("You look around you... your in a dark room. A door hangs slightly ajar infront of you.")
print ("You do what?")
else:
print ("I dont understand")
在else语句运行之后我希望它重复第2行并从那里继续执行程序......我该怎么做?
答案 0 :(得分:4)
Goto语句通常用于非常低级的语言,如汇编或基本语言。在像python这样的高级语言中,它们被抽象出来,因此它们不存在。你想要这样做的方法是使用一个循环(这是goto语句的抽象)。这可以通过以下代码实现。
valid_input = False
while not valid_input:
print ("You wake up.")
print ("You do what?")
seg1 = input()
if seg1 == ("Stand") or seg1 == ("stand") or seg1 == ("stand up") or seg1 == ("Stand up") or seg1 == ("Stand Up"):
print ("You get up")
print ("You look around you... your in a dark room. A door hangs slightly ajar infront of you.")
print ("You do what?")
valid_input = True
else:
print ("I dont understand")
答案 1 :(得分:0)
您可以使用while
循环代替goto
来实现此目的,如下所示:
print ("You wake up.")
print ("You do what?")
while True:
seg1 = input()
if seg1 == ("Stand") or seg1 == ("stand") or seg1 == ("stand up") or seg1 == ("Stand up") or seg1 == ("Stand Up"):
print ("You get up")
print ("You look around you... your in a dark room. A door hangs slightly ajar infront of you.")
print ("You do what?")
break
else:
print ("I dont understand")
发生的事情是while
将永远循环,但实际上,只要我们得到我们喜欢的输入,我们就会break
。goto
这会解决你的问题。
代码中永远不需要goto
。几乎总有一种方法可以重新构建您的程序,因此它可以在没有{{1}}的情况下工作,因此它可能会更好地工作。