【发布时间】:2017-10-31 23:39:04
【问题描述】:
我是 Python 的新手,我正在编写一个程序,在该程序中计算机会在一定范围内生成一个随机数,然后尝试猜测它选择的数字。我正在使用 for 循环让计算机猜测多个数字(在本例中为 2)。我还在跟踪每次循环迭代后的猜测次数。在那之后,我将在循环结束后对这些猜测取平均值。但是,当我尝试获取平均值时,它不会打印。我不知道代码有什么问题。有人可以帮我解决这个问题吗?
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
【问题讨论】:
-
你是在你的函数中调用
guess(),没有基本情况,还是缩进错误?当我运行你的代码时,我得到一个最大递归错误 -
首先,调用你的函数(即
guess()),因为你只是定义了它。其次,删除for i in range(2): guess(),否则它将永远运行。 -
@0TTT0 当我运行它时,它很好。我其实不知道你在说什么错误。是的,我确实在我的函数中调用了guess()。
-
@ryugie 谢谢你的建议,我以后会记住的。
标签: python python-3.x