我想用Python创建一个函数来掷一定数量的骰子

1 投票
3 回答
1762 浏览
提问于 2025-04-28 01:34

我的问题是,如何让这个列表滚动打印出6个数字?

import random
from random import *
num = 6

def d6(num):
  for x in range(num):
  roll = randint(1,6)
  print ("", roll)
print("finished you rolled: ",roll)
暂无标签

3 个回答

0

我猜测你是想在你的消息后面打印出一些数字。

import random
from random import *
num = 6

def d6(num):
    rolls = []
    for x in range(num):
        rolls.append(randint(1,6))
    return rolls

rolls = d6(6);
print("finished you rolled: ",rolls)

另外,你也可以像下面这样用空格分隔来打印。

print("finished you rolled: " + " ".join(str(x) for x in rolls))
2

你可以通过一个简单的列表推导式来完成这一切:

import random

def d6(num):
    return [random.randint(1,6) for i in range(num)]

print d6(6)

如果你想的话,修改一下也很简单,这样就可以使用n面骰子了:

import random

def rolldice(num, sides=6):
    return [random.randint(1,sides) for i in range(num)]

print rolldice(5) # roll 5 six-sided dice
print rolldice(6, 20) # roll 6 20-sided dice

如果你遇到需要混合不同骰子的情况,你可以把这些骰子作为一个列表输入:

import random

def rolldice(dice):
    return [random.randint(1, die) for die in dice]

print rolldice([6, 6, 20, 100, 20])
# Example output - [5, 1, 9, 84, 13]
0

你可以把每次掷骰子的结果添加到一个数组里,然后再把这个数组打印出来。

import random
from random import *
num = 6

def d6(num):
    rolls = []
    for x in range(num):
            rolls.append(randint(1,6))
    print rolls

>>> d6(5)
[4, 6, 1, 1, 1]

`

撰写回答