دمج العبارات البرمجية المركبة
التعليمات المركبة مثل حلقات for وجمل if لها أجسام تتكون من قائمة من التعليمات الداخلية. ويمكن أن تكون هذه التعليمات الداخلية أي شيء، بما في ذلك تعليمات مركبة أخرى.
جرّب هذا المثال الذي توجد فيه حلقة for داخل جملة if، في حالة أردت أن تُظهر أنك متحمس جدًا:
sentence = 'Hello World'
excited = True
if excited:
new_sentence = ''
for char in sentence:
new_sentence += char + '!'
sentence = new_sentence
print(sentence)
لاحظ أن جسم تعليمة if مكوّن من أربعة أسطر لها مسافة بادئة واحدة، بينما السطر الموجود داخل حلقة for يحصل على أربع مسافات إضافية لأنه داخل الحلقة أيضًا. من شكل المسافات البادئة وحده تستطيع رؤية البنية العامة للبرنامج.
ويمكنك كذلك وضع if داخل for:
sentence = 'Hello World'
excited = True
new_sentence = ''
for char in sentence:
new_sentence += char
if excited:
new_sentence += '!'
sentence = new_sentence
print(sentence)
البرنامجان ينتجان النتيجة نفسها. لكن النسخة التي تتحقق من excited قبل بدء الحلقة أكثر كفاءة قليلًا، لأنها لا تمر على أحرف النص أصلًا عندما تكون excited = False ولا يوجد شيء يحتاج إلى تغيير.