python随机生成20个整数 收集到一个列表中_在Python中生成随机数的随机长度列表的程序...

如果你只是想要一个更好的版本的现有程序,我已经修复了你的代码,并压缩成一个函数如下。但是,我认为编辑你已经写过的东西比重做它更有建设性-有关修复代码的详细信息,请参阅我的回答的其余部分**from random import randint

def main():

random_int = random.randint(6, 13)

print(random_int)

rand_list = [randint(1, 100) for _ in range(random_int)]

return sorted(rand_list)

print main()In main, generate a random integer that is greater than 5 and less

than 13.random_int应分配给random.randint(6, 12),因为randint函数使用包含范围参数Call the makelist function with the random integer as sole argument.您的make_list函数目前没有参数,所以让我们将它的定义改为def make_list(list_lengh):。现在我们可以将来自main()的随机整数作为输入传入。在use a loop to append to the list a number of elements equal to the random integer argument.在make_list function中的第二行代码中,使用默认参数(1, 101)调用range,这不是您想要的。您希望对list_length调用range,因为您希望循环次数与在main()中创建的随机整数相同。在All new list elements must be random integers ranging from 1 to 100,

inclusive.你不会想要num_list.append(random_int)。这只会给你一个[random_int]*random_int。而是追加random.randint(1, 101)。在Finally, use a for loop to display the sorted list elements, all on one line有很多方法可以实现这一点,但是由于您希望将所有整数打印到一行上,所以让我们用循环将整数附加到字符串中,然后在末尾返回字符串。在

是这样的:

^{pr2}$

一旦您完成了所有这些修改,您就离您的起点不远了,但是代码现在拥有了所需的行为。在import random

def main():

random_int = random.randint(6, 13)

print(random_int)

rand_list = make_list(random_int)

num_string = ""

for i in sorted(rand_list):

num_string += str(i) + " "

return num_string

def make_list(list_length):

num_list = []

for count in range(list_length):

num_list.append(random.randint(1, 101))

return num_list

print main()

示例输出:10

20 63 63 71 78 83 83 84 87 94