Computer >> Máy Tính >  >> Lập trình >> Python

Tạo Id ngẫu nhiên bằng Python

Chúng tôi sử dụng để tạo một số ngẫu nhiên trong dự án của mình cho dữ liệu mẫu, sau này có thể được sử dụng để thử nghiệm, lấp đầy các cột trống hoặc cho nhiều mục đích khác, điều quan trọng là chúng tôi cần tạo dữ liệu ngẫu nhiên. Trong python, có nhiều cách để tạo dữ liệu ngẫu nhiên và chúng ta sẽ khám phá một số cách trong số đó ở đây trong bài viết này -

Mô-đun Python random ()

Một trong những thư viện quan trọng, những gì đi kèm với python là ngẫu nhiên và chúng tôi sẽ sử dụng nó xuyên suốt trong mã của mình.

Để sử dụng mô-đun này trong mã của bạn, bạn chỉ cần nhập mô-đun đó, thế là xong và chúng tôi đã sẵn sàng sử dụng.

import random

Hãy xem cách sử dụng nó -

import random
print("What i will get, no idea as i'm using random.random()")
print(random.random())

Đầu ra

What i will get, no idea as i'm using random.random()
0.5306626723173611

Lần thứ hai, nếu tôi cố gắng chạy cùng một chương trình - bạn sẽ nhận được đầu ra khác -

What i will get, no idea as i'm using random.random()
0.5504289430397661

Vài điểm trên mô-đun ngẫu nhiên:

  • random () là hàm cơ bản của mô-đun ngẫu nhiên
  • Hầu hết tất cả các hàm của mô-đun ngẫu nhiên đều sử dụng hàm random ().
  • Hàm Random () sẽ tạo ra bất kỳ số nào trong khoảng từ [0,0 đến 1,0).

Tạo số nguyên ngẫu nhiên trong Python

Dưới đây là hai hàm chúng tôi đang sử dụng để tạo số nguyên ngẫu nhiên -

  • randint ()
  • randrange ()
from random import randint, randrange
print("Printing random integer ", randint(0, 20))
print("Printing random integer ", randrange(0, 20, 2))

Đầu ra

Printing random integer 15
Printing random integer 4

Chọn ngẫu nhiên một mục từ danh sách

Hãy xem xét chúng ta có một danh sách tên công ty và chúng ta muốn truy xuất một mục (tên công ty) từ danh sách đó. Chúng ta có thể đạt được điều này bằng cách,

import random
companies = ['RELIANCE', 'TCS', 'INFY', 'SBI', 'PNB','HDFC']
print('Randomly selecting company from a list: ', random.choice(companies))

Đầu ra

Randomly selecting company from a list: INFY

Chọn ngẫu nhiên nhiều mục từ một danh sách

Hãy xem xét ví dụ trên nhưng thay vì một mục (công ty), chúng ta muốn chọn ngẫu nhiên nhiều mục (công ty) từ một danh sách, chúng ta có thể đạt được điều này thông qua, hàm random.sample () -

import random
companies = ['RELIANCE', 'TCS', 'INFY', 'SBI', 'PNB','HDFC']
print('Randomly selecting 3 companies from a list: ', random.sample(companies,3))

Đầu ra

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

Tuy nhiên, nếu chúng tôi cố gắng chọn các mục nhiều hơn số mục trong danh sách, chúng tôi gặp phải ValueError -

Đầu vào -

random.sample(companies,20)

đầu ra -

ValueError: Sample larger than population or is negative

Một phương pháp khác để chọn nhiều mục ngẫu nhiên từ danh sách là - random.choices ().

import random
companies = ['RELIANCE', 'TCS', 'INFY', 'SBI', 'PNB','HDFC']
print('Randomly selecting 3 companies from a list: ', random.choices(companies,k=6))

Đầu ra

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

Như chúng ta có thể thấy từ kết quả ở trên, chúng ta có thể nhận được một mục trùng lặp từ danh sách khi sử dụng phương thức random.choices ().

trình tạo số giả ngẫu nhiên trong python

Trình tạo số giả ngẫu nhiên hoạt động bằng cách thực hiện một số thao tác trên một giá trị. Nói chung, giá trị này là số trước đó được tạo bởi trình tạo. Tuy nhiên, trong lần đầu tiên bạn sử dụng trình tạo, không có giá trị nào trước đó.

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

Đầu ra

Seed value 10:
74
5
55
62
74
Seed Value 5:
80
33
95
46
89
Seed value: 10
74
5
55
62
74

Như chúng ta thấy từ ví dụ trên, nếu hạt giống giống nhau, nó tạo ra giá trị trước đó đầu tiên. Mỗi giá trị gốc tương ứng với một chuỗi giá trị được tạo cố định cho trình tạo số ngẫu nhiên nhất định.

Tạo các số ngẫu nhiên an toàn bằng mật mã trong python

Chúng tôi có thể tạo một số ngẫu nhiên an toàn bằng mật mã trong python 3.x. Nếu chúng ta có python 3.6 trở lên, chúng ta có thể sử dụng mô-đun bí mật mới và hàm rand bên dưới cho nó. Nó sẽ tạo ra một số ngẫu nhiên dưới giá trị được chỉ định.

import secrets
#generate 10 secure random numbers between 10 and 500
for x in range(0,10):
secV =10+ secrets.randbelow(500)
print(secV)

Đầu ra

464
406
184
293
399
332
495
292
118
134

Một cách khác cho python 3.5 trở xuống, chúng ta có thể sử dụng mô-đun ngẫu nhiên và lớp SystemRandom để tạo các số ngẫu nhiên an toàn bằng mật mã là,

import random
randGen = random.SystemRandom()
for x in range(0,10):
secV = 10+ randGen.randint(0,499)
print(secV)

Đầu ra

374
211
425
264
217
97
210
39
319
52

Một cách khác là sử dụng mô-đun ngẫu nhiên và bí mật (để bảo mật dữ liệu).

import secrets
import random
secNum = random.SystemRandom().random()
print("secure number is ", secNum)
print("Secure byte token", secrets.token_bytes(16))

Đầu ra

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