我正在写一个棒球比赛模拟我希望能够运行多场比赛,看看不同的击球平均数如何影响结果每场比赛都是由“at bats”组成的,其结果来自一个随机数。
问题是,当我去运行多个游戏,我得到相同的结果为每场比赛。
我想python正在记住这个函数的结果,并正在使用它。我是python/cs新手,所以一直在尝试查找内存等问题,但没有找到我需要的答案。我很感激你的帮助和指点谢谢你
为了帮助我解释这个问题,下面是一个简化的版本。它只使用点击和出局,以27个出局结束一场比赛。最后是五场比赛。
import random
hits = 0
outs = 0
# determine whether player (with .300 batting average) gets a hit or an out
def at_bat():
global hits
global outs
number = random.randint(0,1000)
if number < 300:
hits +=1
else:
outs += 1
# run at_bat until there are 27 outs
def game():
global hits
global outs
while outs < 27:
at_bat()
else:
print "game over!"
print hits
# run 5 games
for i in range(0,5):
game()
最佳答案
问题在于使用全局变量。
当您的游戏()第一次运行后,输出为27。
当你再次调用游戏时,它仍然有相同的值,所以你的while循环立即退出。