› كل الدروس
الدرس 3 من 12 28 دقيقة

Conditions والقرارات

خلّي program يختار بنفسه

الفكرة باختصار

condition بيخلّي program يفحص حاجة، وعلى أساسها ينفّذ code معيّن ويسيب التاني.

بعد الدرس ده هتعرف

  • تكتب if و elif و else صح
  • تفهم ليه فرع واحد بس هو اللي بيشتغل
  • تركّب conditions مع بعض بـ and و or
  • تحمي program بتاعك من مدخلات غلط بـ try/except
1

شوف الفكرة الأول

قبل أي code — افهم بيحصل إيه

2

الشرح

فكرة واحدة في كل خطوة

1

المقارنة بتطلّع صح أو غلط

قبل condition، لازم تفهم إن المقارنة نفسها value. 5 > 3 value بتاعتها True.

علامات المقارنة:
== يساوي · != لا يساوي · > أكبر · < أصغر · >= أكبر أو يساوي · <= أصغر أو يساوي

أهم نقطة في الدرس: = معناها «حُط value»، و == معناها «قارن». دي أكتر غلطة بتحصل للمبتدئين.

Python
1print(5 > 3)
2print(5 == 3)
3print(5 != 3)
الناتج
True
False
True
2

if — نفّذ لو condition صح

شكل if ثابت ومفيش فيه اجتهاد:

1. كلمة if وبعدها condition
2. نقطتين : في آخر السطر
3. السطر اللي بعده مُزاح 4 مسافات لجوّه

المسافات دي مش ديكور — دي اللي بتقول لـ Python إيه اللي جوّه condition وإيه اللي بره. في لغات تانية بيستخدموا أقواس {}، Python بتستخدم المسافة.

Python
1age = 20
2if age >= 18:
3 print("Access granted")
4print("program done")
الناتج
Access granted
program done
3

else — أو اعمل كده

else هي «غير كده». ملهاش condition، لأنها بتشتغل لما condition اللي فوق يطلع غلط.

فرع واحد بس هو اللي هيشتغل. دايمًا.

Python
1grade = 48
2if grade >= 60:
3 print("Passed")
4else:
5 print("Needs retake")
الناتج
Needs retake
4

elif — أكتر من احتمال

لما يكون عندك أكتر من حالتين، استخدم elif (اختصار else if).

Python بتفحص conditions من فوق لتحت، وأول condition يطلع صح بتنفّذه وتسيب الباقي خالص.

الترتيب مهم جدًا هنا. لو حطيت grade >= 60 قبل grade >= 85، الطالب اللي جايب 90 هيتصنّف «جيد» لأن condition الأول اشتغل الأول.

Python
1grade = 88
2if grade >= 85:
3 print("Excellent")
4elif grade >= 75:
5 print("Very good")
6elif grade >= 60:
7 print("Good")
8else:
9 print("Failed")
الناتج
Excellent
5

and و or — اربط conditions

and — الاتنين لازم يكونوا صح
or — واحد منهم يكفي
not — اقلب النتيجة

مثال: عشان تعدّي، لازم تكون ناجح في النظري و العملي — دي and. لكن عشان تاخد إعفاء، يكفي أول الدفعة أو حاصل على منحة — دي or.

Python
1theory = 70
2practical = 80
3if theory >= 60 and practical >= 60:
4 print("Passed the course")
5else:
6 print("One part failed")
الناتج
Passed the course
6

condition جوّه condition

ينفع تحط if جوّه if. كل مستوى بياخد 4 مسافات زيادة.

بس خد بالك: كل ما تعشّش أكتر، كل ما code يبقى أصعب في القراية. لو لقيت نفسك عند 3 مستويات، غالبًا فيه طريقة أبسط بـ and.

Python
1age = 20
2has_id = True
3if age >= 18:
4 if has_id:
5 print("Come in")
6 else:
7 print("Show your ID")
8else:
9 print("Age not allowed")
الناتج
Come in
7

try / except — امنع program إنه يقع

لو المستخدم كتب «خمسة» بدل «5»، int() هتطلّع error و program هيقف فجأة.

