import random
شبه العشوائية
أهداف التمرين:
- التعرف على إمكانات مكتبة العشوائية
- ممارسة قراءة صفحات مراجع المكتبات البرمجية الأصلية
- ممارسة تركيب إجراء من أنواع مختلفة: الرقم والنص والتسلسل ونحو ذلك
- التعرف على حقيقة شبه العشوائية (Pseudo-randomness) في الحواسيب
مكتبة العشوائية random
هي من ضمن المكتبات المبنية في لغة بايثون.
بينما تحل المسائل التالية، ستحتاج إلى البحث في صفحة المكتبة. جرب أن تضع في محرك البحث العبارة:
وستظهر في النتائج الأولى صفحة المكتبة في مراجع بايثون:
ولا أريد منك قراءة الصفحة كاملةً، ولذلك سأشير إلى بعض الأجزاء المهمة بالنسبة لنا الآن:
- الإجراء:
random.seed
الذي تجده تحت قسم: Bookkeeping functions بالنظر في قائمة المحتويات في الجانب الأيسر من الصفحة - القسم: Functions for integers
- القسم: Functions for sequences
- القسم: Notes on Reproducibility
- الأمثلة: Examples
المسألة الأولى: توليد كلمة مرور
اكتب إجراءً يقبل المعاملات التالية ليُنتِج كلمة مرور (Password):
- الطول
- الأحرف الصغيرة
- الأحرف الكبيرة
- الأرقام
- الحد الأدنى من الأرقام
- الرموز:
!@#$%^&*
- الحد الأدنى من الرموز
def generate_password(length: int, ...) -> str:
...
المسألة الثانية: توليد عبارة مرور
اكتب إجراءً آخر يقبل المعاملات التالية ليُنتِج عبارة مرور (Passphrase)، بحيث تكون سهلة الحفظ على البشر:
- عدد الكلمات
- فاصل الكلمات
- تكبير الحرف الأول من كل كلمة
- تضمين رقم
def ...