Working With Random Numbers In Python (Translated) - Viblo
Có thể bạn quan tâm
Một cái nhìn tổng quát về làm việc với sự ngẫu nhiên trong Python, chỉ sử dụng các hàm thư viện chuẩn.
Generating Random Floats Between 0.0 and 1.0
Hàm random.random() trả về một số float ngẫu nhiên trong nửa khoảng [0.0, 1.0). Điều này có nghĩa là số ngẫu nhiên trả về sẽ luôn nhỏ hơn điểm đầu mút bên phải (1.0):
>>> import random >>> random.random() 0.11981376476232541 >>> random.random() 0.757859420322092 >>> random.random() 0.7384012347073081Generating Random Ints Between x and y
Đây là cách tạo ra một số nguyên ngẫu nhiên giữa hai đầu mút trong Python với hàm random.randint(). Cái này bao gồm cả khoảng [x, y]:
>>> import random >>> random.randint(1, 10) 10 >>> random.randint(1, 10) 3 >>> random.randint(1, 10) 7Với hàm random.randrange(), bạn có thể loại trừ khoảng bên phải, tức là số được sinh ra nằm trong nửa khoảng [x, y) và luôn nhỏ hơn điểm đầu mút phải:
>>> import random >>> random.randrange(1, 10) 5 >>> random.randrange(1, 10) 3 >>> random.randrange(1, 10) 4Generating Random Floats Between x and y
Nếu bạn cần tạo các số float ngẫu nhiên nằm trong khoảng [x, y] xác định, bạn có thể sử dụng hàm random.uniform:
>>> import random >>> random.uniform(1, 10) 7.850184644194309 >>> random.uniform(1, 10) 4.00388600011348 >>> random.uniform(1, 10) 6.888959882650279Picking a Random Element From a List
Để lấy một phần tử ngẫu nhiên từ một non-empty sequence (list hay tuple), bạn có thể sử dụng hàm random.choice:
>>> import random >>> items = ['one', 'two', 'three', 'four', 'five'] >>> random.choice(items) 'five' >>> random.choice(items) 'one' >>> random.choice(items) 'four'Nếu sequence là empty, IndexError sẽ được ném ra.
Randomizing a List of Elements
Bạn có thể ngẫu nhiên hóa một sequence sử dụng hàm random.shuffle. Hàm này sẽ chỉnh sửa đối tượng sequence và ngẫu nhiên hóa thứ tự các phần tử:
>>> import random >>> items = ['one', 'two', 'three', 'four', 'five'] >>> random.shuffle(items) >>> items ['four', 'one', 'five', 'three', 'two']Nêu bạn không muốn thay đổi sequence gốc, bạn sẽ cần tạo ra bản copy trước, rồi sau đó shuffle bản copy. Bạn có thể tạo ra các bản copy của các đối tượng Python với module copy.
Picking n Random Samples From a List of Elements
Để lấy một mẫu ngẫu nhiên gồm n phần tử từ một sequence, ta sử dụng hàm random.sample:
>>> import random >>> items = ['one', 'two', 'three', 'four', 'five'] >>> random.sample(items, 3) ['one', 'five', 'two'] >>> random.sample(items, 3) ['five', 'four', 'two'] >>> random.sample(items, 3) ['three', 'two', 'five']Generating Cryptographically Secure Random Numbers
Nếu bạn cần các số ngẫu nhiên được đã hóa vì mục đích bảo mật, hãy sử dụng random.SystemRandom - class sử dụng bộ sinh số giả ngẫu nhiên mã hóa.
Các instance của class SystemRandom cung cấp hầu hết các giao tác sinh số ngẫu nhiên như trong module random:
>>> import random >>> rand_gen = random.SystemRandom() >>> rand_gen.random() 0.6112441459034399 >>> rand_gen.randint(1, 10) 2 >>> rand_gen.randrange(1, 10) 5 >>> rand_gen.uniform(1, 10) 8.42357365980016 >>> rand_gen.choice('abcdefghijklmn') 'j' >>> items = ['one', 'two', 'three', 'four', 'five'] >>> rand_gen.shuffle(items) >>> items ['two', 'four', 'three', 'one', 'five'] >>> rand_gen.sample('abcdefghijklmn', 3) ['g', 'e', 'c']Python 3.6+ – The secrets Module:
Nếu bạn đang sử dụng Python 3 và mục đích của bạn là sinh các số ngẫu nhiên mã hóa thì hãy thử module secrets. Module này sẵn có trong Python 3.6:
>>> import secrets # Generate secure tokens: >>> secrets.token_bytes(16) b'\xc4\xf4\xac\x9e\x07\xb2\xdc\x07\x87\xc8 \xdf\x17\x85^{' >>> secrets.token_hex(16) 'a20f016e133a2517414e0faf3ce4328f' >>> secrets.token_urlsafe(16) 'eEFup5t7vIsoehe6GZyM8Q' # Picking a random element from a sequence: >>> secrets.choice('abcdefghij') 'h' # Securely compare two strings for equality # (Reduces the risk of timing attacks): >>> secrets.compare_digest('abcdefghij', '123456789') False >>> secrets.compare_digest('123456789', '123456789') TrueNguồn: https://dbader.org/blog/python-random-numbers
Từ khóa » Thư Viện Random Python
-
Random Trong Python: Tạo Số Random Ngẫu Nhiên - Freetuts
-
Các Mô-đun Toán Học Trong Python: Random - Code Tutsplus
-
Chi Tiết Bài Học 26. Random Một Số Trong Python - Vimentor
-
Sử Dụng Module Random Trong Python - TEK4
-
Module Random Trong Python - Học Lập Trình Python - Viettuts
-
Hàm Random() Trong Python Có Thực Sự "ngẫu Nhiên"? - Viblo
-
Tạo Số Thập Phân Và Số Nguyên Ngẫu Nhiên Trong Python, Bao Gồm ...
-
Random — Generate Pseudo-random Numbers — Python 3.10.5 ...
-
ndom () Bằng Python - W3seo Cách Random Trong Numpy
-
Hỏi Về Random Trong Python - Programming - Dạy Nhau Học
-
Ý Nghĩa Của Random Trong Code
-
Chi Tiết Bài Học 26. Random Một Số Trong Python
-
Cách Sử Dụng Hàm Random Trong Python