我是Python的初学者。你能帮我解决这个问题吗?
定义rolldies(n)函数,该函数模拟n个骰子的掷骰并返回掷骰的有序列表。 (例如,rolldies(3)生成1到6之间的三个随机数,例如2、5、1,并返回列表[1、2、5]。)
我做到了,但这不是练习所想要的:
import random
def rolldies():
die1 = random.randrange(1, 6)
die2 = random.randrange(1, 6)
die3 = random.randrange(1, 6)
list=[]
list.extend((die1, die2, die3))
list.sort(reverse = False )
return list
print(rolldies())
答案 0 :(得分:2)
在您的帖子中,您说该函数将类似于rolldies(n)
,因此您需要在函数中定义一个参数。有很多方法可以达到期望的结果。
方法1:使用 for循环
的解决方案
import random
def rolldies(n):
result = []
for i in range(n):
number = random.randrange(1, 6)
result.append(number)
return sorted(result)
print(rolldies(3)) # display [3, 4, 5] for example
方法2:使用 list-comprehension
的解决方案
import random
def rolldies(n):
return sorted([random.randrange(1, 6) for i in range(n)])
print(rolldies(3)) # display [2, 4, 5] for example
答案 1 :(得分:0)
您应该将列表的长度传递给函数名称rolldies()。尝试下面的代码
import random
def rolldies(n):
list=[]
for i in range(n):
list.append(random.randrange(1, 6))
list.sort(reverse = False )
return list
print(rolldies(4))
答案 2 :(得分:0)
您可以使用for
循环n
次并生成一个随机数。在每一步中,您都将随机数放入列表中。
import random
def rolldies(n):
roll_list = [] # This is the list where you store the rolls.
for i in range(n):
rand = random.randrange(1, 6) # Generate a random number in each loop.
print(rand)
roll_list.append(rand) # Add the random number to the list.
roll_list.sort() # Sort the list.
return roll_list
# Here you call the function with a value for n
n = 3
print(rolldies(n))
答案 3 :(得分:0)
您需要一个for循环,以使其具有可变的次数,并需要一个空列表来存储每卷骰子。
import random
def rolldies(n):
dice = [] #Empty list to store the rolls
#For loop that runs n times
for i in range(n):
roll = random.randrange(1, 6) #Roll the dice
dice.append(roll) #Store the roll in the list
dice.sort(reverse = False)
return dice
print(rolldies(5))
答案 4 :(得分:0)
尝试一下:)
import random
def rolldies(n):
list = []
for i in range(int(n)):
list.append(random.randrange(1, 6))
list.sort()
return list
print(rolldies(3))
答案 5 :(得分:0)
执行此操作的pythonic方法是使用已提供的函数:random.choices
从种群中返回n个数字:
import random
def rolldies(n):
return sorted(random.choices(list(range(1,7)), k=n), reverse=False)
print(rolldies(10))
# [1, 1, 2, 2, 3, 3, 4, 4, 5, 6]
如果必须使用randrange
,则可以通过一次列表理解来完成,以创建n
数字列表,例如:
import random
def rolldies(n):
return sorted([random.randrange(1, 7) for _ in range(n)], reverse = False)
print(rolldies(10))
# [2, 2, 2, 3, 4, 4, 5, 5, 5, 6]
注意:如果要包含(1,7)
,则范围应为6
。