الدرس 8: بايثون يختار بين الطرق! ↔️ (مع `else` و `elif`)
أهلاً وسهلاً بكم أيها المستكشفون الصغار في عالم قرارات بايثون المتقدمة! 🗺️✨ في الدرس الماضي، تعلمنا كيف نجعل بايثون يتخذ قرارًا واحدًا باستخدام جملة if
: “إذا كان هذا صحيحًا، افعل كذا”. ولكن، ماذا لو أردنا أن يفعل بايثون شيئًا آخر محددًا إذا لم يكن الشرط الأول صحيحًا؟ أو ماذا لو كان لدينا أكثر من خيارين؟ اليوم، سنتعرف على صديقتي if
المخلصتين: else
و elif
! هاتان الكلمتان السحريتان ستجعلان برامجنا أكثر ذكاءً ومرونة، كأنها تعرف بالضبط ماذا تفعل في كل موقف! هيا بنا نكتشف هذه الطرق الجديدة! 🚀
ماذا لو لم يكن الشرط صحيحًا؟ نقدم لكم `else`! 🤷♀️➡️🤷♂️
تذكرون عندما قلنا: “إذا كانت السماء تمطر ☔، سآخذ مظلتي”؟ ماذا لو لم تكن تمطر؟ قد لا نفعل شيئًا، أو قد نقول: “وإلا (إذا لم تكن تمطر)، سأرتدي نظارتي الشمسية 😎!”.
هذه كلمة “وإلا” هي بالضبط ما تفعله الكلمة السحرية في بايثون:
else
نستخدم else
مع if
. إذا كان شرط if
صحيحًا (True
)، ينفذ بايثون الأوامر التابعة لـ if
ويتجاهل else
. أما إذا كان شرط if
خاطئًا (False
)، فإن بايثون يتجاهل أوامر if
وينفذ الأوامر التابعة لـ else
.
ملاحظة مهمة: else
لا تحتاج إلى شرط خاص بها، فهي تعمل فقط عندما يكون شرط if
الذي يسبقها مباشرة خاطئًا. ويجب أن تأتي else
بعد if
(أو elif
كما سنتعلم بعد قليل).
✨ لنطبق معًا: مشمس أم لا؟ قرار واضح! ☀️☁️ ✨
هيا نعدل برنامج الطقس من الدرس الماضي ليصبح أكثر تحديدًا. توجه إلى محرر الأكواد المدمج. امسح أي كود قديم.
الكود الذي سنكتبه سيسأل عن الطقس، ثم يقرر ماذا يفعل بناءً على الإجابة. إليك الخطوات والأوامر:
1. نسأل عن الطقس:
weather = input("هل الجو مشمس اليوم (اكتب 'نعم' أو 'لا')؟ ")
2. بايثون يقرر باستخدام if
و else
:
انتبه لكيفية كتابة else
:
- تأتي بعد كل أوامر
if
(التي تكون مزاحة للداخل). - تُكتب
else
بدون إزاحة (على نفس مستوىif
). - تنتهي بنقطتين رأسيتين
:
. - الأوامر التابعة لـ
else
يجب أن تكون مزاحة قليلاً إلى الداخل.
الكود سيكون كالتالي:
if weather == "نعم":
print("رائع! هيا بنا نذهب في نزهة ممتعة في الحديقة!")
else:
print("لا بأس، يمكننا اللعب في الداخل اليوم أو انتظار يوم مشمس آخر!")
3. رسالة أخيرة دائمًا ما تُطبع:
print("أتمنى لك يومًا سعيدًا على أي حال!")
إذن، الكود الكامل الذي ستكتبه في المحرر، سطرًا بعد سطر، هو:
weather = input("هل الجو مشمس اليوم (اكتب 'نعم' أو 'لا')؟ ")
if weather == "نعم":
print("رائع! هيا بنا نذهب في نزهة ممتعة في الحديقة!")
else:
print("لا بأس، يمكننا اللعب في الداخل اليوم أو انتظار يوم مشمس آخر!")
print("أتمنى لك يومًا سعيدًا على أي حال!")
هيا يا خبير الطقس! اكتب هذا الكود بنفسك في المحرر.
محرر بايثون التفاعلي
شغل البرنامج الآن!
- جرب أن تكتب “نعم”. سترى رسالة النزهة والرسالة الأخيرة (بايثون تجاهل
else
). - جرب أن تكتب “لا” (أو أي شيء آخر غير “نعم”). سترى رسالة اللعب في الداخل والرسالة الأخيرة (بايثون تجاهل أوامر
if
ونفذ أوامرelse
).
رائع! الآن برنامجك يقدم خيارين واضحين!
عندما يكون لدينا أكثر من خيارين: نقدم لكم `elif`! 🚦
ماذا لو كان لدينا أكثر من احتمالين؟ مثلاً، إشارة المرور يمكن أن تكون حمراء أو صفراء أو خضراء. هنا تأتي الكلمة السحرية الثالثة:
elif
وهي اختصار لـ “else if” (وإلا إذا). نستخدم elif
لاختبار شرط جديد فقط إذا كان شرط if
(أو elif
) الذي قبله خاطئًا. يمكننا استخدام العديد من جمل elif
كما نريد بين if
و else
(إذا كانت هناك else
).
✨ لنطبق معًا: تقييم الدرجات! 🥇🥈🥉 ✨
لنفترض أننا نريد تقييم درجة طالب. إذا كانت الدرجة 90 أو أكثر، فهو ممتاز. إذا كانت بين 80 و 89، فهو جيد جدًا. وإلا (إذا كانت أقل من 80)، فهو جيد.
امسح الكود السابق وابدأ من جديد.
الخطوات التي سنقوم بها هي:
1. اسأل عن الدرجة وحولها إلى رقم:
score_text = input("أدخل درجة الطالب (0-100): ")
score = int(score_text)
2. استخدم if
، elif
، و else
للتقييم:
الكود سيكون كالتالي، حيث نتحقق من الشرط الأعلى أولاً:
if score >= 90:
print("ممتاز! عمل رائع واستثنائي!")
elif score >= 80:
print("جيد جدًا! أداء رائع!")
else:
print("جيد! استمر في المحاولة والتعلم!")
إذن، الكود الكامل الذي ستكتبه في المحرر هو:
score_text = input("أدخل درجة الطالب (0-100): ")
score = int(score_text)
if score >= 90:
print("ممتاز! عمل رائع واستثنائي!")
elif score >= 80:
print("جيد جدًا! أداء رائع!")
else:
print("جيد! استمر في المحاولة والتعلم!")
هيا يا مقيّم الدرجات الماهر! اكتب هذا الكود بنفسك.
محرر بايثون التفاعلي
شغل البرنامج!
- جرب إدخال درجة مثل
95
. ماذا سيحدث؟ (ممتاز!) - جرب إدخال درجة مثل
85
. ماذا سيحدث؟ (جيد جدًا!) - جرب إدخال درجة مثل
70
. ماذا سيحدث؟ (جيد!)
بايثون يتحقق من الشروط بالترتيب. بمجرد أن يجد شرطًا صحيحًا، ينفذ أوامره ويتجاهل بقية جمل elif
و else
في تلك المجموعة.
مشروع صغير: “لعبة تخمين الرقم السحري” 🔢🔮
هيا نصنع لعبة بسيطة وممتعة! سيختار الكمبيوتر رقمًا سريًا (سنحدده نحن الآن)، وعلى المستخدم أن يحاول تخمينه. سنخبر المستخدم إذا كان تخمينه أكبر من، أو أصغر من، أو يساوي الرقم السحري!
✨ خطوات بناء لعبة التخمين: ✨
امسح كل الكود القديم من المحرر وابدأ من جديد!
هذا هو الكود الذي سنبني به لعبتنا خطوة بخطوة:
1. حدد الرقم السحري (الكمبيوتر يختاره سرًا!):
secret_number = 7
2. رحب باللاعب واطلب منه تخمينًا:
print("أهلاً بك في لعبة تخمين الرقم السحري (بين 1 و 10)!")
guess = int(input("ما هو تخمينك؟ "))
3. استخدم if
، elif
، و else
لمقارنة التخمين بالرقم السحري:
الكود الذي يقارن ويعطي التلميحات هو:
if guess == secret_number:
print("يا للروعة! لقد خمنت الرقم الصحيح! أنت فائز! 🎉")
elif guess < secret_number:
print("تخمينك أصغر من الرقم السحري. حاول مرة أخرى برقم أكبر!")
else:
print("تخمينك أكبر من الرقم السحري. حاول مرة أخرى برقم أصغر!")
إذن، الكود الكامل للعبتنا هو:
secret_number = 7
print("أهلاً بك في لعبة تخمين الرقم السحري (بين 1 و 10)!")
guess = int(input("ما هو تخمينك؟ "))
if guess == secret_number:
print("يا للروعة! لقد خمنت الرقم الصحيح! أنت فائز! 🎉")
elif guess < secret_number:
print("تخمينك أصغر من الرقم السحري. حاول مرة أخرى برقم أكبر!")
else:
print("تخمينك أكبر من الرقم السحري. حاول مرة أخرى برقم أصغر!")
هيا يا صانع الألعاب المبدع! اكتب هذا الكود في المحرر.
محرر بايثون التفاعلي
شغل اللعبة! حاول تخمين الرقم 7
. جرب إدخال رقم أصغر، ثم رقم أكبر، ثم الرقم الصحيح، وشاهد كيف يرشدك بايثون!
يمكنك تغيير قيمة secret_number
لتجعل اللعبة أصعب أو أسهل!
جرب بنفسك! استكشف كل الطرق! 🧪🧭
أفضل طريقة لتصبح خبيرًا في اتخاذ القرارات المتعددة هي بالتجربة!
عد إلى محرر الأكواد المدمج وجرب هذه الأفكار:
- برنامج يسأل المستخدم عن شهره المفضل. إذا كان “ديسمبر” أو “يناير” أو “فبراير” (انتبه لكيفية كتابة الشروط المتعددة هذه، قد تحتاج لـ
or
التي تعلمناها في الدرس 7!)، يطبع “إنه فصل الشتاء!”. إذا كان “مارس” أو “أبريل” أو “مايو”، يطبع “إنه فصل الربيع!” وهكذا لبقية الفصول (استخدمif
,elif
,else
). جرب بنفسك!
محرر بايثون التفاعلي
- تطوير لعبة تخمين الرقم: ماذا لو أردت أن تعطي اللاعب أكثر من محاولة؟ (هذا تحدٍ متقدم قليلاً، قد نحتاج إلى شيء اسمه “الحلقات التكرارية” سنتعلمه قريبًا!).
- برنامج يسأل عن نوع الحيوان (مثلاً: “قطة”، “كلب”، “طائر”). لكل نوع، يطبع صوتًا مختلفًا. مثلاً، إذا كتب المستخدم “قطة”، يطبع البرنامج “مياو!”. إذا كتب “كلب”، يطبع “هاو هاو!”. وإذا كتب شيئًا آخر، يطبع “لا أعرف هذا الحيوان!”. جرب كتابة هذا البرنامج!
محرر بايثون التفاعلي
تذكر، كل خطأ هو فرصة للتعلم. لا تتردد في تجربة تركيبات مختلفة من if
, elif
, و else
.
تذكير صغير للأبطال: نحن الآن نستمتع بـ محرر الأكواد المدمج. لاحقًا، عندما تصبحون محترفين، قد تستكشفون
VS Code
لكن الآن، ملعبنا هو الأفضل لاستكشاف كل طرق بايثون!
ملخص درسنا متعدد الخيارات اليوم: ↔️✨
else
(وإلا): تنفذ مجموعة من الأوامر فقط إذا كان شرطif
(أوelif
) الذي يسبقها خاطئًا. لا تحتاج إلى شرط خاص بها.elif
(وإلا إذا): تستخدم لاختبار شرط جديد فقط إذا كان شرطif
(أوelif
) الذي يسبقها خاطئًا. يمكن استخدام العديد منها.- الترتيب مهم: بايثون يتحقق من
if
أولاً، ثمelif
بالترتيب، وأخيرًاelse
(إذا وجدت). بمجرد العثور على شرط صحيح، ينفذ أوامره ويتجاهل الباقي. - بهذه الأدوات، يمكننا بناء برامج تتخذ قرارات معقدة ومتعددة الخيارات، مما يجعلها أكثر ذكاءً وفائدة!
أبدعتم أيها المبرمجون الحكماء! 🌟 لقد أضفتم اليوم أدوات قوية جدًا إلى صندوق مهاراتكم، مما يسمح لبايثون بالاختيار بين العديد من الطرق المختلفة. هذا يقربكم خطوة كبيرة نحو بناء ألعاب وقصص تفاعلية مذهلة!
استمروا في التفكير مثل بايثون، واستكشفوا كل الاحتمالات! إلى اللقاء في الدرس القادم، حيث سنتعلم كيف نجعل بايثون يكرر الأشياء مرارًا وتكرارًا! مع السلامة أيها الأبطال! 👋