Python / اتخاذ القرار

الشروط المتداخلة والعدّ

اكتب جملة if داخل جملة if، واعرف لمن تتبع كل else من الإزاحة، وزِد عدّادًا داخل الشرط. منهج البكالوريا

بعض القرارات تأتي على مراحل: أولًا نتأكد أن الفرن ساخن بما يكفي، وبعد ذلك فقط نسأل هل وقت الطهي كافٍ. لذلك نكتب جملة if داخل جملة if.

Python
temperature = 180
cook_time = 12
if temperature >= 170:
    print("Heating temperature OK")
    if cook_time >= 12:
        print("Cooking successful")
وحدة التحكم
Heating temperature OK
Cooking successful

الشرط الداخلي لا يُفحص أصلًا إلا إذا تحقق الشرط الخارجي. والأوامر التابعة للشرط الداخلي تُزاح مرتين (8 مسافات).

else داخل if

داخل if الخارجية يمكن كتابة if و elif و else كاملة. الإزاحة هي التي تحدد لمن تتبع كل else:

Python
weather = "sunny"
team = "Green Team"
if weather == "sunny":
    if team == "Red Team":
        print("Destination: the farm")
    elif team == "Blue Team":
        print("Destination: the science museum")
    else:
        print("Destination: the aquarium")
else:
    print("Field trip canceled")
وحدة التحكم
Destination: the aquarium
الجزءالإزاحةيتبع
else الداخلية4 مسافاتif team == ...
else الخارجيةبدون إزاحةif weather == ...
خطأ شائع: كتابة else الداخلية بدون إزاحة. عندها تصبح تابعة لـ if الخارجية ويتغير معنى البرنامج تمامًا.

العدّ داخل الشرط

العدّاد متغير يبدأ من 0، ونزيده بمقدار 1 كلما تحقق شرط: count = count + 1. ولطباعته مع نص نحوّله بـ str():

Python
bug = 45
rare_count = 0
if bug >= 45:
    print("Got a Rare Beetle!")
    rare_count = rare_count + 1
    print("Rare Beetle Counter:" + str(rare_count))
وحدة التحكم
Got a Rare Beetle!
Rare Beetle Counter:1

يمكن أن نفحص أكثر من قيمة بجمل if منفصلة، فيعدّ العدّاد كل قيمة تحقق الشرط:

Python
passed = 0
math = 72
science = 45
english = 90
if math >= 50:
    passed = passed + 1
if science >= 50:
    passed = passed + 1
if english >= 50:
    passed = passed + 1
print("Subjects passed: " + str(passed))
وحدة التحكم
Subjects passed: 2

تدريبات

1عدّل البرنامجتدريب المنهج

داخل الشرط أضف: إذا كانت cook_time تساوي 12 أو أكثر اطبع Cooking successful.

Python Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
temperature = 180
cook_time = 12
if temperature >= 170:
    print("Heating temperature OK")
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
2اكتب البرنامجتدريب المنهج

أسند 90 إلى score و 1 إلى rank. إذا كانت score تساوي 85 أو أكثر اطبع Certification passed، وداخل هذا الشرط: إذا كانت rank تساوي 1 اطبع Trophy earned.

Python Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
3أكمل الفراغتدريب المنهج

إذا لم يكن المتجر مفتوحًا (والجو مشمس) اطبع Buy snacks at the convenience store and go stargazing.

Python Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
weather = "sunny"
shop = "closed"
if weather == "sunny":
    if shop == "open":
        print("Buy a star chart and go stargazing")
    ___
        ___
else:
    print("Planetarium DVD at home")
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
4عدّل البرنامجتدريب المنهج

داخل شرط الجو المشمس: إذا كان الفريق "Red Team" اطبع Destination: the farm، وإذا كان "Blue Team" اطبع Destination: the science museum، وإلا اطبع Destination: the candy factory.

Python Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
weather = "sunny"
team = "Green Team"
if weather == "sunny":
    if team == "Red Team":
        print("Destination: the farm")
else:
    print("Field trip canceled")
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
5عدّل البرنامجتدريب المنهج

إذا كانت bug تساوي 90 أو أكثر: اطبع Super Rare Beetle Get!، وزد super_rare_count بمقدار 1، ثم اطبع "Super Rare Beetle Counter:" + str(super_rare_count).

Python Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
bug = 95
super_rare_count = 0
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
6اكتب البرنامجتدريب إضافي

نتيجة طالب: total = 380 و absent_days = 4. إذا كان المجموع 250 أو أكثر: إذا كانت أيام الغياب 10 أو أقل اطبع Passed، وإلا اطبع Passed, but too many absences. وإذا كان المجموع أقل من 250 اطبع Second round exam.

Python Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
total = 380
absent_days = 4
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
7اكتب البرنامجتدريب إضافي

ثلاث مباريات للفريق: match1 = "win" و match2 = "loss" و match3 = "win". ابدأ wins = 0، وزده بمقدار 1 لكل مباراة قيمتها "win" (ثلاث جمل if)، ثم اطبع Wins: 2.

Python Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
match1 = "win"
match2 = "loss"
match3 = "win"
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.

النقاط الرئيسية

  • if داخل if: الشرط الداخلي يُفحص فقط إذا تحقق الخارجي.
  • الإزاحة تحدد لأي if تتبع كل else أو elif.
  • العدّاد يبدأ من 0 ويزيد بـ count = count + 1 داخل الشرط، ونطبعه مع نص بـ str().