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