我想用Python创建一个函数来掷一定数量的骰子
我的问题是,如何让这个列表滚动打印出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]
`