私はPythonには新しく、コンピュータが特定の範囲内の乱数を生成し、それが選択した数を推測しようとするプログラムを作っています。私はコンピュータがforループを使って複数の数字(この場合は2)を推測させるようにしています。私はまた、ループの各反復後に取った推測の数を追跡しています。その後、ループが終了した後で、それらの推測を平均するつもりです。しかし、私は平均を取得しようとすると印刷されません。コードに何が問題なのか分かりません。誰かがこの問題で私を助けることができますか?forループの後に平均値を出力するにはどうすればよいですか?
import random
def guess():
the_num = random.randint(1, 100)
print('The number to guess is',the_num)
comp_guess = random.randint(1, 100)
print('The computer guesses ', comp_guess)
tries = 1
while comp_guess != the_num:
print('The computer guesses ', comp_guess)
tries += 1
if comp_guess == the_num:
break
else:
comp_guess = random.randint(1, 100)
for i in range(2):
guess()
print('The computer took',tries,'guesses')
print('The computer guessed it right!')
print('The computer guessed',(tries/2),'times on average')
# Trying to calculate the average number of guesses after the loop is finished
あなたがいない基本ケースで、あなたの関数の内部で ')('推測を呼んでいますまたはインデントのエラーですか?あなたのコードを実行すると、最大再帰エラーが発生します – 0TTT0
最初に、定義しただけなので、関数(つまり、 'guess()')を呼び出します。次に、範囲(2)内のfor for:guess()を削除するか、永遠に実行します。 – ryugie
@ 0TTT0私はそれを実行すると、大丈夫です。私は実際に何を言っているのか分からない。そして、はい、私は私の機能の中で推測を呼んでいました。 – LLLL90