Python Tutorials

إدخال أعداد صحيحة قوي في بايثون: أفضل الممارسات ومعالجة الأخطاء

Spread the love

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

جدول المحتويات

قراءة مدخلات الأعداد الصحيحة في بايثون 3

يستخدم بايثون 3 دالة input() لقراءة مدخلات المستخدم. هذه الدالة تُرجع دائمًا سلسلة نصية، لذلك يجب عليك تحويلها صراحةً إلى عدد صحيح باستخدام int(). ومع ذلك، فإن المدخلات غير الصحيحة ستسبب خطأ. أفضل نهج هو استخدام كتلة try-except لمعالجة استثناءات ValueError المحتملة.


while True:
    try:
        user_input = input("أدخل عددًا صحيحًا: ")
        number = int(user_input)
        break  # الخروج من الحلقة إذا كانت المدخلات صالحة
    except ValueError:
        print("مدخلات غير صالحة. يرجى إدخال عدد صحيح.")

print("أدخلت:", number)

معالجة الأخطاء المتينة في بايثون 3

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

قراءة مدخلات الأعداد الصحيحة في بايثون 2

في بايثون 2، raw_input() هي الطريقة المفضلة لقراءة مدخلات المستخدم كسلسلة نصية. تجنب استخدام input() في بايثون 2 لأنه يحاول تقييم المدخلات، مما قد يؤدي إلى ثغرات أمنية وسلوك غير متوقع.


while True:
    try:
        user_input = raw_input("أدخل عددًا صحيحًا: ")
        number = int(user_input)
        break
    except ValueError:
        print "مدخلات غير صالحة. يرجى إدخال عدد صحيح."

print "أدخلت:", number

معالجة الأخطاء المتينة في بايثون 2

معالجة الأخطاء في بايثون 2 مشابهة لبايثون 3، باستخدام كتلة try-except. تضمن تقنية التكرار نفسها كما هو موضح أعلاه عدم تعطل البرنامج عند وجود مدخلات غير صالحة.

أفضل الممارسات والتقنيات المتقدمة

تحقق دائمًا من صحة مدخلات المستخدم. لا تفترض أن المستخدم سيقدم نوع البيانات المتوقع. إن استخدام كتل try-except جزء أساسي من معالجة الأخطاء المتينة. ضع في اعتبارك إضافة معالجة استثناءات أكثر تحديدًا (مثل، معالجة KeyboardInterrupt) بناءً على احتياجات تطبيقك. بالنسبة لسياقات التحقق المعقدة، يمكن أن تكون التعبيرات العادية أداة قوية.

الأسئلة الشائعة

  • س: ماذا يحدث إذا أدخل المستخدم رقمًا ذو فاصلة عشرية؟
    ج: تقوم دالة int() بقطع الجزء العشري، وتحويل الرقم ذو الفاصلة العشرية إلى عدد صحيح (مثل، int(3.14) يعيد 3). لمعالجة الأرقام ذات الفاصلة العشرية، استخدم float().
  • س: كيف يمكنني معالجة أنواع أخرى من الأخطاء؟
    ج: أضف المزيد من كتل except لمعالجة استثناءات محددة مثل KeyboardInterrupt أو EOFError.
  • س: هل هناك طرق للتحقق من الصحة أكثر إيجازًا؟
    ج: بينما try-except واضحة، تقدم التعبيرات العادية حلولًا أكثر إيجازًا لقواعد التحقق المعقدة.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *