بايثون بالمثال 2: كود معرفة العدد زوجي أم فردي في بايثون مع شرح مبسط

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

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

هذا المثال مناسب جدًا بعد تعلم المتغيرات، العوامل الحسابية، وجملة الشرط if. ورغم أنه يبدو صغيرًا، إلا أنه يجمع أكثر من فكرة مهمة ستستخدمها كثيرًا في البرمجة، مثل عامل باقي القسمة %، المقارنة باستخدام ==، استقبال إدخال من المستخدم باستخدام input()، وتحويل النص إلى رقم باستخدام int().

سنبدأ بشرح الفكرة ببساطة، ثم نكتب الكود خطوة بخطوة، وبعدها نطوره ليقبل رقمًا من المستخدم، ثم نضيف معالجة للأخطاء حتى يصبح المثال أقرب إلى برنامج عملي صغير.

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

{alertInfo} قبل البدء، من الأفضل أن تكون لديك فكرة بسيطة عن العوامل في بايثون. يمكنك مراجعة درس شرح Operators في Python إذا كنت تريد فهم العوامل الحسابية والمقارنات بشكل أفضل.

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

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

مثال بسيط:

  • الرقم 4 زوجي، لأن قسمته على 2 لا تترك باقيًا.
  • الرقم 10 زوجي، لأن باقي قسمته على 2 يساوي صفرًا.
  • الرقم 7 فردي، لأن باقي قسمته على 2 يساوي 1.
  • الرقم 15 فردي، لأنه لا يقبل القسمة على 2 بدون باقي.

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

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

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

مثال:

print(10 % 2)

الناتج:

0

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

مثال آخر:

print(7 % 2)

الناتج:

1

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

{alertSuccess} القاعدة المختصرة: إذا كان number % 2 == 0 فالرقم زوجي، وإذا لم يتحقق هذا الشرط فالرقم فردي.

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

قبل كتابة الكود، دعنا نفكر منطقيًا في خطوات البرنامج:

  1. نضع رقمًا داخل متغير.
  2. نحسب باقي قسمة الرقم على 2.
  3. إذا كان الباقي يساوي صفرًا، نطبع أن الرقم زوجي.
  4. إذا لم يكن الباقي يساوي صفرًا، نطبع أن الرقم فردي.

إذن الشرط الأساسي سيكون:

number % 2 == 0

هذا الشرط يسأل: هل باقي قسمة المتغير number على 2 يساوي صفرًا؟

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

لنبدأ بكود بسيط نضع فيه الرقم يدويًا:

number = 8

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

الناتج:

الرقم زوجي

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

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

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

number = 8

بعد ذلك كتبنا جملة شرط:

if number % 2 == 0:

هذا السطر يعني: إذا كان باقي قسمة الرقم على 2 يساوي صفرًا، نفذ الكود الموجود أسفل الشرط.

إذا تحقق الشرط، سيعمل هذا السطر:

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

أما إذا لم يتحقق الشرط، فسينتقل البرنامج إلى else:

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

وهنا يطبع أن الرقم فردي.

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

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

number = 9

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

الناتج:

الرقم فردي

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

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

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

نستخدم input() لاستقبال الرقم من المستخدم، ثم نستخدم int() لتحويله من نص إلى عدد صحيح:

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

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

سبب استخدام int() مهم جدًا. دالة input() ترجع البيانات كنص حتى لو كتب المستخدم رقمًا، لذلك يجب تحويل النص إلى رقم قبل استخدام العمليات الحسابية عليه.

{alertWarning} إذا نسيت استخدام 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} فردي")

هذه الطريقة أفضل عندما تريد كتابة رسالة مرتبة تحتوي على قيمة متغير داخل النص.

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

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

print(0 % 2)

الناتج:

0

وبما أن باقي القسمة يساوي صفرًا، فالرقم 0 يدخل ضمن الأرقام الزوجية.

تطوير البرنامج للتعامل مع الصفر برسالة خاصة

يمكننا تطوير البرنامج ليطبع رسالة خاصة إذا كان الرقم يساوي صفرًا، ثم يتحقق من الأرقام الأخرى.

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

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

هنا استخدمنا elif لإضافة شرط آخر بين if و else.

أخطاء شائعة في برنامج الزوجي والفردي

الخطأ الأول: نسيان int مع input

من أكثر الأخطاء شيوعًا أن يكتب المبتدئ:

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

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

المشكلة هنا أن number نص وليس رقمًا. الصحيح:

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

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

في بايثون، الرمز = يستخدم لإسناد قيمة إلى متغير، أما الرمز == فيستخدم للمقارنة.

هذا خطأ:

if number % 2 = 0:

وهذا صحيح:

if number % 2 == 0:

الخطأ الثالث: نسيان النقطتين بعد if

جملة if في بايثون يجب أن تنتهي بنقطتين :.

هذا خطأ:

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

والصحيح:

if number % 2 == 0:
    print("الرقم زوجي")
{alertInfo} إذا ظهر لك خطأ SyntaxError أثناء كتابة هذا المثال، راجع النقطتين بعد if و else، وراجع المسافات البادئة داخل الشرط.

تطوير البرنامج للتعامل مع الإدخال الخاطئ

ماذا لو كتب المستخدم كلمة بدل رقم؟ مثل:

hello

في هذه الحالة لن تستطيع int() تحويل النص إلى رقم، وسيظهر خطأ ValueError. يمكننا استخدام try except لجعل البرنامج أكثر أمانًا:

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

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

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

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

جدول سريع لفهم أجزاء المثال

الجزء وظيفته مثال
input() استقبال قيمة من المستخدم input("أدخل رقمًا: ")
int() تحويل النص إلى عدد صحيح int("12")
% حساب باقي القسمة 12 % 2
== مقارنة قيمتين number == 0
if تنفيذ كود عند تحقق شرط معين if number % 2 == 0:
else تنفيذ كود بديل إذا لم يتحقق الشرط else:

متى يفيدك هذا المثال؟

هذا المثال ليس مجرد تمرين رياضي بسيط، بل يساعدك على فهم طريقة التفكير البرمجي. فأنت هنا تتعلم كيف تحول قاعدة بسيطة إلى برنامج:

  • تستقبل قيمة.
  • تفحصها بشرط.
  • تعرض نتيجة مناسبة.
  • تتعامل مع أخطاء الإدخال.

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

روابط مفيدة من بايثون العرب

أسئلة شائعة

هل الرقم السالب يمكن أن يكون زوجيًا أو فرديًا؟

نعم. الأرقام السالبة يمكن أن تكون زوجية أو فردية أيضًا. مثلًا -4 زوجي، و -7 فردي. نفس قاعدة باقي القسمة على 2 تعمل معها.

هل يجب استخدام int دائمًا؟

في هذا المثال نعم، لأننا نريد التعامل مع عدد صحيح. إذا كنت تريد التعامل مع أرقام عشرية يمكنك استخدام float()، لكن فكرة الزوجي والفردي غالبًا تستخدم مع الأعداد الصحيحة.

لماذا نستخدم == بدل = داخل الشرط؟

لأن = تعني إسناد قيمة إلى متغير، أما == فتعني مقارنة قيمتين. داخل جملة if نحتاج المقارنة، لذلك نستخدم ==.

هل هذا المثال مناسب للمبتدئين تمامًا؟

نعم، لأنه يجمع مفاهيم أساسية بطريقة عملية: المتغيرات، الإدخال، التحويل، العمليات الحسابية، والشروط.

خلاصة المثال

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

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

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

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

{alertSuccess} الخلاصة السريعة: استخدم % لمعرفة باقي القسمة، واستخدم if لاتخاذ القرار بناءً على النتيجة.

تمرين بسيط لك

جرّب تطوير البرنامج ليقبل رقمًا من المستخدم، ثم:

  • إذا كان الرقم صفرًا، اطبع: الصفر رقم زوجي.
  • إذا كان الرقم زوجيًا غير الصفر، اطبع: الرقم زوجي.
  • إذا كان الرقم فرديًا، اطبع: الرقم فردي.
  • إذا أدخل المستخدم نصًا بدل رقم، اطبع رسالة خطأ مناسبة.

هذا التمرين سيساعدك على استخدام if و elif و else و try except في مثال واحد.

إرسال تعليق

أحدث أقدم