为什么我的for循环不更新给定的变量?

问题描述:

import random 
stats = [0,0,0,0,0,0] 
def single_roll(n,fixed=(),sides=6): 
    for x in range(0,n): 
     dice = random.randint(1,6) 
      if dice == 1: 
       stats[0] += 1 
      elif dice == 2: 
       stats[1] += 1 
      elif dice == 3: 
       stats[2] += 1 
      elif dice == 4: 
       stats[3] += 1 
      elif dice == 5: 
       stats[4] += 1 
      elif dice == 6: 
       stats[5] +=1 

这是我当前的代码,我试图创建一个列表,当滚动n个骰子时,数字1-6的出现次数。当我运行我的代码时,它只打印一个包含6个零的列表。谢谢你的帮助。为什么我的for循环不更新给定的变量?

+2

你是否真的在任何地方调用你的方法? – marsh 2015-04-05 17:26:01

+0

对不起,我对Python非常陌生,不知道什么是方法。 – Zach2095 2015-04-05 17:27:26

+0

我已经更新了我的答案。 single_roll是一个函数/方法。把它想象成一项任务。所以说功能掷骰子。您需要告诉该函数运行。所以你需要调用single_roll(6)。 (6)可以用你想滚动的骰子来替换。 – marsh 2015-04-05 17:29:08

def single_roll(n,fixed=(),sides=6):正在创建一个函数。除非实际调用它,否则此代码本身不会运行。把它看成是一项任务,你需要告诉任务运行。下面是一个例子。

import random 
stats = [0,0,0,0,0,0] 
def single_roll(n,fixed=(),sides=6): 
    for x in range(0,n): 
     dice = random.randint(1,6) 
     if dice == 1: 
      stats[0] += 1 
     elif dice == 2: 
      stats[1] += 1 
     elif dice == 3: 
      stats[2] += 1 
     elif dice == 4: 
      stats[3] += 1 
     elif dice == 5: 
      stats[4] += 1 
     elif dice == 6: 
      stats[5] +=1 
single_roll(6) 

它看起来像你正在定义single_roll()函数,但从来没有真正调用它。所以你给自己的机制掷骰子,但你永远不会滚动。