【问题标题】:Why is my for loop not updating a given variable?为什么我的 for 循环不更新给定的变量?
【发布时间】:2015-06-10 04:31:33
【问题描述】:
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 个零的列表。感谢您的帮助。

【问题讨论】:

  • 你真的在任何地方调用你的方法吗?
  • 对不起,我对 Python 很陌生,不知道方法是什么。
  • 我已经更新了我的答案。 single_roll 是一个函数/方法。把它想象成一项任务。所以说这个功能掷骰子。您需要告诉该函数运行。所以你需要调用single_roll(6)。 (6) 可以换成你要掷多少个骰子。
  • Zach,以'def'开头的那行的目的是什么?

标签: python dice


【解决方案1】:

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)

【讨论】:

    【解决方案2】:

    看起来您正在定义 single_roll() 函数,但从未真正调用它。所以你给自己一个掷骰子的机制,但你从来没有真正掷骰子。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多