الحل: حُط code الخطر جوّه try، وحُط خطة بديلة جوّه except.

كده لو حصل error، program ما بيقعش — بينفّذ الخطة البديلة ويكمّل.

Python
1value = "not a number"
2try:
3 age = int(value)
4 print(f"Your age is {age}")
5except ValueError:
6 print("Please type a valid number")
الناتج
Please type a valid number
8

Python بتعتبر إيه «غلط»؟

condition مش لازم يكون مقارنة. أي value لوحدها ليها معنى صح/غلط:

غلط (False): الصفر · string الفاضي "" · list الفاضية [] · dictionary الفاضي {} · None

صح (True): أي حاجة تانية — أي رقم مش صفر، أي string فيه حرف.

عشان كده if name: معناها «لو الاسم مش فاضي» — ودي طريقة مختصرة بيستخدمها الكل.

Python
1name = ""
2if name:
3 print("Name exists")
4else:
5 print("Name is empty")
6print(bool(0), bool(5), bool([]))
الناتج
Name is empty
False True False
9

in — condition العضوية

in بتسأل سؤال واحد: هل الحاجة دي موجودة جوّه دي؟ وبترجّع True/False.

بتشتغل مع strings (هل الجزء ده موجود؟)، ومع lists (هل item ده موجود؟)، ومع dictionaries (هل key ده موجود؟).

وفيه عكسها: not in.

Python
1email = "ali@borg.edu.eg"
2allowed = ["IT", "CS"]
3if "@" in email and "IT" in allowed:
4 print("Data is valid")
5if "gmail" not in email:
6 print("University email")
الناتج
Data is valid
University email
10

condition في سطر واحد

لما يكون condition بسيط والنتيجة value واحدة، تقدر تكتبه في سطر:

result = "value" if condition else "other value"

اقراها من النص: خد الأولى لو condition صح، وإلا خد التانية.

استخدمها للحاجات البسيطة بس. لو فيه تلات حالات أو code طويل، if العادي أوضح — والوضوح أهم من القِصَر.

Python
1temp = 38.4
2state = "fever" if temp > 37.5 else "normal"
3print(state)
4print("big" if 10 > 3 else "small")
الناتج
fever
big
3

وده كمان شوفه متحرك

الفكرة دي أسهل ما تتشاف من ما تتقرا

4

أمثلة محلولة

شوف إزاي بنفكّر قبل ما نكتب

مثال 1

زوجي ولا فردي

المطلوب: اكتب code يقول الرقم زوجي ولا فردي.

نفكّر إزاي؟

  1. 1الرقم زوجي لو باقي قسمته على 2 يساوي صفر
  2. 2يبقى condition n % 2 == 0
  3. 3حالتين بس → if و else يكفوا
مثال 2

أكبر رقم في تلاتة

المطلوب: عندك تلات أرقام. اطبع الأكبر فيهم من غير ما تستخدم max.

نفكّر إزاي؟

  1. 1أقارن الأول باتنين — لو أكبر منهم يبقى هو
  2. 2لو لأ، أقارن التاني بالتالت
  3. 3لو الاتنين فشلوا، يبقى التالت هو الأكبر
مثال 3

تقدير الطالب

المطلوب: حوّل الدرجة لتقدير: 85+ امتياز، 75+ جيد جدًا، 65+ جيد، 50+ مقبول، غير كده راسب.

نفكّر إزاي؟

  1. 1خمس حالات → if + تلات elif + else
  2. 2الترتيب من الأكبر للأصغر — ده condition نجاح code
  3. 3أول condition يتحقق بيوقّف الباقي
مثال 4

condition مركّب: دخول المعمل

المطلوب: الدخول مسموح لو الطالب مسجّل و معاه كارنيه، أو لو هو دكتور.

نفكّر إزاي؟

  1. 1condition الأول جزئين لازم يتحققوا سوا → and
  2. 2condition التاني بديل كامل → or
  3. 3الأقواس بتوضّح مين مع مين
مثال 5

حماية من القسمة على صفر

المطلوب: احسب المتوسط، بس من غير ما program يقع لو العدد صفر.

نفكّر إزاي؟

  1. 1القسمة على صفر بتطلّع ZeroDivisionError
  2. 2أقدر أمنعها بـ condition قبل الحساب
  3. 3condition أوضح من try في الحالة دي لأن الحالة متوقّعة
مثال 6

try/except مع تحويل الأرقام

المطلوب: جالك value من المستخدم. حوّلها لرقم، ولو مش رقم اعتبرها صفر.

نفكّر إزاي؟

  1. 1int() بتطلّع ValueError لو string مش رقم
  2. 2code الخطر يتحط جوّه try
  3. 3الخطة البديلة في except — نحط صفر ونكمّل
5

ورقة مراجعة

ارجعلها وإنت بتحل — مش محتاج تحفظها

المقارنات و conditions
الحاجةمعناهامثالالناتج
==هل الاتنين متساويين؟5 == 5True
!=هل مختلفين؟5 != 3True
> <أكبر / أصغر3 > 7False
>= <=أكبر أو يساوي / أصغر أو يساوي5 >= 5True
andالاتنين لازم صحTrue and FalseFalse
orواحد يكفيTrue or FalseTrue
notاقلب النتيجةnot TrueFalse
inهل موجود جوّه؟"a" in "cat"True
if/elif/elseفرع واحد بس هو اللي يشتغلif x > 0: ...حسب condition
try/exceptخطة بديلة لو حصل errorexcept ValueError:program ما يقعش
6

القرار وهو بيتاخد

شوفه بيشتغل سطر سطر

شغّل code خطوة خطوة

شوف كل condition وهو بيتفحص. الأخضر معناه condition طلع صح، والأحمر معناه غلط وبنعدّيه. لاحظ إن فرع واحد بس هو اللي بيشتغل.

1bmi = 26.4◂
2if bmi >= 30:
3 state = "obese"
4elif bmi >= 25:
5 state = "overweight"
6elif bmi >= 18.5:
7 state = "normal weight"
8else:
9 state = "underweight"
10print(f"BMI {bmi} → {state}")
الذاكرة
bmi26.4
الناتج على الشاشة
لسه ما اتطبعش حاجة…
1

حطّينا 26.4 جوّه bmi

خطوة 16 خطوات
Python الحقيقيCPython 3.14

المحاكاة فوق بتشرحلك خطوة خطوة. دوس هنا عشان تشغّل نفس code على Python حقيقي وتتأكد بنفسك.
أول مرة هيحمّل ~11 ميجا — بعد كده بيبقى فوري.

7

غلطات بتحصل كتير

شوفها هنا بدل ما تضيّع ساعة فيها

غلط
if x = 5:
صح
if x == 5:

علامة واحدة = معناها «حُط». للمقارنة لازم علامتين ==.

غلط
if x > 5
    print("big")
صح
if x > 5:
    print("big")

نسيت النقطتين : في آخر سطر condition.

غلط
if x > 5:
print("big")
صح
if x > 5:
    print("big")

السطر اللي جوّه condition لازم يبقى مُزاح 4 مسافات، وإلا Python هتعتبره بره condition.

غلط
if 0 < x and x < 10 or y > 5:
صح
if (0 < x and x < 10) or y > 5:

من غير أقواس الترتيب ممكن يفاجئك. الأقواس بتوضّح قصدك.

8

مسائل سريعة

فكّر الأول — بعدين اكشف

1

إيه الناتج؟

1print(5 >= 5)
2

إيه الناتج؟

1print(not (3 > 7))
3

إيه الناتج؟

1print(True and False or True)
4

إيه اللي هيتطبع؟

1x = 0
2if x:
3 print("inside")
4else:
5 print("outside")
5

كام سطر هيتطبع؟

1n = 10
2if n > 5:
3 print("A")
4if n > 8:
5 print("B")
6

وهنا كام سطر؟

1n = 10
2if n > 5:
3 print("A")
4elif n > 8:
5 print("B")
7

فين الغلط؟

1x = 5
2if x == 5:
3 print("five")
8

هيطبع إيه؟

