在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))

输出结果

Randomly selecting 3 companies from a list: ['TCS', 'RELIANCE', 'INFY']

但是,如果我们尝试选择的项目多于列表中的项目数,则会遇到ValueError-

输入-

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

33

95

46

89

Seed value: 10

74

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

211

425

264

217

97

210

39

319

52

另一种方法是使用随机和秘密(以保护数据)模块。

import secrets

import random

secNum = random.SystemRandom().random()

print("secure number is ", secNum)

print("Secure byte token", secrets.token_bytes(16))

输出结果

secure number is 0.5205307353786663

Secure byte token b'\x05T>\xacsqn0\x08\xc4\xf4\x8aU\x13\x9f\xcf'

以上是 在Python中生成随机ID 的全部内容, 来源链接: utcz.com/z/316515.html

回到顶部