2017-10-09 51 views
1

所以我想我明白为什么代码不会跑过声明,但我不知道如何让它识别猜想的一部分,并贯穿它。我在循环部分搜索了几个问题,但我实际上看不到它的执行情况。虽然循环猜测号码游戏python

num_answer = int(input('What should the answer be? ')) 
guesses = int(input('How many guesses? ')) 
answer = int(input('Guess a number: ')) 

while answer != num_answer and guesses != guesses: 
    answer = int(input('Guess a number: ')) 
    if answer < num_answer: 
     print('The number is higher than that.') 
     guesses += 1 
     answer = int(input('Guess a number: ')) 
    elif answer > num_answer: 
     print('The number is lower than that.') 
     guesses += 1 
     answer = int(input('Guess a number: ')) 
    elif answer == num_answer: 
     print('You win!') 
    elif guesses > guesses and answer != num_answer: 
     print("You lose; the number was", num_answer, ".") 
+1

无论'猜测=猜测“或”猜测“猜测都是真实的。 – glibdud

回答

1

您正试图将变量与自身进行比较。 “猜测!=猜测” 总是会返回false,因此您的“while”永远不会运行。 你可以改变你猜测变量为两个单独的。

num_answer = int(input('What should the answer be? ')) 
guessesMax = int(input('How many guesses? ')) 
answer = int(input('Guess a number: ')) 

while answer != num_answer and guessesMax != guessesCount: 
    answer = int(input('Guess a number: ')) 
    if answer < num_answer: 
     print('The number is higher than that.') 
     guessesCount += 1 
     answer = int(input('Guess a number: ')) 
    elif answer > num_answer: 
     print('The number is lower than that.') 
     guessesCount += 1 
     answer = int(input('Guess a number: ')) 
    elif answer == num_answer: 
     print('You win!') 
    elif guessesCount == guessesMax and answer != num_answer: 
     print("You lose; the number was", num_answer, ".") 

还改变了你的最后一个elif用“==”。但它是无用的,因为当将不会被执行

guessesCount == guessesMax 

的同时;)

编辑: 您需要添加

guessesCount = 0 

在顶部为它工作。 另外,在您同时

answer = int(input('Guess a number: ')) 

被执行两次,无论你把它放在你的循环beggining或在每个“如果elif的,否则”但现在两者;!)

+0

我编辑我的代码添加一个不同的变量等于'guessesMax',但我不能得到while循环结束时,'guessesCount == guessesMax' – meganium25