في الدرس السابق، تعلمنا كيف نخزن البيانات في متغيرات ونتعامل مع أنواعها المختلفة. لكن البرنامج الذي لا يتخذ قرارات هو مجرد سطر أوامر ثابت. تخيل أنك تبني تطبيقاً لتسجيل الدخول: كيف ستتحقق من صحة كلمة المرور؟ أو تطبيقاً للطقس: كيف ستقرر عرض رسالة "الجو بارد" إذا كانت الحرارة أقل من 15 درجة؟
هنا يأتي دور الشروط (Conditions). الشروط تسمح لبرنامجك باتخاذ قرارات بناءً على قيم المتغيرات أو مدخلات المستخدم. بدونها، سيكون الكود الخاص بك جامداً وغير قادر على التفاعل مع العالم الحقيقي. في هذا الدرس، سنتعلم كيف نجعل برنامجنا "يفكر" ويتخذ قرارات منطقية.
الجملة الشرطية الأساسية في بايثون هي if. تكتبها بالشكل التالي:
if condition:
# الكود الذي سيتم تنفيذه إذا كان الشرط صحيحاً
لاحظ أن المسافة البادئة (Indentation) مهمة جداً في بايثون. أي كود تريد تنفيذه داخل الشرط يجب أن يكون مسبوقاً بـ 4 مسافات أو علامة tab واحدة. هذه هي الطريقة التي تعرف بها بايثون أي جزء من الكود يتبع الشرط.
لنفترض أننا نريد كتابة برنامج يتحقق من عمر المستخدم ويقرر إذا كان يمكنه الدخول إلى موقع مخصص للبالغين.
# طلب العمر من المستخدم
age = int(input("أدخل عمرك: "))
# الشرط
if age >= 18:
print("مرحباً بك! يمكنك الدخول.")
print("تذكر أن تتصفح بمسؤولية.")
print("هذه الرسالة تظهر دائماً خارج الشرط.")
الشرح:
input() ترجع نصاً، لذلك نستخدم int() لتحويله إلى رقم صحيح.ماذا لو كان العمر أقل من 18؟ في المثال السابق، لن يحدث شيء. لمعالجة هذه الحالة، نستخدم else.
age = int(input("أدخل عمرك: "))
if age >= 18:
print("مرحباً بك! يمكنك الدخول.")
else:
print("عذراً، هذا الموقع مخصص لمن هم فوق 18 عاماً.")
print("نتمنى لك يوماً سعيداً.")
الآن، البرنامج لديه مساران: واحد للقبول، وآخر للرفض. هذا هو التحكم الأساسي في تدفق البرنامج.
في الحياة الواقعية، القرارات ليست دائماً ثنائية (صح/خطأ). أحياناً تحتاج إلى عدة خيارات. هنا يأتي دور elif (اختصار لـ else if).
مثال: نظام تقييم الطلاب بناءً على درجاتهم.
score = int(input("أدخل درجتك: "))
if score >= 90:
grade = "A"
print("ممتاز! استمر.")
elif score >= 80:
grade = "B"
print("جيد جداً.")
elif score >= 70:
grade = "C"
print("جيد.")
elif score >= 60:
grade = "D"
print("مقبول.")
else:
grade = "F"
print("راسب. حاول مرة أخرى.")
print(f"تقديرك هو: {grade}")
ملاحظات مهمة:
elif، لكن else اختياري ويوضع في النهاية.في كثير من الأحيان، تحتاج إلى دمج أكثر من شرط في جملة واحدة. لهذا نستخدم العوامل المنطقية.
مثال عملي: التحقق من صلاحية الدخول إلى نادي رياضي.
age = int(input("أدخل عمرك: "))
has_membership = input("هل لديك عضوية؟ (نعم/لا): ")
# استخدام and: يجب أن يكون العمر فوق 16 ولديه عضوية
if age >= 16 and has_membership == "نعم":
print("أهلاً بك في النادي!")
else:
print("عذراً، لا يمكنك الدخول.")
# استخدام or: مثال آخر - الدخول مجاني للأطفال تحت 5 سنوات أو لكبار السن فوق 65
if age < 5 or age > 65:
print("الدخول مجاني لك.")
else:
print("رسوم الدخول: 10 دولار.")
= تستخدم لتعيين قيمة، بينما == تستخدم للمقارنة.int().عند كتابة الشروط، حاول أن تجعلها بسيطة ومباشرة. إذا أصبح الشرط طويلاً جداً، فكر في تقسيمه إلى متغيرات منفصلة. مثلاً:
# بدلاً من هذا:
if age >= 18 and has_id == "نعم" and not is_blacklisted:
# استخدم هذا:
is_eligible = age >= 18 and has_id == "نعم" and not is_blacklisted
if is_eligible:
هذا يجعل الكود أكثر قابلية للقراءة والفهم.
حان وقت التطبيق! اكتب برنامجاً يقوم بما يلي:
تلميحات:
input() لجمع البيانات.if و elif و else للتحقق من العملية.int أو float.حاول كتابة الكود بنفسك قبل النظر إلى الحل أدناه.
# طلب الأرقام من المستخدم
num1 = float(input("أدخل الرقم الأول: "))
num2 = float(input("أدخل الرقم الثاني: "))
operation = input("أدخل العملية (+, -, *, /): ")
# تنفيذ العملية بناءً على الشرط
if operation == "+":
result = num1 + num2
print(f"النتيجة: {num1} + {num2} = {result}")
elif operation == "-":
result = num1 - num2
print(f"النتيجة: {num1} - {num2} = {result}")
elif operation == "*":
result = num1 * num2
print(f"النتيجة: {num1} * {num2} = {result}")
elif operation == "/":
if num2 == 0:
print("خطأ: لا يمكن القسمة على صفر!")
else:
result = num1 / num2
print(f"النتيجة: {num1} / {num2} = {result}")
else:
print("عملية غير صالحة. الرجاء إدخال +, -, *, / فقط.")
في هذا الدرس، تعلمنا كيف نجعل برامجنا تتخذ قرارات باستخدام الجمل الشرطية. أتقنت استخدام if و elif و else، وتعلمت كيفية دمج الشروط باستخدام العوامل المنطقية. هذه المهارة أساسية لأي برنامج تفاعلي. في الدرس القادم، سنتعلم كيف نكرر تنفيذ الأوامر باستخدام الحلقات (Loops)، مما سيمكننا من معالجة كميات كبيرة من البيانات بكفاءة.
جاري تحميل التقييمات...