تحدي إنشاء وظيفة للتحقق منرالرقم العشري

السلام عليكم ورحمة الله وبركاته عندي عادل علمنا المثد isdigit وهي تحقق من أن الرقم رقم صحيح طيب مين فيكم يقدر يعمل وظيفة تتحقق من الرقم العشري؟؟؟

وعليكم السلام ورحمة الله وبركاته!

يمكنك إنشاء دالة للتحقق من ما إذا كانت السلسلة النصية (string) تمثل رقمًا عشريًا (عددًا يحتوي على جزء صحيح وجزء عشري) باستخدام الطريقة التالية:

إنشاء دالة للتحقق من الرقم العشري

def is_decimal(number_str):
    # محاولة تحويل السلسلة النصية إلى عدد عشري (float)
    try:
        float(number_str)
    except ValueError:
        # إذا حدث خطأ في التحويل فهذا يعني أن الرقم غير عشري
        return False
    
    # التحقق مما إذا كانت السلسلة النصية تحتوي على نقطة عشرية
    return '.' in number_str

# أمثلة لاختبار الدالة
print(is_decimal("123.456"))  # True
print(is_decimal("789"))      # False
print(is_decimal("abc.123"))  # False
print(is_decimal("12.34.56")) # False

شرح الدالة:

  1. تحويل السلسلة النصية: الدالة تحاول تحويل السلسلة النصية إلى عدد عشري باستخدام float():

    • إذا نجح التحويل بدون أخطاء، نستمر للتحقق من وجود النقطة العشرية.
    • إذا حدث خطأ (مثلًا عند إدخال نص غير رقمي)، فإن ValueError سيتم رفعه وتقوم الدالة بإرجاع False.
  2. التحقق من وجود نقطة عشرية: حتى بعد نجاح التحويل إلى float، نتحقق مما إذا كانت السلسلة النصية تحتوي على نقطة عشرية (.). إذا كان الجواب نعم، فالسلسلة تعتبر رقمًا عشريًا.

  3. أمثلة اختبار:

    • "123.456": يعتبر رقمًا عشريًا صحيحًا.
    • "789": ليس رقمًا عشريًا لأن لا يحتوي على نقطة عشرية.
    • "abc.123" و "12.34.56": لا تعتبر أرقامًا عشرية بسبب وجود حروف أو نقاط عشرية متعددة.

ملاحظات:

  • هذه الدالة تتعامل فقط مع الأرقام العشرية الصحيحة، فإذا كان هناك نص أو تنسيق غير صحيح سيتم إرجاع False.

إذا كان لديك أي تعديلات أو تساؤلات إضافية، فأنا هنا للمساعدة!

إعجاب واحد (1)

زادك الله علما إخي أنا عندي طريقة ثانية للتحدي هذا بس في البرمجة دائما في مائة طريقة أنا سمعت
try من قبل بس ما أستخدمتها فلو توضحها أكون لك شاكر :sparkling_heart:

إعجاب واحد (1)

بارك الله فيك وزادك علمًا كذلك! :star2:

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

ما هي try و except؟

في بايثون، try و except تُستخدمان للتعامل مع الأخطاء أو الاستثناءات (exceptions) التي قد تحدث أثناء تشغيل الكود. الفكرة الأساسية هي محاولة تنفيذ جزء من الكود باستخدام try، وإذا حدث خطأ (استثناء)، يتم التقاطه ومعالجته داخل جزء except.

مثال بسيط

إليك مثالًا بسيطًا يوضح كيف تعمل try و except:

try:
    # محاولة تنفيذ هذا الكود
    number = int(input("أدخل رقمًا: "))
    result = 100 / number
    print(f"النتيجة هي: {result}")

except ZeroDivisionError:
    # سيتم تنفيذ هذا الجزء إذا حدث خطأ قسمة على صفر
    print("لا يمكن القسمة على الصفر!")

except ValueError:
    # سيتم تنفيذ هذا الجزء إذا لم يكن المدخل رقمًا صحيحًا
    print("من فضلك أدخل رقمًا صحيحًا!")

# سيستمر الكود في العمل بعد معالجة الخطأ
print("البرنامج مستمر في العمل.")

شرح الكود:

  1. جزء try: في هذا الجزء نحاول تنفيذ الكود الذي قد ينتج عنه خطأ.

    • نقوم بمحاولة قراءة رقم من المستخدم باستخدام input، وتحويله إلى عدد صحيح باستخدام int().
    • ثم نحاول تقسيم الرقم 100 على الرقم المدخل.
  2. جزء except: إذا حدث أي استثناء أثناء تنفيذ الكود في جزء try:

    • إذا حدث خطأ ZeroDivisionError (عند محاولة القسمة على صفر)، يتم تنفيذ الكود داخل except ZeroDivisionError.
    • إذا حدث خطأ ValueError (عندما يقوم المستخدم بإدخال شيء غير رقمي)، يتم تنفيذ الكود داخل except ValueError.
  3. الاستمرار بعد except: بعد معالجة الخطأ، سيستمر الكود في العمل ولن يتوقف البرنامج بشكل مفاجئ.

متى تستخدم try و except؟

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

خلاصة

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

واذا لم تفهم من الشرح السابق لا تقلق طبيعي جدا وانا سأقوم بنشر شرح أكثر سهولة وممتع وستجده في هذا المنشور روابط لمراجعة دروس python بشكل سهل وممتع ولتعميق الفهم البرمجي داخل المنتدى :heart:

إعجاب واحد (1)