我的问题是如何获得列表滚动来打印6个数字?我想创建一个函数,通过pythonic方式通过num变量滚动一定数量的骰子
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)
我的问题是如何获得列表滚动来打印6个数字?我想创建一个函数,通过pythonic方式通过num变量滚动一定数量的骰子
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)
您可以将每个卷筒附加到一个数组,然后打印该数组。
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]
`
这似乎最接近我期望的输出,本质上我想这个函数返回的值用于字符创建等... – 2014-10-17 03:21:45
我将冒险猜测您试图在您的消息之后在一行上打印卷。
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))
你可以做到这一切在一个单一的列表理解:
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]
当我复制这个我得到的错误....将再次尝试。 – 2014-10-17 03:23:08
这条线的正确语法是什么:return [random.randint(1,die)for die in dice)] – 2014-10-17 03:32:38
@GarryHurst我不小心留下了一个额外的右括号。它应该以“骰子”而不是“骰子”]结束。 – 2014-10-17 15:54:29
你能正确格式化吗?您的代码在写入时不会运行。 – munk 2014-10-17 02:16:01