“如何制作python”;“转到”;前一行可以获得更多输入吗?
所以我知道goto是一种非常糟糕的编码形式,但是当控制台中的输入不正确时,我需要一个程序返回到前一行“如何制作python”;“转到”;前一行可以获得更多输入吗?,python,if-statement,goto,Python,If Statement,Goto,所以我知道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 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行,并从那里继续执行程序。。。我如何才能做到这一点?您可以通过
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
将被认为是永远循环的,但事实上,一旦我们得到我们喜欢的输入,我们就会中断它。这会解决你的问题
goto
在您的代码中永远不应该是必需的。几乎总是有一种方法可以重新构造程序,使其在不使用
goto的情况下工作,因此可能会工作得更好。goto语句通常用于汇编或basic等非常低级的语言中。在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")
也许试着说一句话?参考:真实的故事:当我年轻一点,只认识巴西卡的时候,有人告诉我他们写了一个完整的程序,没有任何GOTOs。这让我大吃一惊。(这些天我很高兴几乎忘记了GOTO。)当然。使用GOTO是一种不好的做法。请尝试使用此语句而不是当前的if语句:
if seg1.lower()。