[英]Breaking a loop for basic python
我已经为此工作了一段时间。 我已经能够让这部分工作,但从来没有完成。 最终目标是将用户循环回另一个游戏,如果他们愿意的话。 我认为问题出在我的 break 语句上,但我不确定如何绕过它。 我已经包含了我所有的代码,以便可以发现任何错误。 抱歉,如果已经回答了这个问题,我找不到存在此类问题的页面。
def game():
import random
from random import randint
n = randint(1, 10)
print('Enter a seed vlaue: ')
the_seed_value = input(' ')
random.seed(the_seed_value)
guessesTaken = 0
print("what is your name?")
myName = input("")
guess = int(input("Enter an integer from 1 to 99: "))
while n != "guess":
if guess < n:
print ("guess is low")
guessesTaken = guessesTaken + 1
guess = int(input("Enter an integer from 1 to 99: "))
elif guess > n:
print ("guess is high")
guessesTaken = guessesTaken + 1
guess = int(input("Enter an integer from 1 to 99: "))
else:
print ("Congradulations " + myName + " you guessed it in " + str(guessesTaken) + " guesses!")
break
print('Want to play agian? y/n')
answer = input(" ")
if answer == "n":
print ("Ok, See you next time!")
elif answer == "y":
print("Starting new game!")
game()
def main():
game()
if __name__ == "__main__":
main()
一方面,@kerwei 正确地指出您的while
行有问题,需要从while n != "guess":
更改为while n != guess:
。
第二,当玩家猜对时,你的 while 循环就得到满足,绕过Congrats
行。
由于游戏目前的结构是保持循环直到玩家猜对了,一个简单的解决方法是从循环中删除else:
行并在之后放置胜利语句。 那是,
def game()
...
while n != guess:
if guess < n:
...
elif guess > n:
...
print('Congrats!')
print('play again?')
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.