Python 骰子滚动模拟

标签 python python-3.x

我遇到了一个代码问题,我需要将一个六面骰子掷 1000 次,然后返回一个列表,其中列出骰子上的每个数字被掷了多少次。

代码运行得很好,我可以在最后得到一个列表,但我的列表一直用 0 代替 4,所以看起来我的函数没有密切关注正在滚动的数字 4 或者它没有被滚动全部。

我有点难过,我想也许这里有人可以提供帮助。感谢您提供任何帮助。

这是我的代码。

def rollDie(number):
    one = 0
    two = 0
    three = 0
    four = 0
    five = 0
    six = 0
    for i in range(0, number):
        roll=int(random.randint(1,6))
        if roll == 1:
            one = one+1
        elif roll == 2:
            two = two+1
        elif roll == 3:
            three = three+1
        elif roll == 4:
            four == four+1
        elif roll == 5:
            five = five+1
        elif roll == 6:
            six = six+1
    return [one,two,three,four,five,six]

最佳答案

你有一个小错字;您正在测试是否相等,而不是分配:

four == four+1

应该是:

four = four+1

但是,您已经有了一个介于 1 和 6 之间的数字,为什么不将其放入结果列表的索引中呢?这样您就不必使用那么多 if 语句。让你的数据远离你的变量名:

def rollDie(number):
    counts = [0] * 6
    for i in range(number):
        roll = random.randint(1,6)
        counts[roll - 1] += 1
    return counts

关于Python 骰子滚动模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19188546/

相关文章:

python - IO完成端口 key 混淆

python - 如何限制 haar 级联检测到的面孔数量

python - 为什么 Python 标准库的某些模块中有 __version__ 字符串?

python - 在 Spyder(Python 3.6)中导入 cv2 时导入错误

python如果用户输入包含字符串

python - 如何将我放入 Python Pandas 数据框中的重复项写入文件

Python - 任何将相对路径转换为绝对路径的方法?

python - 基于 datetime.time 的 Pandas 时间序列索引

python - 我如何从字符串中获取特定单词的下两个单词?

windows - 无法通过 Windows 任务计划程序运行我的 python 脚本