random --- توليد أعداد عشوائية¶
تنفّذ هذه الوحدة مولّد أعداد شبه عشوائية (PRNG). والمولّد هو LCG بطول 32 بت من نمط Yasmarang؛ وعند أول استيراد يسحب بذرة واحدة بطول 32 بت من المصدر العتادي نفسه الذي تستخدمه os.urandom()، ويكون كل عدد لاحق دالة حتمية لتلك البذرة.
تحذير
الخرج ليس آمنًا تشفيريًا -- فالخوارزمية يمكن التنبؤ بها من تسلسل خرج قصير، والبذرة الأولية لا تحمل سوى 32 بت من العشوائية. أما لمواد التشفير أو رموز الجلسات أو أملاح كلمات المرور أو أي استخدام آخر حساس أمنيًا، فاستدعِ os.urandom() بدلًا منها.
ملاحظة
تُستخدم الترميزات التالية للفترات:
() هي أقواس فترة مفتوحة ولا تتضمن نقطتي طرفها. على سبيل المثال، (0, 1) تعني أكبر من 0 وأصغر من 1. بترميز المجموعات: (0, 1) = {x | 0 < x < 1}.
[] هي أقواس فترة مغلقة تتضمن جميع نقاط حدودها. على سبيل المثال، [0, 1] تعني أكبر من أو يساوي 0 وأصغر من أو يساوي 1. بترميز المجموعات: [0, 1] = {x | 0 <= x <= 1}.
دوال للأعداد الصحيحة¶
- random.randrange(start: int, stop: int | None = None, step: int = 1) int¶
تُرجع الصيغة الأولى عددًا صحيحًا عشوائيًا من المدى [0, stop). وتُرجع الصيغة الثانية عددًا صحيحًا عشوائيًا من المدى [start, stop). وتُرجع الصيغة الثالثة عددًا صحيحًا عشوائيًا من المدى [start, stop) بخطوات مقدارها step. على سبيل المثال، استدعاء
randrange(1, 10, 2)سيُرجع أعدادًا فردية بين 1 و9 ضمنًا.
دوال للأعداد العشرية¶
دوال أخرى¶
- random.seed(n: int | None = None, /) None¶
تهيئ وحدة مولّد الأعداد العشوائية بالبذرة n، التي ينبغي أن تكون عددًا صحيحًا. وعندما لا يُمرَّر أي وسيط (أو يُمرَّر
None)، يُعاد بذر المولّد PRNG من المصدر الخاص بالمنفذ نفسه الذي تستخدمهos.urandom().
- random.choice(sequence: Any) Any¶
تختار وتُرجع عنصرًا واحدًا عشوائيًا من sequence (صف أو قائمة أو أي كائن يدعم عملية الفهرسة).