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

أساسيات بايثون الدرس 10: شرح Dictionaries في Python وتخزين البيانات على شكل key و value

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

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

في هذه السلسلة نأخذ مثالًا عمليًا صغيرًا في Python، نشرحه ببساطة، ثم نوضح كيف يمكن تطويره خطوة بخطوة.

في هذا الدرس سنتعلم كيف نكتب برنامجًا بسيطًا يعرف هل الرقم زوجي أم فردي باستخدام بايثون.

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

بطاقة طالب توضح فكرة Dictionary في Python باستخدام مفاتيح name و age و city وقيمها

إذا لم تكن تعرف العوامل في بايثون، يمكنك قراءة: أساسيات بايثون 6: شرح Operators في Python.

ما معنى رقم زوجي ورقم فردي؟

الرقم الزوجي هو الرقم الذي يقبل القسمة على 2 بدون باقي.

مثال:

  • الرقم 4 زوجي لأنه يقبل القسمة على 2.
  • الرقم 10 زوجي لأنه يقبل القسمة على 2.
  • الرقم 7 فردي لأنه لا يقبل القسمة على 2 بدون باقي.

في بايثون، نستخدم عامل باقي القسمة % لمعرفة هل يوجد باقي أم لا.

ما هو عامل باقي القسمة % في Python؟

عامل % يعطينا باقي القسمة.

مثال:

print(10 % 2)

الناتج:

0

لأن 10 تقبل القسمة على 2 بدون باقي.

مثال آخر:

print(7 % 2)

الناتج:

1

لأن 7 عند قسمتها على 2 يبقى باقي يساوي 1.

الفكرة الأساسية للبرنامج

الفكرة بسيطة:

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

يعني الشرط سيكون:

number % 2 == 0

إذا كان هذا الشرط صحيحًا، فالرقم زوجي.

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

لنبدأ بكود بسيط:

number = 8

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

الناتج:

الرقم زوجي

لأن الرقم 8 يقبل القسمة على 2 بدون باقي.

مقارنة بين الوصول إلى قيمة في Dictionary باستخدام student["name"] واستخدام student.get("name") في Python

شرح الكود خطوة بخطوة

في البداية أنشأنا متغيرًا باسم number ووضعنا فيه الرقم:

number = 8

ثم كتبنا شرطًا:

if number % 2 == 0:

هذا الشرط معناه:

هل باقي قسمة الرقم على 2 يساوي صفر؟

إذا كانت الإجابة نعم، ينفذ البرنامج هذا السطر:

print("الرقم زوجي")

أما إذا كان الشرط غير صحيح، ينتقل إلى:

else:
    print("الرقم فردي")

تجربة الكود مع رقم فردي

لنغيّر الرقم إلى 9:

number = 9

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

الناتج:

الرقم فردي

لأن 9 % 2 لا يساوي صفر.

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

الآن سنجعل البرنامج يطلب الرقم من المستخدم باستخدام input().

number = int(input("أدخل رقمًا: "))

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

هنا استخدمنا int() لتحويل إدخال المستخدم من نص إلى رقم.

لأن input() ترجع النصوص دائمًا، وحتى لو كتب المستخدم رقمًا، فإن بايثون تتعامل معه كنص حتى نحوله إلى عدد صحيح.

مثال على تشغيل البرنامج

إذا أدخل المستخدم الرقم:

12

سيظهر:

الرقم زوجي

وإذا أدخل:

15

سيظهر:

الرقم فردي

تحسين الرسالة بإظهار الرقم نفسه

يمكننا جعل النتيجة أوضح بإظهار الرقم داخل الرسالة.

number = int(input("أدخل رقمًا: "))

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

إذا أدخل المستخدم الرقم 6، ستكون النتيجة:

6 هو رقم زوجي

استخدام f-string لكتابة رسالة أجمل

يمكنك استخدام f-string لكتابة رسالة أوضح.

number = int(input("أدخل رقمًا: "))

if number % 2 == 0:
    print(f"الرقم {number} زوجي")
else:
    print(f"الرقم {number} فردي")
ملخص يوضح دوال keys و values و items في Dictionary لعرض المفاتيح والقيم معًا في Python

هذه الطريقة أفضل عندما تريد دمج المتغيرات داخل النص.

خطأ شائع: نسيان int

من الأخطاء الشائعة أن يكتب المبتدئ:

number = input("أدخل رقمًا: ")

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

هذا قد يسبب خطأ، لأن number هنا نص وليس رقمًا.

الصحيح:

number = int(input("أدخل رقمًا: "))

استخدام int() مهم جدًا عندما تريد التعامل مع الإدخال كرقم صحيح.

خطأ شائع: استخدام = بدل ==

في الشروط نستخدم == للمقارنة، وليس =.

هذا خطأ:

if number % 2 = 0:

وهذا صحيح:

if number % 2 == 0:

الفرق مهم:

  • = تستخدم لإسناد قيمة إلى متغير.
  • == تستخدم للمقارنة بين قيمتين.

هل الصفر رقم زوجي؟

نعم، الصفر يعتبر رقمًا زوجيًا في البرمجة والرياضيات، لأن:

print(0 % 2)

الناتج:

0

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

تطوير بسيط: التعامل مع الإدخال الخاطئ

ماذا لو كتب المستخدم نصًا بدل رقم؟

مثلاً كتب:

hello

هنا int() لن تستطيع تحويل النص إلى رقم، وقد يظهر خطأ.

يمكننا استخدام try except للتعامل مع ذلك:

try:
    number = int(input("أدخل رقمًا: "))

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

except ValueError:
    print("الرجاء إدخال رقم صحيح فقط")

هذا الكود أفضل إذا أردت برنامجًا يتحمل أخطاء المستخدم.

متى أستخدم هذا المثال؟

هذا المثال بسيط، لكنه يعلمك أفكارًا مهمة:

  • استخدام المتغيرات.
  • استخدام عامل باقي القسمة %.
  • كتابة شرط باستخدام if و else.
  • استقبال إدخال من المستخدم باستخدام input().
  • تحويل النص إلى رقم باستخدام int().
  • التعامل مع الأخطاء باستخدام try except.
مثال Nested Dictionary في Python يحتوي على قاموس students وبداخله student1 و student2

لذلك يعتبر مثال الزوجي والفردي من أفضل الأمثلة للمبتدئين في Python.

روابط مفيدة

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

ولفهم أنواع البيانات وتحويل النصوص إلى أرقام، اقرأ: أساسيات بايثون 7: أنواع البيانات في Python.

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

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

خلاصة المثال

في هذا الدرس من سلسلة بايثون بالمثال تعلمنا كيف نعرف هل الرقم زوجي أم فردي في Python.

الفكرة الأساسية هي:

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

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

تمرين بسيط لك

جرّب تطوير البرنامج ليطبع رسالة مختلفة إذا كان الرقم يساوي صفر.

مثلاً:

  • إذا الرقم صفر، اطبع: الصفر رقم زوجي.
  • إذا الرقم زوجي غير صفر، اطبع: الرقم زوجي.
  • إذا الرقم فردي، اطبع: الرقم فردي.

هذا التمرين سيساعدك على استخدام أكثر من شرط باستخدام if و elif و else.

في المثال القادم

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

حساب عدد الكلمات في نص باستخدام Python

وسنستخدم دوال النصوص بطريقة عملية وبسيطة.

إرسال تعليق

أحدث أقدم