random --- menghasilkan bilangan acak¶
Modul ini mengimplementasikan generator bilangan acak-semu (PRNG). PRNG adalah LCG bergaya Yasmarang 32-bit; pada impor pertama ia mengambil satu seed 32-bit dari sumber perangkat keras yang sama yang digunakan os.urandom(), dan setiap bilangan berikutnya adalah fungsi deterministik dari seed tersebut.
Peringatan
Output tidak aman secara kriptografis -- algoritma ini dapat diprediksi dari urutan output yang pendek, dan seed awal hanya membawa 32 bit entropi. Untuk materi kunci, token sesi, garam kata sandi, atau penggunaan sensitif keamanan lainnya, panggil os.urandom() sebagai gantinya.
Catatan
Notasi berikut digunakan untuk interval:
() adalah tanda kurung interval terbuka dan tidak menyertakan titik akhirnya. Misalnya, (0, 1) berarti lebih besar dari 0 dan kurang dari 1. Dalam notasi himpunan: (0, 1) = {x | 0 < x < 1}.
[] adalah tanda kurung interval tertutup yang menyertakan semua titik batasnya. Misalnya, [0, 1] berarti lebih besar dari atau sama dengan 0 dan kurang dari atau sama dengan 1. Dalam notasi himpunan: [0, 1] = {x | 0 <= x <= 1}.
Fungsi untuk integer¶
- random.randrange(start: int, stop: int | None = None, step: int = 1) int¶
Bentuk pertama mengembalikan integer acak dari rentang [0, stop). Bentuk kedua mengembalikan integer acak dari rentang [start, stop). Bentuk ketiga mengembalikan integer acak dari rentang [start, stop) dalam langkah-langkah step. Misalnya, memanggil
randrange(1, 10, 2)akan mengembalikan bilangan ganjil antara 1 dan 9 inklusif.
Fungsi untuk float¶
Fungsi Lainnya¶
- random.seed(n: int | None = None, /) None¶
Menginisialisasi modul generator bilangan acak dengan seed n, yang harus berupa integer. Ketika tidak ada argumen (atau
None) yang diteruskan, PRNG di-seed ulang dari sumber khusus-port yang sama yang digunakanos.urandom().
- random.choice(sequence: Any) Any¶
Memilih dan mengembalikan satu item secara acak dari sequence (tuple, daftar, atau objek apa pun yang mendukung operasi subscript).