python生成各种随机小数,总有一种满足你的需求

有时需要自己模拟生成数据,Python是最合适的工具了。下面是python中的random模块,它用于随机数生成的例子。

(1) 随机小数

import random
print(random.random())   #随机大于0 且小于1 之间的小数
#结果
#0.6897784315368002
print(random.uniform(0,9)) #随机一个大于0小于9的小数
#结果
#1.2981140261424073

(2) 随机整数

import random
print(random.randint(0,10)) #随机一个大于等于0且小于等于10的整数
#结果
#8
print(random.randrange(1,10,2)) #随机一个大于等于1且小于等于10之间的奇数,其中2表示递增基数
#结果
#9
a = random.randrange(9, 100, 10)#从9、19、29、39、……、99之间,随机选取一个实数
print(a)
#结果
#69

(3) 随机返回列表中的元素

import random
print(random.choice(['123', 2.68, 52, [1, 2]])) #随机返回参数列表中任意一个元素
#结果
#[1, 2]
print(random.sample(['123','abc',52,[1,2]],2)) #随机返回参数列表中任意两个元素,参数2指定返回的数量
#结果
#['123', 52]
a = range(3,100,2)  #从列表里面随机选取9个数字
b = random.sample(a, 9)
print(b)
#结果
#[11, 33, 15, 57, 37, 73, 59, 9, 55]

(4)打乱列表顺序

import random
list = [1,2,5,7,9,10]
random.shuffle(list)
print(list)
#结果
#[2, 1, 10, 5, 9, 7]

(5)验证码生成器

import random
def random_num():
    code = ''
    for i in range(4):
        ran1 = random.randint(0, 9)
        ran2 = chr(random.randint(65, 90))
        add = random.choice([ran1, chr(random.randint(65, 90))])
        code = ''.join([code, str(add)])
    return code
rand_n = random_num()
print(rand_n)
#结果
#U9AQ

(5) 写入文件

import random
count = 10
#count = 100000000
f1 = open('D:\\svmdata.txt', 'w+')
for k in range(0, count):
    print(k)
    num1 = random.randint(0, 1)
    num2 = random.choice([0, random.uniform(2, 3)])
    num3 = random.choice([0, random.uniform(2, 3)])
    data = str(num1)+' '+str(num2)+' '+str(num3)
    f1.write(data + '\n')

# print(random.choice([ 0, random.uniform(2, 3) ]))
# print(random.randint(0, 1))
# print(random.uniform(2, 3))

结果:

打开svmdata.txt:

1 2.047277419041446 2.0363010600552003
1 0 2.222463137076936
0 2.2634002225313807 0
1 2.507887676591875 2.649486851327983
0 0 2.351092197191832
1 2.129038547588649 0
1 2.542448724199632 2.7332599439968863
1 0 2.0074334074878664
0 0 0
1 0 2.7891750105778153
posted @ 2021-06-28 21:45  wanpi  阅读(11496)  评论(0编辑  收藏  举报