مرحبًا بك في الدرس الحادي عشر من سلسلة أساسيات بايثون على موقع بايثون العرب.
{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.
مقالات مقترحة من بايثون العرب
- بايثون بالمثال 2: معرفة هل الرقم زوجي أم فردي في Python
- مشكلة وحل: حل خطأ ValueError invalid literal for int في Python
- أساسيات بايثون 10: شرح Dictionaries في Python للمبتدئين
خلاصة الدرس
في هذا الدرس تعلمنا شرح 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 للمبتدئين
وسنفهم كيف نكرر تنفيذ الكود باستخدام الحلقات.