البرمجة والذكاء الاصطناعي · الصف الأول الثانوي · الترم الأول
أساسيات البرمجة (2): التكرار بعبارة for والتفرع بعبارة if في Python
هيكل الحلقة بعبارة for والدالة range بصيغها الثلاث، ومعاملات المقارنة، والتعبير الشرطي، وهيكل التفرع بعبارات if وelse وelif في Python، مع برامج محلولة وتتبع نواتج التنفيذ.
آخر تحديث: · كيف نراجع المحتوى
مقدمة
- الوحدة الثانية عشرة: البرمجة — الموضوع 12-3
لو أردت أن تعرض الأعداد من 1 إلى 1000، هل ستكتب ألف سطر؟ ولو أردت أن يقرر البرنامج بنفسه هل نجح الطالب أم رسب؟ نحتاج هنا إلى هيكلي التحكم الآخرين: التكرار بعبارة for، والتفرع بعبارة if.
أهداف التعلم
- أن تكتب حلقة تكرار بعبارة
forمع الدالةrange. - أن تحدد القيم التي تولدها
rangeبصيغها الثلاث. - أن تستخدم معاملات المقارنة لكتابة تعبيرات شرطية.
- أن تكتب هيكل تفرع بعبارات
ifوelseوelif، وتتبع ناتج البرنامج.
شرح الدرس
هيكل الحلقة: عبارة for
عبارة for تنفذ عملية بشكل متكرر:
for variable in range(...):
process_to_repeat
الأوامر المكتوبة بإزاحة (مسافة بادئة) تحت سطر for هي التي تتكرر.
الدالة range
| الصيغة | المعنى | مثال | القيم |
|---|---|---|---|
range(end) | من 0 حتى end − 1 بزيادة 1 | range(5) | 0، 1، 2، 3، 4 |
range(start, end) | من start حتى end − 1 بزيادة 1 | range(2, 6) | 2، 3، 4، 5 |
range(start, end, step) | من start بزيادة step، ولا تصل إلى end | range(0, 10, 3) | 0، 3، 6، 9 |
قاعدة مهمة: قيمة النهاية end لا تدخل أبدًا في القيم.
معاملات المقارنة
معامل المقارنة (Comparison operator): يقارن بين قيمتين أو تعبيرين:
| المعامل (بين قيمتين a وb) | المعنى | مثال |
|---|---|---|
a == b | يساوي | x == 70 |
a != b | لا يساوي | x != 70 |
a < b | أصغر من | x < 70 |
a > b | أكبر من | x > 70 |
a <= b | أصغر من أو يساوي | x <= 70 |
a >= b | أكبر من أو يساوي | x >= 70 |
التعبير الشرطي (Conditional expression): تعبير يحدد هل الشرط متحقق، فيرجع True (صحيح) إذا تحقق وFalse (خطأ) إذا لم يتحقق.
هيكل التفرع: عبارة if
1) if ~ else: عمليتان؛ واحدة عند تحقق الشرط وأخرى عند عدم تحققه:
if condition:
process_when_true
else:
process_when_false
2) if ~ elif ~ else: لتحديد شروط متعددة بالتتابع:
if condition_1:
process_1
elif condition_2:
process_2
else:
process_3
يُختبر الشرط الأول؛ فإذا لم يتحقق يُختبر الثاني، وهكذا. وتُنفذ عملية أول شرط متحقق فقط، وإذا لم يتحقق أي شرط تُنفذ عملية else.
أمثلة وتطبيقات
مثال 1 (عرض الأعداد من 0 إلى 3):
for i in range(0, 4):
print(i)
ناتج التنفيذ: 0، 1، 2، 3 (كل عدد في سطر).
مثال 2 (الأعداد الفردية من 1 إلى 5):
for i in range(1, 7, 2):
print(i)
ناتج التنفيذ: 1، 3، 5.
مثال 3 (مجموع الأعداد من 1 إلى 10 ومتوسطها):
total = 0
for i in range(1, 11):
total = total + i
average = total / 10
print(total)
print(average)
ناتج التنفيذ: 55 ثم 5.5. لاحظ أننا كتبنا range(1, 11) لتدخل القيمة 10.
مثال 4 (ناجح أم راسب):
x = 70
if x >= 60:
result = 'Pass'
else:
result = 'Fail'
print(result)
ناتج التنفيذ: Pass؛ لأن 70 أكبر من أو يساوي 60.
مثال 5 (تقدير بثلاثة مستويات):
x = 70
if x >= 90:
result = 'Grade is A'
elif x >= 50:
result = 'Grade is B'
else:
result = 'Grade is C'
print(result)
ناتج التنفيذ: Grade is B؛ الشرط الأول (70 ≥ 90) خطأ، والثاني (70 ≥ 50) صحيح.
ملاحظات مهمة
- لا تنسَ النقطتين
:في نهاية سطرforوifوelifوelse. - الإزاحة (المسافة البادئة، غالبًا 4 مسافات) في Python ليست للتنسيق فقط؛ بل تحدد الأوامر التي تتبع الحلقة أو الشرط، والخطأ فيها يغيّر معنى البرنامج أو يسبب خطأ.
==للمقارنة و=للتخصيص؛ فالشرطif x = 70:خطأ، والصحيحif x == 70:.- في
elifترتيب الشروط مهم: ضع الشرط الأضيق (مثلx >= 90) قبل الأوسع (مثلx >= 50).
المفاهيم الأساسية
for i in range(...)تكرر الأوامر المزاحة تحتها.range(end)، وrange(start, end)، وrange(start, end, step)، والنهاية لا تدخل.- معاملات المقارنة:
a == bوa != bوa < bوa > bوa <= bوa >= b، والتعبير الشرطي يرجع True أو False. if ~ elseلاختيار بين مسارين، وif ~ elif ~ elseلشروط متعددة بالتتابع.
ملخص الدرس
تكرر عبارة for الأوامر المزاحة تحتها لكل قيمة تولدها الدالة range، التي تبدأ من البداية وتزيد بمقدار الخطوة ولا تصل إلى النهاية. وتقارن معاملات المقارنة بين القيم فتنتج تعبيرًا شرطيًّا قيمته صحيح أو خطأ. وبعبارات if وelse وelif يختار البرنامج العملية المناسبة حسب الشروط.
أسئلة للتدريب
- اكتب القيم التي تولدها:
range(4)،range(3, 8)،range(2, 12, 4). - اكتب برنامجًا يعرض الأعداد الزوجية من 2 إلى 10 باستخدام
for. - اكتب برنامجًا يحسب مجموع الأعداد من 1 إلى 100 ويعرضه.
- ما ناتج البرنامج في مثال 5 إذا كانت
x = 95؟ وإذا كانتx = 30؟ - اكتب برنامجًا يعرض “Even” إذا كان العدد
nزوجيًّا و”Odd” إذا كان فرديًّا. (تلميح: استخدم%.)