循环变量次数时如何返回

时间:2016-05-08 04:47:34

标签: python python-2.7

刚刚进行一些练习练习,这个练习要求创建一个可以生成随机数的骰子。该函数的参数应该是(骰子上的边数,卷数)

如果我只是使用return,它将停止循环。我知道解决这个问题的方法是将答案和打印结合起来但是如果答案的数量(或者在这种情况下是滚动)是一个变量怎么办?

这是我的代码:

#roll_dice
import random

def rolldice(sides, rolls):
  start = 1
  while start <= rolls:
    number = random.randint(1, sides)
    start += 1
  return number

print rolldice(6, 3)

我怎样才能打印出来:

3
5
2

3 个答案:

答案 0 :(得分:2)

您可以使用如下所示的列表推导,这将使您的函数返回随机数列表:

>>> import random
>>> def rolldice(sides, rolls):
...     return [random.randint(1, sides) for _ in xrange(rolls)]

演示:

>>> rolldice(6, 3)
[1, 2, 3]
>>> rolldice(6, 3)
[2, 6, 4]

答案 1 :(得分:1)

您希望将列表返回给用户,然后以指定的格式打印出列表:

#roll_dice
import random

def rolldice(sides, rolls):
  numbers = []
  index = 0
  while index < rolls:
    number = random.randint(1, sides)
    numbers.append(number)
    index += 1
  return numbers

print '\n'.join(rolldice(6, 3))

答案 2 :(得分:1)

您可以使用yield

import random

def rolldice(sides, rolls):
  for i in xrange(0, rolls):
    yield random.randint(1, sides)

for item in rolldice(6,3):
  print item