次のタスクは、現在のコードを変更することです。前の演習では、数字を推測するゲームをカバーする基本的なアプリケーションを作成しました。コードは次のとおりです。-
# Guess My Number
#
# The computer picks a random number between 1 and 100
# The player tries to guess it and the computer lets
# the player know if the guess is too high, too low
# or right on the money
import random
print("\tWelcome to 'Guess My Number'!")
print("\nI'm thinking of a number between 1 and 100.")
print("Try to guess it in as few attempts as possible.\n")
# set the initial values
the_number = random.randint(1, 100)
guess = int(input("Take a guess: "))
tries = 1
# guessing loop
while guess != the_number:
if guess > the_number:
print("Lower...")
else:
print("Higher...")
guess = int(input("Take a guess: "))
tries += 1
print("You guessed it! The number was", the_number)
print("And it only took you", tries, "tries!\n")
input("\n\nPress the enter key to exit.")
私の仕事は、これを変更して、失敗メッセージがユーザーに表示されるまでの回数が制限されるようにすることです。これまでのところ、この章では「if、elif、else、for、ループ、無限ループの回避」について説明してきました。そのため、これらの概念のみに対応するように制限したいと思います。forループについては次の章で説明します。
私は何を試しましたか?
これまでのところ、5 goとtrys変数を使用して別のwhileループでブロックを修正しようとしましたが、機能していないようです。
# guessing loop
while tries < 6:
guess = int(input("Take a guess: "))
if guess > the_number:
print("Lower...")
elif guess < the_number:
print("Higher...")
elif guess == the_number:
print("You guessed it! The number was", the_number)
print("And it only took you", tries, "tries!\n")
break
tries += 1
input("You didn't do it in time!")
input("\n\nPress the enter key to exit.")
私が見逃したものについてのポインタやハイライトは、私が見逃したものについての説明に加えていただければ幸いです。プログラム的に考えることを自分自身に教えることも、トリッキーであることを証明しています。
動作しないもの 実行すると、ループ条件が動作していないように見えます。私のアイドルフィードバックは次のとおりです。
これは、私の質問を次のように要約できることを意味します。ループロジックはどこで壊れていますか?
>>> ================================ RESTART ================================
>>>
Welcome to 'Guess My Number'!
I'm thinking of a number between 1 and 100.
Try to guess it in as few attempts as possible.
Take a guess: 2
Take a guess: 5
Higher...
You didn't do it in time!
Press the enter key to exit.