cb
codebamin
الفصل 5 · الجمل الشرطية (If Statements)

التفريع الشرطي: if و else

يمكن لجملة if أن تحتوي اختياريًا على جزء else. شغّل هذا المثال:

__program_indented__

غيّر الآن السطر الأول إلى condition = False وشغّل البرنامج مرة أخرى.

فكّر في else بمعنى «وإلا» أو «في غير ذلك». فإذا كان الشرط داخل if يساوي False، يُنفذ جسم else بدلًا منه. سواء كان الشرط صحيحًا أو خاطئًا، سيُنفذ واحد فقط من الجسمين.

إليك مثالًا أكثر فائدة؛ شغّله:

__program_indented__

التعبير sentence.upper() نوع جديد من التعبيرات لم نتعامل معه من قبل. ما يحدث هنا أن sentence نص، والنصوص لها أساليب (Methods) مختلفة تساعدك على حساب قيم جديدة بسهولة، ومنها upper وlower. يشير الاسمان إلى الأحرف الكبيرة (Uppercase) والصغيرة (Lowercase).

مثلًا، التعبير 'Hello World'.upper() تكون قيمته 'HELLO WORLD'. لكنه لا يغيّر محتوى sentence نفسه، ولذلك إذا أردت الاحتفاظ بالقيمة الجديدة فعليك إسنادها من جديد، مثل sentence = sentence.upper().

غيّر الآن excited إلى False وشغّل البرنامج مرة أخرى.

إليك برنامجًا فيه خطأ منطقي:

__copyable__ sentence = 'Hello World' excited = True

if excited: char = '!' sentence += char

print(sentence)

هل ترى المشكلة؟ إذا شغّلته الآن فسيبدو أن كل شيء يعمل. فما الذي يمكن أن يسوء؟

حاول اكتشافه قبل قراءة الإجابة. ماذا يحدث إذا غيّرت excited إلى False؟

إذا كانت excited تساوي True فإن char تُعرّف ويعمل كل شيء بصورة صحيحة. أما إذا كانت False فلن تُسنَد أي قيمة إلى char، ولذلك ستفشل محاولة استخدامها في sentence += char.

أصلح ذلك بإضافة جزء else إلى جملة if، بحيث إذا كانت excited تساوي False تُضاف نقطة (.) إلى نهاية الجملة بدل علامة التعجب (!).

حان وقت تحدٍّ!

اكتب برنامجًا يستقبل نصًا في المتغير sentence ويطبع نسخة معدلة منه تحتوي على الحروف نفسها، بحيث يكون الحرف الأول كبيرًا (Capitalized) وتكون بقية الحروف صغيرة.

مثلًا، يجب أن تكون النتيجة Hello world سواء كانت قيمة sentence هي 'hello world' أو 'HELLO WORLD'.

ممتاز!

تمرين أخير، وبعده يمكنك الاسترخاء.

اكتب برنامجًا يطبع sentence بأسلوب ساخر، مثل:

OnE MoRe eXeRcIsE, aNd tHeN YoU CaN ReLaX.

يجب أن يكون كل محرف ثانٍ بحروف صغيرة، بينما تكون بقية المحارف بحروف كبيرة.

ممتاز! خذ لحظة لتلاحظ مقدار ما أصبحت قادرًا على كتابته وفهمه بنفسك.

solution.py
1
2
3
4
5
6
7
8
9
10
الطرفية (shell)
>>>