الدرس 32 من 56 · مهارات إضافية لكل شيء

العشوائية: حجر النرد الرقمي

أحياناً نبي الحظ يقرر: من يبدأ اللعبة؟ أي سؤال يجي بالاختبار؟ أي لون يطلع؟ بايثون عندها نرد رقمي يجيب لك أرقاماً عشوائية بضغطة وحدة.

import random

print(random.randint(1, 6))   # رمينا نرداً: 1 إلى 6
print(random.randint(1, 100))  # رقم بين 1 و 100

randint تعني "رقم صحيح عشوائي" بين الحدين اللي تحددها — وتشمل الطرفين. عشوائي يعني: ما تعرف وش بيطلع، أي احتمال ممكن.

ثلاث أدوات تنفعك بالألعاب وكل شي:

import random

# 1) اختيار واحد من قائمة
print(random.choice(["فليكس", "سالم", "نورة"]))

# 2) خلط قائمة — مثل خلط أوراق اللعب
cards = [1, 2, 3, 4, 5]
random.shuffle(cards)
print(cards)

# 3) عينة عشوائية
print(random.sample(cards, 2))  # اخترت اثنتين

choice = "اختر وحدة"، shuffle = "خلط"، sample = "خذ عينة". بأدوات كذا تقدر تسوي: لعبة حظ، مسابقة أسماء، خلط أسئلة الاختبار!

والآن نجمع العشوائية مع درس الأمان ونصنع كلمة مرور عشوائية — أقوى كلمات المرور هي العشوائية، لأن ما فيها أي منطق يخمنه أحد:

import random, string

chars = string.ascii_letters + string.digits + "!@#$%"
pw = "".join(random.choice(chars) for _ in range(14))
print("كلمة مرور قوية:", pw)

string.ascii_letters كل الحروف كبيرة وصغيرة، digits الأرقام. نختار 14 حرفاً واحداً واحداً عشوائياً ونلزقهم بjoin. جرب مرتين — كل مرة كلمة مختلفة تماماً!

معلومة للأمانة: الحاسوب "عشوائيته" تقريبية (يستخدم معادلة داخلية). للسجلات البنكية الحقيقية تستخدم مكتبة اسمها secrets — أقوى عشوائية. للتعلم والألعاب، random ممتازة.

اختبار سريع للدرس

جاوب على كل الأسئلة — لازم كلها صح. إذا غلطت بيطلع صندوق ذهبي يفهّمك وش الخطأ. مو عيب تغلط، كل مبرمج بالعالم غلط وأخذ منها درس.

1. وش يطلع من random.randint(1, 6)؟
2. وش تسوي random.choice؟
3. ليش كلمة المرور العشوائية أقوى من كلمة تخترعها بنفسك؟
الدرس 31 الدرس 33 — JSON: بطاقة تعارف عالمية لبياناتك
FeLiXFeLiX AI — مساعد المنصتين