المتسلسلة

المتسلسلة

سهل

التعليمات

إذا أُعطيتَ سلسلة نصية من الأرقام، فأخرِج جميع السلاسل النصية الفرعية المتتالية ذات الطول n فيها، بالترتيب الذي تظهر به.

فمثلًا، تحتوي السلسلة النصية "49142" على السلاسل النصية الفرعية التالية المكوّنة من 3 أرقام:

  • "491"
  • "914"
  • "142"

والسلاسل النصية الفرعية التالية المكوّنة من 4 أرقام:

  • "4914"
  • "9142"

وإذا طلبتَ سلاسل نصية مكوّنة من 6 أرقام من سلسلة نصية مكوّنة من 5 أرقام، فأنت تستحق ما يأتيك.

لاحظ أن هذه السلاسل النصية الفرعية مطلوب منها فقط أن تشغل مواضع متجاورة في المُدخل؛ ولا يلزم أن تكون الأرقام متتابعة عدديًا.

رسائل الاستثناءات

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

يتطلب هذا التمرين تحديدًا أن تستخدم عبارة raise لـ«إطلاق» ValueError إذا كانت المعاملات series و/أو length المُدخلة إلى دالة slice() فارغة أو خارج النطاق. لن تنجح الاختبارات إلا إذا استخدمت raise مع exception وأدرجت معه رسالة.

لرفع ValueError مع رسالة، اكتب الرسالة كوسيط للنوع exception:

# if the slice length is zero.
raise ValueError("slice length cannot be zero")

# if the slice length is negative.
raise ValueError("slice length cannot be negative")

# if the series provided is empty.
raise ValueError("series cannot be empty")

# if the slice length is longer than the series.
raise ValueError("slice length cannot be greater than series length")
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Python Exercism

مستعد لبدء المتسلسلة؟

سجّل في Exercism لتتعلّم وتتقن Python عبر 17 مفهومًا146 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.