Python البيانات الشرطية: IF…Else، ELIF & Switch Case
⚡ ملخص ذكي
Python تُوجّه العبارات الشرطية مسار البرنامج من خلال تنفيذ كتل برمجية محددة فقط عندما تكون قيمة التعبيرات المنطقية صحيحة. وتشمل هذه العبارات if وelse وelif وif المتداخلة والمعامل الثلاثي ومطابقة الأنماط الهيكلية للحصول على منطق نظيف وقائم على اتخاذ القرارات.

ما هي العبارات الشرطية في Python?
الجمل الشرطية في Python تُجري هذه العمليات حسابات أو إجراءات مختلفة بناءً على ما إذا كان قيد منطقي معين صحيحًا أم خاطئًا. فهي تُمكّن البرنامج من اتخاذ قرارات واتباع مسارات مختلفة بدلاً من تشغيل كل سطر بالتسلسل. Pythonيتم التعامل مع العبارات الشرطية بواسطة if العبارة وما يرافقها: else و elif و if المتداخلة.
ما هي تفاصيل Python إذا بيان؟
استخدم Python إذا البيان تُستخدم هذه العملية في عمليات اتخاذ القرار. تحتوي على جزء من التعليمات البرمجية التي تُنفذ فقط عندما يكون الشرط المُحدد في عبارة if صحيحًا. إذا كان الشرط خاطئًا، تُنفذ عبارة else الاختيارية بدلاً من ذلك، والتي تحتوي على التعليمات البرمجية الخاصة بشرط else. عندما تريد التصرف بناءً على شرط واحد بينما يكون شرط آخر غير صحيح، فإنك تستخدم Python بيان إذا كان آخر.
Python إذا بناء جملة البيان:
if expression:
statement
else:
statement
Python إذا…مخطط انسيابي آخر
يوضح المخطط الانسيابي أعلاه كيفية انتقال التحكم عبر عبارة if-else. دعونا نرى مثالاً على ذلك. Python تطبيق عبارة if-else عمليًا:
# Example file for working with conditional statements
def main():
x, y = 2, 8
if(x < y):
st = "x is less than y"
print(st)
if __name__ == "__main__":
main()
- Code خط 3: نُعرّف متغيرين x و y = 2 و 8.
- Code خط 4: تتحقق عبارة if من الشرط x < y، وهو صواب في هذه الحالة.
- Code خط 5: تم تعيين المتغير st إلى "x أقل من y".
- Code خط 6: يقوم السطر print(st) بإخراج قيمة st، وهي "x أقل من y".
ماذا يحدث عندما لا يتحقق شرط "إذا"؟
بالاستناد إلى المثال السابق، دعونا نرى ما يحدث عندما يكون شرط if في Python لا يتحقق الشرط. عندما يكون الشرط خاطئًا ولا يوجد فرع else، يتم تخطي الكود المُزاح بالكامل.
# Example file for working with conditional statements
def main():
x, y = 8, 4
if(x < y):
st = "x is less than y"
print(st)
if __name__ == "__main__":
main()
- Code خط 3: نُعرّف متغيرين x و y = 8 و 4.
- Code خط 4: تتحقق عبارة if من الشرط x < y، وهو خطأ في هذه الحالة.
- Code خط 5: المتغير st هو لا تم ضبطه على "x أقل من y."
- Code خط 6: يحاول السطر print(st) طباعة متغير لم يتم تعريفه مطلقًا، لذا Python يثير أ الاسم خطأ.
كيفية استخدام شرط "else"
لتجنب الخطأ المذكور أعلاه، يمكنك إضافة شرط "else". يُستخدم شرط "else" عندما يتعين عليك تقييم عبارة بناءً على عبارة أخرى. إذا كان أحد الشرطين خاطئًا، فإن كتلة "else" توفر مسارًا بديلًا بحيث يُنتج البرنامج نتيجةً.
على سبيل المثال:
# Example file for working with conditional statements
def main():
x, y = 8, 4
if(x < y):
st = "x is less than y"
else:
st = "x is greater than y"
print(st)
if __name__ == "__main__":
main()
- Code خط 3: نُعرّف متغيرين x و y = 8 و 4.
- Code خط 4: تتحقق عبارة if من الشرط x < y، وهو خطأ في هذه الحالة.
- Code خط 6: ينتقل مسار التحكم في البرنامج إلى شرط else.
- Code خط 7: تم تعيين المتغير st إلى "x هو أكبر من ذ."
- Code خط 8: يقوم السطر print(st) بإخراج قيمة st، وهي "x أكبر من y".
عندما لا يعمل شرط "else"
لن يُعطيك شرط "else" دائمًا النتيجة المرجوة. فقد يُخرج مُخرجات خاطئة عند وجود خلل في منطق البرنامج. يحدث هذا عادةً عند الحاجة إلى تبرير أكثر من عبارتين أو شرطين في البرنامج. سيساعدك مثال على فهم هذا المفهوم.
هنا، المتغيران متطابقان (8، 8)، ومع ذلك فإن مخرجات البرنامج هي "س أكبر من ص" وهو خطأيحدث هذا لأن البرنامج يتحقق من الشرط الأول (شرط if)، وعندما يفشل، يطبع الشرط الثاني (شرط else) كقيمة افتراضية. في الخطوة التالية، سنرى كيفية تصحيح هذا الخطأ.
# Example file for working with conditional statements
def main():
x, y = 8, 8
if(x < y):
st = "x is less than y"
else:
st = "x is greater than y"
print(st)
if __name__ == "__main__":
main()
كيفية استخدام شرط "elif"
لتصحيح الخطأ السابق الناتج عن شرط else، يمكننا استخدام أليف باستخدام عبارة elif، تُخبر البرنامج باختبار احتمال ثالث عندما يكون الشرط الأول خاطئًا. يمكنك ربط عدة عبارات elif للتحقق من الاحتمالات الرابعة والخامسة وما بعدها في التعليمات البرمجية.
على سبيل المثال:
# Example file for working with conditional statements
def main():
x, y = 8, 8
if(x < y):
st = "x is less than y"
elif(x == y):
st = "x is same as y"
else:
st = "x is greater than y"
print(st)
if __name__ == "__main__":
main()
- Code خط 3: نُعرّف متغيرين x و y = 8 و 8.
- Code خط 4: تتحقق عبارة if من الشرط x < y، وهو خطأ في هذه الحالة.
- Code خط 6: ينتقل مسار التحكم في البرنامج إلى شرط elif. يتحقق هذا الشرط مما إذا كان x يساوي y، وهو ما يكون صحيحًا.
- Code خط 7: تم تعيين المتغير st إلى "x هو نفس ذ. "
- Code خط 10: يخرج التحكم في البرنامج من عبارة if (ولن يصل إلى عبارة else) ويطبع st. الناتج هو "x هو نفسه y"، وهو صحيح.
كيفية تنفيذ عبارة شرطية بأقل قدر من التعليمات البرمجية Code
الآن بعد أن أصبح بإمكانك كتابة كتل if-elif-else كاملة، Python تتيح لك هذه الخاصية اختصار شرط بسيط في سطر واحد. فبدلاً من كتابة كود منفصل لكل فرع، يمكنك استخدام التعبير الثلاثي (الشرطي).
بناء الجملة:
value_if_true if condition else value_if_false
على سبيل المثال:
def main():
x, y = 10, 8
st = "x is less than y" if (x < y) else "x is greater than or equal to y"
print(st)
if __name__ == "__main__":
main()
- Code خط 2: نُعرّف متغيرين x و y = 10 و 8.
- Code خط 3: يتم تعيين المتغير st إلى "x أقل من y" إذا كان x < y؛ وإلا فإنه يصبح "x أكبر من أو يساوي y". ولأن x > y هنا، فإن st تصبح القيمة الثانية.
- Code خط 4: يطبع قيمة st ويعطي الناتج الصحيح.
Python متداخلة إذا بيان
تضع عبارة if المتداخلة عبارة if داخل عبارة if أخرى، وهو أمر مفيد عندما يعتمد القرار على شرط ثانٍ. يوضح المثال التالي عبارة if متداخلة في Python هذا يحسب السفينةping التكلفة تعتمد على البلد وإجمالي الطلب.
total = 100
# country = "US"
country = "AU"
if country == "US":
if total <= 50:
print("Shipping Cost is $50")
elif total <= 100:
print("Shipping Cost is $25")
elif total <= 150:
print("Shipping Cost is $5")
else:
print("FREE")
if country == "AU":
if total <= 50:
print("Shipping Cost is $100")
else:
print("FREE")
قم بإلغاء التعليق على السطر 2 في الكود أعلاه، وقم بتعليق السطر 3، ثم قم بتشغيل الكود مرة أخرى لمعرفة كيف يتغير الناتج بالنسبة لبلد مختلف.
تبديل بيان الحالة في Python
ما هي عبارة التبديل (Switch statement)؟
عبارة switch هي عبارة تفرع متعددة الاتجاهات تقارن قيمة متغير بالقيم المحددة في عبارات case. لسنوات عديدة، Python لم تكن اللغة تحتوي على عبارة switch، لذلك قام المطورون بتنفيذ نفس السلوك باستخدام Python قاموس رسم خريطةping.
مثال باستخدام خريطة القاموسping:
def switch_example(argument):
switcher = {
0: "This is Case Zero",
1: "This is Case One",
2: "This is Case Two",
}
return switcher.get(argument, "nothing")
if __name__ == "__main__":
argument = 1
print(switch_example(argument))
switch Case With match (Python و3.10 Later)
منذ Python 3.10 (صدر في أكتوبر 2021)، Python يوفر أصليًا حالة المباراة تُعرف هذه العبارة باسم مطابقة الأنماط الهيكلية. وهي توفر بديلاً واضحاً وسهل القراءة لسلاسل elif الطويلة وأسلوب القاموس الموضح أعلاه.
def switch_example(argument):
match argument:
case 0:
return "This is Case Zero"
case 1:
return "This is Case One"
case 2:
return "This is Case Two"
case _:
return "nothing"
if __name__ == "__main__":
print(switch_example(1))
يعمل الرمز السفلي (_) كحالة افتراضية، حيث يطابق أي قيمة لم يتم التعامل معها بواسطة الحالات السابقة، تمامًا مثل القيمة الافتراضية في عبارة switch التقليدية.
مقارنة سريعة بين if و elif و else
استخدم هذه المقارنة لتحديد أي بنية شرطية تناسب منطق اتخاذ القرار الخاص بك.
| ملخص الحساب | الهدف | متى يجب استخدام |
|---|---|---|
| if | يُنفذ كتلة برمجية عندما يكون الشرط صحيحًا | قرار واحد بنعم أو لا |
| إذا...وإلا | يوفر حلاً بديلاً عندما يكون الشرط خاطئًا | نتيجتان متنافيتان |
| أليف | يختبر شروطًا إضافية بالتسلسل | ثلاثة احتمالات أو أكثر |
| متداخلة إذا | يضع شرطًا داخل شرط آخر | قرار يعتمد على شرط ثانٍ |
| ثلاثي | يختصر عبارة if-else في سطر واحد | تعيين قيمة بسيط |
| حالة المباراة | يطابق قيمة مع العديد من الأنماط | التفرع متعدد الاتجاهات (Python 3.10 +) |







