2

まず、あなたが提供できる回答に感謝します。

とにかく、私は Python とプログラミング全般の初心者です。私は、コンピューターが 1 から 15 の間で乱数を選択する独自の乱数推測ゲームを作成しようとしました。

私の問題は、推測が低すぎるか高すぎるかをユーザーに伝えようとすると、プログラムが正しいかどうかをユーザーに通知せずに終了することです。または、ループし続けるだけです。

低すぎる、もう一度推測してください: 14

正しい!あなたは私の番号を推測しました!

低すぎる、もう一度推測してください: 12

低すぎる、もう一度推測してください: 1

低すぎる、もう一度推測してください:

このプログラムのコード全体は次のとおりです。

import random
from time import sleep

number = random.randint(1,15)
play = input("Hello! Would you like to play (Y/N) ")

if play in('y', 'Y'):
    sleep(.75)

    print("I've chosen a number between 1 and 15.") 
    sleep(.5)

    guess = int(input("What is my number? "))

    while guess >= number:
        guess = int(input("Too High, please guess again: "))
        if guess == number:
            print("Correct! You've guessed my number!")

    while guess <= number:
        guess = int(input("Too Low, please guess again: "))
    
        if guess == number:
            print("Correct! You've guessed my number!")
        
else:
    exit

繰り返しますが、答えてくれてありがとう!

4

3 に答える 3

3

私が低く推測する場合、それは私を「数の下の推測」ループに入れます。私が数を超えて推測した場合、ループは終了し、プログラムから私を捨てます。

あなたがする必要があるのは、whileguess!= numberの結合されたループを持ち、ループ内で上下と等しいことをチェックすることです。、

于 2013-03-07T01:51:46.983 に答える
3

あなたのループロジックは少しねじれています。

while guess >= number:
    guess = int(input("Too High, please guess again: "))
    if guess == number:
        print("Correct! You've guessed my number!")

while guess <= number:
    guess = int(input("Too Low, please guess again: "))

    if guess == number:
        print("Correct! You've guessed my number!")
  1. 推測が高すぎる間、ループします。低い推測はこれを中断します。
  2. 推測が低すぎる間、ループします。高い推測はこれを中断します。

したがって、最初に低い推測を行い、次に高い推測を行った場合でも、まだ間違っている場合、whileペアを回避したことになり、再試行できません。

代わりに、次の 1 つのループ構造を試してください。

while guess != number:

その中にif<===、および>=. 乾杯!

于 2013-03-07T01:53:46.983 に答える
2

while を次のように変更します。

while guess != number:
    if (guess > number):
        print("Too High!")
    else:
        print("Too Low!")
    guess = int(input("Please guess again: "))

print("Correct! You guessed my number!")
于 2013-03-07T01:54:18.187 に答える