الدرس الرابع: هياكل التحكم، اتخاذ القرار، وحلقات التكرار في لغة بايثون
تُمثل هياكل التحكم والاتخاذ الآلي للقرارات القلب النابض الذي يمنح البرامج الحاسوبية ذكاءها وديناميكيتها في لغة بايثون. فبدلاً من السريان الخطي الرتيب للأوامر، تتيح لنا الجمل الشرطية (if, elif, else) توجيه مسار تنفيذ البرنامج وفقاً لتحقق شروط منطقية محددة، معتمدة على أدوات المقارنة الرياضية والمعاملات المنطقية كـ and و or و not. كما تُضفي حلقات التكرار (for و while) قدرات خارقة لأتمتة المهام ومعالجة ملايين البيانات والعمليات الرياضية المعقدة في أجزاء من الثانية. تفرض لغة بايثون قواعد صارمة في المسافة البادئة (Indentation) لتحديد الكتل البرمجية التابعة للشروط والحلقات، مع إتاحة أدوات تحكم فائقة كأمري break و continue.
1. الجمل الشرطية والمسافة البادئة
تستخدم الجمل الشرطية لفحص الشروط المنطقية واختيار مسارات التنفيذ:
if score >= 90:
print("ممتاز")
elif score >= 50:
print("ناجح")
else:
print("راسب")
المعاملات المنطقية ومعاملات المقارنة:
- المقارنة:
==(يساوي)،!=(لا يساوي)،>،<،>=،<=. - المنطقية:
and(يشترط تحقق الشرطين معاً)،or(يكفي تحقق أحدهما)،not(نفي الشرط). - المسافة البادئة (Indentation): 4 مسافات إلزامية تحدد الأوامر التابعة لكل شرط أو حلقة، وحذفها يسبب خطأ
IndentationError.
2. حلقات التكرار (for و while)
تستخدم عندما يكون عدد مرات التكرار معروفاً ومحدداً.
•
range(1, 6) تولد الأرقام 1, 2, 3, 4, 5 (الرقم الأخير غير متضمن).•
range(0, 10, 2) تولد الأرقام الزوجية 0, 2, 4, 6, 8 بمقدار زيادة 2.
• تستمر في التكرار طالما ظل الشرط محققاً (True).
•
break: للخروج الفوري والنهائي من الحلقة.•
continue: لتخطي الدورة الحالية فقط والانتقال للدورة التالية مباشرة.
تدريب تطبيقي 1: فحص العدد الزوجي والفردي
المسألة: اكتب كود بايثون يفحص متغيراً n ويطبع هل هو زوجي أم فردي.
n = int(input("Enter number: "))
if n % 2 == 0:
print("Even (زوجي)")
else:
print("Odd (فردي)")
تدريب تطبيقي 2: تتبع ناتج حلقة for
المسألة: ما ناتج تنفيذ الكود التالي؟total = 0
for i in range(1, 5):
total += i
print(total)
• الأرقام المولدة من
range(1, 5) هي: 1, 2, 3, 4.• المجموع = 1 + 2 + 3 + 4 = 10.
• يتم طباعة 10 بعد انتهاء الحلقة.
تدريب تطبيقي 3: استخدام أمر break
المسألة: ما مخرجات الكود التالي؟for x in range(1, 10):
if x == 4:
break
print(x, end=" ")
• يطبع:
1 2 3.• عندما تصبح قيمة x مساوية لـ 4، يتحقق الشرط وينفذ أمر
break الذي يقطع الحلقة فوراً ويخرج منها.
تدريب تطبيقي 4: استخدام أمر continue
المسألة: ما مخرجات الكود التالي؟for x in range(1, 6):
if x == 3:
continue
print(x, end=" ")
• يطبع:
1 2 4 5.• عندما تصبح x مساوية لـ 3، أمر
continue يتخطى جملة الطباعة لتلك الدورة وينتقل مباشرة للرقم 4.
تدريب تطبيقي 5: حلقة while مع عداد تنازلي
المسألة: تتبع تنفيذ حلقة while التالية:c = 3
while c > 0:
print(c, end=" ")
c -= 1
• الدورة 1: c=3 (يطبع 3 ويصبح 2).
• الدورة 2: c=2 (يطبع 2 ويصبح 1).
• الدورة 3: c=1 (يطبع 1 ويصبح 0).
• عند c=0 يتوقف الشرط. المخرجات:
3 2 1.
تدريب تطبيقي 6: الشروط المركبة بـ and و or
المسألة: إذا كان age = 17 و has_ticket = True، فما نتيجة تقييم التعبير: age >= 18 and has_ticket وما نتيجة age >= 18 or has_ticket؟
• التعبير بـ and:
False and True = False لأن أحد الشرطين لم يتحقق.• التعبير بـ or:
False or True = True لأن تحقق شرط واحد يكفي لإرجاع صواب.
تدريب تطبيقي 7: إيجاد العامل المشترك الأكبر بخوارزمية إقليدس
المسألة: تتبع كود إيجاد باقي القسمة في حلقة while لعددين: a=18, b=12.
• 18 % 12 = 6.
• تصبح a=12 و b=6.
• 12 % 6 = 0 فتتوقف الحلقة.
• العامل المشترك الأكبر هو 6.
تدريب تطبيقي 8: تكرار النص بحلقة for
المسألة: ما ناتج تنفيذ: for char in "AI": print(char, end="-")؟
• يطبع:
A-I-.• حلقة for في بايثون تمر على كل حرف في السلسلة النصية بشكل تتابعي.
اضغط على أي بطاقة لاكتشاف المعنى الدقيق، واضغط على أيقونة الصوت للاستماع للنطق:
اضغط على الإجابة لتتحقق من فهمك وتكتشف التفسير النموذجي فورياً: