أساسيات بايثون 11: شرح if و else في Python للمبتدئين

أساسيات بايثون 11 شرح if و else في Python للمبتدئين

مرحبًا بك في الدرس الحادي عشر من سلسلة أساسيات بايثون على موقع بايثون العرب.

{getToc} $title={محتوى المقال}

في الدروس السابقة تعلمنا المتغيرات، أنواع البيانات، العوامل، القوائم، المجموعات، والقواميس. واليوم ننتقل إلى مفهوم مهم جدًا في أي لغة برمجة، وهو:

الشروط في Python.

الشروط تجعل البرنامج يتخذ قرارًا. بمعنى آخر، بدل أن ينفذ البرنامج كل الأوامر بنفس الطريقة دائمًا، يمكننا أن نقول له:

إذا حدث شيء معين، نفذ هذا الكود. وإذا لم يحدث، نفذ كودًا آخر.

إذا لم تقرأ درس العوامل، أنصحك بمراجعته أولًا لأن الشروط تعتمد كثيرًا على المقارنات: أساسيات بايثون 6: شرح Operators في Python.

ما معنى الشرط في البرمجة؟

الشرط هو سؤال يطرحه البرنامج، والإجابة تكون غالبًا:

  • True يعني صحيح.
  • False يعني خطأ.

مثال بسيط:

age = 20

print(age > 18)

الناتج:

True

لأن العمر 20 أكبر من 18.

استخدام if في Python

نستخدم if عندما نريد تنفيذ كود معين إذا كان الشرط صحيحًا.

الشكل العام:

if condition:
    # code to run if condition is True

مثال:

age = 20

if age >= 18:
    print("مسموح لك بالدخول")

الناتج:

مسموح لك بالدخول

لأن الشرط age >= 18 صحيح.

أهمية المسافات البادئة Indentation

في بايثون، الكود الذي يتبع الشرط يجب أن يكون داخله مسافة بادئة.

هذا كود صحيح:

age = 20

if age >= 18:
    print("مسموح لك بالدخول")

وهذا كود خاطئ:

age = 20

if age >= 18:
print("مسموح لك بالدخول")

قد يظهر خطأ بسبب عدم وجود المسافة البادئة.

إذا تريد فهم هذا الموضوع أكثر، اقرأ: أساسيات بايثون 3: المسافات البادئة Indentation Syntax.

استخدام else في Python

نستخدم else عندما نريد تنفيذ كود آخر إذا كان الشرط غير صحيح.

مثال:

age = 15

if age >= 18:
    print("مسموح لك بالدخول")
else:
    print("غير مسموح لك بالدخول")

الناتج:

غير مسموح لك بالدخول

لأن العمر 15 أقل من 18.

استخدام elif في Python

أحيانًا لا يكفي أن يكون عندك شرط واحد فقط. قد تحتاج أكثر من احتمال.

هنا نستخدم elif، وهي اختصار لعبارة:

else if

مثال:

grade = 85

if grade >= 90:
    print("ممتاز")
elif grade >= 80:
    print("جيد جدًا")
elif grade >= 70:
    print("جيد")
else:
    print("تحتاج إلى تحسين")

الناتج:

جيد جدًا

لأن الدرجة 85 أكبر من أو تساوي 80، لكنها أقل من 90.

الفرق بين if و elif و else

الأداة متى نستخدمها؟
if لبداية الشرط الأساسي.
elif لإضافة شرط آخر إذا لم يتحقق الشرط السابق.
else لتنفيذ كود عند عدم تحقق أي شرط سابق.

عوامل المقارنة المستخدمة مع الشروط

الشروط غالبًا تستخدم عوامل المقارنة.

العامل المعنى مثال
== يساوي x == 5
!= لا يساوي x != 5
> أكبر من x > 5
< أصغر من x < 5
>= أكبر من أو يساوي x >= 5
<= أصغر من أو يساوي x <= 5

استخدام and في الشروط

نستخدم and عندما نريد أن يكون أكثر من شرط صحيحًا في نفس الوقت.

age = 25
has_ticket = True

if age >= 18 and has_ticket:
    print("يمكنك الدخول")
else:
    print("لا يمكنك الدخول")

هنا يجب أن يكون العمر 18 أو أكثر، ويجب أن يكون لديه تذكرة.

استخدام or في الشروط

نستخدم or عندما يكفي تحقق شرط واحد فقط.

is_admin = False
is_owner = True

if is_admin or is_owner:
    print("لديك صلاحية الدخول")
else:
    print("ليس لديك صلاحية")

بما أن is_owner تساوي True، سيتم تنفيذ الشرط.

استخدام not في الشروط

نستخدم not لعكس النتيجة.

is_logged_in = False

if not is_logged_in:
    print("الرجاء تسجيل الدخول")

لأن المستخدم غير مسجل الدخول، ستظهر الرسالة.

مثال عملي: معرفة هل الرقم زوجي أم فردي