1temp = 37.5
2if temp > 37.5:
3 print("fever")
4else:
5 print("normal")
9

جرّب بنفسك

اكتب code — ده الجزء اللي بيعلّم فعلاً

جرّب بنفسك

اكتب program ياخد درجة حرارة ويطبع: فوق 37.5 «سخونية»، من 36 لـ 37.5 «طبيعي»، أقل من 36 «منخفضة».

شغّل code خطوة خطوة
1temp = 38.2◂
2# write the condition here
3
الذاكرة
temp38.2
الناتج على الشاشة
لسه ما اتطبعش حاجة…
1

حطّينا 38.2 جوّه temp

خطوة 1خطوتين
Python الحقيقيCPython 3.14

المحاكاة فوق بتشرحلك خطوة خطوة. دوس هنا عشان تشغّل نفس code على Python حقيقي وتتأكد بنفسك.
أول مرة هيحمّل ~11 ميجا — بعد كده بيبقى فوري.

تمرين إضافي 2
جرّب بنفسك

عندك سنة. اطبع «سنة كبيسة» لو بتقبل القسمة على 4، و«سنة عادية» لو لأ.

شغّل code خطوة خطوة
1year = 2026◂
2# write the condition here
3
الذاكرة
year2026
الناتج على الشاشة
لسه ما اتطبعش حاجة…
1

حطّينا 2026 جوّه year

خطوة 1خطوتين
Python الحقيقيCPython 3.14

المحاكاة فوق بتشرحلك خطوة خطوة. دوس هنا عشان تشغّل نفس code على Python حقيقي وتتأكد بنفسك.
أول مرة هيحمّل ~11 ميجا — بعد كده بيبقى فوري.

تمرين إضافي 3
جرّب بنفسك

محل بيعمل خصم: فوق 1000 جنيه خصم 20%، فوق 500 خصم 10%، غير كده مفيش خصم. اطبع السعر النهائي.

شغّل code خطوة خطوة
1total = 1200◂
2# compute the discount
3
الذاكرة
total1200
الناتج على الشاشة
لسه ما اتطبعش حاجة…
1

حطّينا 1200 جوّه total

خطوة 1خطوتين
Python الحقيقيCPython 3.14

المحاكاة فوق بتشرحلك خطوة خطوة. دوس هنا عشان تشغّل نفس code على Python حقيقي وتتأكد بنفسك.
أول مرة هيحمّل ~11 ميجا — بعد كده بيبقى فوري.

تمرين إضافي 4
جرّب بنفسك

اكتب code يفحص كلمة سر: لازم تكون 8 حروف أو أكتر و فيها رقم على الأقل. استخدم len() و any بالطريقة اليدوي بـ loop.

شغّل code خطوة خطوة
1password = "borg2026"◂
2has_digit = False
3# write here
4
الذاكرة
password'borg2026'
الناتج على الشاشة
لسه ما اتطبعش حاجة…
1

حطّينا 'borg2026' جوّه password

خطوة 13 خطوات
Python الحقيقيCPython 3.14

المحاكاة فوق بتشرحلك خطوة خطوة. دوس هنا عشان تشغّل نفس code على Python حقيقي وتتأكد بنفسك.
أول مرة هيحمّل ~11 ميجا — بعد كده بيبقى فوري.

10

اختبر نفسك

كل إجابة معاها السبب

1

إيه اللي هيتطبع؟

1x = 0
2if x:
3 print("inside")
4else:
5 print("outside")
2

كام سطر هيتطبع؟

1n = 10
2if n > 5:
3 print("A")
4if n > 8:
5 print("B")
3

إيه ناتج condition ده؟

1print("a" in "cat")
4

إيه اللي هيتطبع؟

1x = 10
2if x > 5:
3 print("A")
4elif x > 8:
5 print("B")
6else:
7 print("C")
5

إيه الفرق بين = و ==؟

6

إيه ناتج condition ده؟

1print(5 > 3 and 2 > 7)
7

ليه بنستخدم try / except؟

خلصت الدرس؟

علّم عليه عشان تعرف إنت وصلت لفين لما ترجع تاني.

الدرس اللي بعده: Functions ←