首页 > 解决方案 > python中的随机数、字符串和整数

问题描述

编写python程序,生成1到10之间的3个随机数一百次。程序应在以逗号分隔的新行上显示每组 3 个数字。示例输出的格式应如下所示:

Number set 1 is: 10,7,8   
Number set 2 is: 4,6,5
...  
Number set 100 is: 7,3,1

我需要帮助正确显示它。
3 个随机数 100 次。


import random

mylist = [random.randint(1,11) for r in range(100)]
x = random.sample(mylist,3)
for i in range(100):
    print('Number set', i + 1, 'is', x)



   

标签: pythonstringrandom

解决方案


问题:

这些代码行在您的循环之外。这意味着每次运行代码时数字不会是唯一的,并且对于循环的所有迭代都将保持不变。

mylist = [random.randint(1,11) for r in range(100)]
x = random.sample(mylist,3)

解决方案:

您可以将前面提到的代码行移到循环内部而不是外部:

import random

for i in range(100):
    mylist = [random.randint(1,11) for r in range(100)]
    x = random.sample(mylist,3)
    print('Number set', i + 1, 'is', x)

或者你可以写一个更干净的解决方案:

import random

for i in range(1,101):
    print(f"Number set {i} is: {random.randint(1,11)},{random.randint(1,11)},{random.randint(1,11)}")

此解决方案不是使用列表,而是打印 100 次 3 个不同随机数的格式化字符串。这将循环超过 100 次。

您也可以查看其他答案选择。

random.choices()也是random.sample()不错的选择。

在此处阅读有关它们的更多信息


推荐阅读