我正在写一个棒球比赛模拟我希望能够运行多场比赛,看看不同的击球平均数如何影响结果每场比赛都是由“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循环立即退出。

08-05 13:00