2014-10-17 44 views

回答

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] 

`

+0

这似乎最接近我期望的输出,本质上我想这个函数返回的值用于字符创建等... – 2014-10-17 03:21:45

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) 

如果你想,这是很容易修改这个让你可以使用正面骰子:

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

当我复制这个我得到的错误....将再次尝试。 – 2014-10-17 03:23:08

+0

这条线的正确语法是什么:return [random.randint(1,die)for die in dice)] – 2014-10-17 03:32:38

+0

@GarryHurst我不小心留下了一个额外的右括号。它应该以“骰子”而不是“骰子”]结束。 – 2014-10-17 15:54:29