3

プロジェクトとして Python で次のコードを記述しました。私はコンピュータ サイエンスを GCSE として取得しました。私はそれにかなり慣れていないので、このバグを修正する方法がわかりません。'5' などの最初の推測を入力すると、Too High と表示されます。その後、ゲームが完了すると、答えは 7 と表示されます。これは、私が常に解決しようとしているが達成できなかったバグです。これが私が使用したコードです:

import random 
numberofGuesses = 0 
print ("I'm thinking of a number between 1 and 10. What is it? You have three guesses.") 

while numberofGuesses < 3: 
    numberofGuesses = numberofGuesses +1 
    randomNumber = (random.randint(1,10)) 
    userInput = 0
    userInput = input () 
    userInput = int(userInput) 
    if randomNumber > userInput: 
        print("Too Low! Try again")
    if randomNumber < userInput:
        print("Too High! Try Again")

if numberofGuesses == 3:
    print("Sorry! You lose. The correct number was:",randomNumber)

if randomNumber == userInput: 
    print("Well Done! Your guess was correct!")`

このコードは、私が言及した 1 つのバグを除けば完全に機能します。

4

3 に答える 3

7

推測するたびに乱数を再選択しています。代わりに、最初にプログラムに数値を選択させてから、while ループに入る必要があると思います。

randomNumber = (random.randint(1,10)) 

while numberofGuesses < 3: 

    numberofGuesses = numberofGuesses +1 

    userInput = 0

    userInput = input () 

    userInput = int(userInput) 

    if randomNumber > userInput: 

        print("Too Low! Try again")

    if randomNumber < userInput:

        print("Too High! Try Again")
于 2013-10-24T19:36:55.427 に答える
3

反復ごとに乱数をリセットする以外に、別の問題があります。

推測が正しかった場合、ループを停止していません。また、推測の評価後に推測カウンターを増やす必要があります。そうしないと、誰かが 3 回目の試行で正しく推測したかどうかを判断できなくなります。

import random 
numberofGuesses = 0 
randomNumber = (random.randint(1,10)) 
print("I'm thinking of a number between 1 and 10. What is it? You have three guesses.") 

while numberofGuesses < 3: 
    userInput = int(input()) 
    if randomNumber > userInput: 
        print("Too Low! Try again")
    elif randomNumber < userInput:
        print("Too High! Try Again")
    else: # Correct guess!
        break
    numberofGuesses = numberofGuesses +1 
else:  # Executed only if the while loop is not exited via "break"
    print("Sorry! You lose. The correct number was:",randomNumber)

if randomNumber == userInput: 
    print("Well Done! Your guess was correct!")
于 2013-10-24T19:46:40.113 に答える
1

推測ごとに randomNumber を新しい乱数に設定しています - したがって、最初の答えは 7 かもしれませんが、推測すると 3 に変わります。これを修正するrandomNumber = (random.randint(1,10))には、while ループの外に移動します - 実行してください推測ごとに一度ではなく、一度。乾杯、そしてあなたの学習に幸運を!

于 2013-10-24T19:38:07.220 に答える