من أشهر أمثلة الشروط في بايثون معرفة هل الرقم زوجي أم فردي.

number = 8

if number % 2 == 0:
    print("الرقم زوجي")
else:
    print("الرقم فردي")

إذا كان باقي قسمة الرقم على 2 يساوي صفر، فالرقم زوجي. وإذا لم يكن كذلك، فالرقم فردي.

شرحنا هذا المثال بالتفصيل هنا: بايثون بالمثال 2: معرفة هل الرقم زوجي أم فردي في Python.

مثال عملي: التحقق من كلمة المرور

لنكتب مثالًا بسيطًا يتحقق من كلمة مرور.

password = "python123"

if password == "python123":
    print("تم تسجيل الدخول بنجاح")
else:
    print("كلمة المرور غير صحيحة")

هذا المثال يوضح كيف يمكن للبرنامج اتخاذ قرار بناءً على قيمة معينة.

مثال مع input

يمكننا جعل المستخدم يكتب عمره بنفسه:

age = int(input("أدخل عمرك: "))

if age >= 18:
    print("أنت بالغ")
else:
    print("أنت أقل من 18 سنة")

لكن انتبه: إذا كتب المستخدم نصًا بدل رقم، قد يظهر خطأ ValueError.

شرحنا هذا الخطأ هنا: مشكلة وحل: حل خطأ ValueError invalid literal for int في Python.

الشروط المتداخلة Nested if

يمكنك وضع شرط داخل شرط آخر، وهذا يسمى Nested if.

age = 20
has_id = True

if age >= 18:
    if has_id:
        print("يمكنك الدخول")
    else:
        print("تحتاج إلى بطاقة هوية")
else:
    print("العمر غير مناسب")

لكن لا تكثر من الشروط المتداخلة بدون حاجة، لأن الكود قد يصبح صعب القراءة.

أخطاء شائعة عند استخدام if و else

الخطأ الأول: نسيان النقطتين

هذا خطأ:

if age >= 18
    print("مسموح")

الصحيح:

if age >= 18:
    print("مسموح")

الخطأ الثاني: استخدام = بدل ==

هذا خطأ:

if password = "123":

الصحيح:

if password == "123":

لأن = للإسناد، أما == للمقارنة.

الخطأ الثالث: نسيان المسافة البادئة

هذا خطأ:

if age >= 18:
print("مسموح")

الصحيح:

if age >= 18:
    print("مسموح")

متى نستخدم الشروط؟

نستخدم الشروط في حالات كثيرة جدًا، مثل:

  • التحقق من عمر المستخدم.
  • معرفة هل الرقم زوجي أم فردي.
  • التحقق من كلمة المرور.
  • عرض رسالة مختلفة حسب النتيجة.
  • تنفيذ كود معين إذا كان المستخدم مسجل الدخول.
  • تحديد درجة الطالب حسب العلامة.

روابط مفيدة

لفهم العوامل المستخدمة في الشروط، اقرأ: أساسيات بايثون 6: شرح Operators في Python.

ولفهم أنواع البيانات والقيم المنطقية، اقرأ: أساسيات بايثون 7: أنواع البيانات في Python.

ويمكنك الرجوع إلى توثيق بايثون الرسمي حول الشروط: Python if Statements Documentation.

مقالات مقترحة من بايثون العرب

خلاصة الدرس

في هذا الدرس تعلمنا شرح if و else في Python، وفهمنا كيف يستخدم البرنامج الشروط لاتخاذ القرارات.

تعلمنا:

  • ما معنى الشرط في البرمجة.
  • كيف نستخدم if.
  • كيف نستخدم else.
  • كيف نستخدم elif لأكثر من احتمال.
  • أهم عوامل المقارنة.
  • استخدام and و or و not.
  • أشهر الأخطاء التي تحدث مع الشروط.

الشروط من أهم أساسيات بايثون، وستستخدمها في أغلب البرامج التي تكتبها.

تمرين بسيط لك

اكتب برنامجًا يطلب من المستخدم إدخال درجته، ثم يطبع:

  • ممتاز إذا كانت الدرجة 90 أو أكثر.
  • جيد جدًا إذا كانت الدرجة 80 أو أكثر.
  • جيد إذا كانت الدرجة 70 أو أكثر.
  • تحتاج إلى تحسين إذا كانت أقل من 70.

ابدأ بهذا المثال:

grade = int(input("أدخل درجتك: "))

if grade >= 90:
    print("ممتاز")
elif grade >= 80:
    print("جيد جدًا")
elif grade >= 70:
    print("جيد")
else:
    print("تحتاج إلى تحسين")

في الدرس القادم

في الدرس القادم من سلسلة أساسيات بايثون سنتعلم:

شرح Loops في Python للمبتدئين

وسنفهم كيف نكرر تنفيذ الكود باستخدام الحلقات.

إرسال تعليق

أحدث أقدم