为什么我的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循环不更新给定的变量?
答
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()函数,但从来没有真正调用它。所以你给自己的机制掷骰子,但你永远不会滚动。
你是否真的在任何地方调用你的方法? – marsh 2015-04-05 17:26:01
对不起,我对Python非常陌生,不知道什么是方法。 – Zach2095 2015-04-05 17:27:26
我已经更新了我的答案。 single_roll是一个函数/方法。把它想象成一项任务。所以说功能掷骰子。您需要告诉该函数运行。所以你需要调用single_roll(6)。 (6)可以用你想滚动的骰子来替换。 – marsh 2015-04-05 17:29:08