2017-10-09 9 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

変数を自身と比較しようとしています。 "guesses!= guesses" は常にfalseを返すので、 "while"は決して実行されません。 変数を2つに分けることができます。

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 = 0 

を追加する必要があります。

EDIT)は、

guessesCount == guessesMax 

しばらくは実行されませんときので、しかし、それは無用です。あなたの

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

はどちらか、二回実行されているあなたは、ループのbegginingに、または各「elifの、もしそうでない」が、今の両方で、それを入れている間でも ;!)

+0

'guessesMax'と同じように別の変数を追加するようにコードを編集しましたが、' guessesCount == guessesMax'のときにwhileループを終了できません – meganium25