我试图用Python创建一系列随机数

2024-09-27 04:19:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我在这里创建了一个脚本来生成一个随机数字符串。我不知道如何使它的数字将是随机的,每次使用它。例如,我希望它是这样的:

0,1,2,3,5
1,4,7,3,5
2,8,2,1,3

相反,我得到的是:

0,1,2,3,5
1,1,2,3,5
2,1,2,3,5

第一个数字是按顺序运行的,这很好。但我需要换另外4个号码

inter1rand = random.randint(1, 1)
inter1time = inter1rand
inter1 = inter1time
print (inter1)  

inter2rand = random.randint(24, 31)
inter2time = inter2rand + inter1time
inter2 = inter2time
print (inter2)

inter3rand = random.randint(34, 55)
inter3time = inter3rand + inter2time
inter3 = inter3time
print (inter3)


mouse1 = random.randint(110, 1100)
mouse2 = random.randint(875, 1100)
mouse3 = random.randint(375, 607)



col_list1 = [str(n) + ',1,' + str(mouse1) + ',' + str(mouse2) + ',' + str(mouse3) + ';' for n in range(0,inter1)]
col_list2 = [str(n) + ',1,' + str(mouse1) + ',' + str(mouse2) + ',' + str(mouse3) + ';' for n in range(inter1,inter2)]
col_list3 = [str(n) + ',1,' + str(mouse1) + ',' + str(mouse2) + ',' + str(mouse3) + ';' for n in range(inter2,inter3)]
#print (col_list1)
#print (col_list1 + col_list2)
#print (col_list1 + col_list2 + col_list3)

Tags: forcolrandomprintrandintstrlist1mouse1
3条回答

如果您想要真正的随机整数值,还可以检查np.random.choice()函数

np.random.choice(10,3)
array([9, 4, 2])
>>> np.random.choice(10,3)
array([6, 7, 8])
>>> np.random.choice(31,3)
array([11, 28, 10])
>>> np.random.choice([0,1],3)
array([0, 1, 1])

在这个函数中,您可能无法给出范围,但重复的机会较少

使用随机模块及其randint

import random

for u in range(3):
    r = [random.randint(0, 10) for i in range(5)]
    for d in r[:-1]:
        print(d, end=', ')
    print(r[-1])

返回:

9, 6, 0, 4, 1
7, 9, 2, 2, 1
4, 10, 6, 5, 8

将代码从使用mouse1、mouse2和mouse3更改为直接使用random.randint:

col_list1 = [str(n) + ',1,' + str(random.randint(110, 1100)) + ',' + str(random.randint(875, 1100)) + ',' + str(random.randint(375, 607)) + ';' for n in range(0,inter1)]
col_list2 = [str(n) + ',1,' + str(random.randint(110, 1100)) + ',' + str(random.randint(875, 1100)) + ',' + str(random.randint(375, 607)) + ';' for n in range(inter1,inter2)]
col_list3 = [str(n) + ',1,' + str(random.randint(110, 1100)) + ',' + str(random.randint(875, 1100)) + ',' + str(random.randint(375, 607)) + ';' for n in range(inter2,inter3)]

相关问题 更多 >

    热门问题