python随机函数笔记_在Python中⽣成随机ID
我们⽤来在项⽬中为样本数据⽣成⼀个随机数,然后将其⽤于测试,填充空列或⽤于许多其他⽬的,关键是我们需要⽣成随机数据。在python中,有多种⽣成随机数据的⽅法,我们将在本⽂中探索其中⼀些-
Pythonrandom()模块
python附带的重要库之⼀是随机的,我们将在代码中使⽤它。
要在您的代码中使⽤此模块,只需导⼊它即可,我们已经准备好使⽤它。import random
让我们看看如何使⽤它-import random
print("What i will get, no idea as i'm using random.random()")
print(random.random())
输出结果What i will get, no idea as i'm using random.random()
0.5306626723173611
第⼆次,如果我尝试运⾏相同的程序,您将获得不同的输出-What i will get, no idea as i'm using random.random()
0.5504289430397661
随机模块上的⼏点:random()是随机模块的基本功能
随机模块的⼏乎所有功能都使⽤random()⽅法。
Random()函数将⽣成介于[0.0到1.0)之间的任何数字。
在Python中⽣成随机整数
下⾯两个函数我们⽤来⽣成随机整数-randint()
randrange()from random import randint, randrange
print("Printing random integer ", randint(0, 20))
print("Printing random integer ", randrange(0, 20, 2))
输出结果Printing random integer 15
Printing random integer 4
从列表中随机选择⼀个项⽬
考虑我们有⼀个公司名称列表,我们想从该列表中检索⼀个项⽬(公司名称)。我们可以做到这⼀点,import random
companies = ['RELIANCE', 'TCS', 'INFY', 'SBI', 'PNB','HDFC']
print('Randomly selecting company from a list: ', random.choice(companies))
输出结果Randomly selecting company from a list: INFY
从列表中随机选择多个项⽬
考虑上⾯的⽰例,但是我们不想从⼀个列表中随机选择⼀个项⽬(公司),⽽是可以通过random.sample()函数实现这⼀点-import random
companies = ['RELIANCE', 'TCS', 'INFY', 'SBI', 'PNB','HDFC']
print('Randomly selecting 3 companies from a list: ', random.sample(companies,3))
输⼊-random.sample(companies,20)
输出-ValueError: Sample larger than population or is negative
从列表中选择多个随机项的另⼀种⽅法是– random.choices()。import random
companies = ['RELIANCE', 'TCS', 'INFY', 'SBI', 'PNB','HDFC']
print('Randomly selecting 3 companies from a list: ', random.choices(companies,k=6))
输出结果Randomly selecting 3 companies from a list: ['TCS', 'TCS', 'INFY', 'HDFC', 'INFY', 'TCS']
从上⾯的输出中可以看出,使⽤random.choices()⽅法可以从列表中获得重复项。
Python中的伪随机数⽣成器
伪随机数⽣成器通过对值执⾏某些运算来⼯作。通常,此值是⽣成器⽣成的先前数字。但是,第⼀次使⽤⽣成器时,没有先前的值。import random
print("Seed value 10: ") # Initialize seed value
random.seed(10)
for i in range(5):
print(random.randint(1,100))
print()
print("Seed Value 5: ") # this time we'll get different values
random.seed(5)
for i in range(5):
print(random.randint(1,100))
print()
print("Seed value: 10") # will get the same result, what we got initially
random.seed(10)
for i in range(5):
print(random.randint(1,100))
输出结果Seed value 10:
74
5
55
62
74
Seed Value 5:
80
Seed value: 10
74
python生成1到100之间随机数5
55
62
74
从上⾯的⽰例可以看出,如果种⼦相同,那么它将⽣成第⼀个先前的值。每个种⼦值对应于给定随机数⽣成器的⽣成值的固定序列。
在python中⽣成加密安全的随机数
我们可以在python 3.x中⽣成⼀个加密安全的随机数。如果我们拥有python 3.6或更⾼版本,则可以使⽤新的secrets模块和下⾯的rand 函数。它将⽣成⼀个低于指定值的随机数。import secrets
#generate 10 secure random numbers between 10 and 500
for x in range(0,10):
secV =10+ secrets.randbelow(500)
print(secV)
输出结果464
406
184
293
399
332
495
292
118
134
对于python 3.5或更低版本的另⼀种⽅法,我们可以使⽤random模块和SystemRandom类来⽣成加密安全的随机数,import random
randGen = random.SystemRandom()
for x in range(0,10):
secV = 10+ randGen.randint(0,499)
print(secV)
输出结果374
97
210
39
319
52
另⼀种⽅法是使⽤随机和秘密(以保护数据)模块。import secrets
import random
secNum = random.SystemRandom().random()
print("secure number is ", secNum)
print("Secure byte token", ken_bytes(16))
输出结果secure number is 0.5205307353786663
Secure byte token b'\x05T>\xacsqn0\x08\xc4\xf4\x8aU\x13\x9f\xcf'
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论