با گرفتن یک رشته از رقمها، همهی زیررشتههای پیوستهی به طول n در آن رشته را به ترتیبی که ظاهر میشوند خروجی بدهید.
برای مثال، رشتهی "49142" سریهای سهرقمی زیر را دارد:
و سریهای چهاررقمی زیر را:
و اگر از یک رشتهی پنجرقمی سری ششرقمی بخواهید، هر چه گیرتان بیاید حق خودتان است.
توجه داشته باشید که این سریها فقط باید موقعیتهای مجاور را در ورودی اشغال کنند؛ لازم نیست رقمها از نظر عددی متوالی باشند.
گاهی لازم است یک استثنا ایجاد کنید. وقتی این کار را میکنید، همیشه باید یک پیام خطای معنادار هم بگنجانید تا نشان دهید منبع خطا چیست. این کار کد شما را خواناتر میکند و بهشکل چشمگیری به دیباگ کردن کمک میکند. در موقعیتهایی که میدانید منبع خطا از یک نوع مشخص است، میتوانید یکی از انواع خطای توکار را ایجاد کنید، اما باز هم باید پیامی معنادار بگنجانید.
این تمرین بهطور خاص از شما میخواهد که از دستور raise استفاده کنید تا اگر پارامترهای series و/یا length که به تابع slice() وارد میشوند خالی یا خارج از محدوده باشند، یک ValueError را «پرتاب» کنید. تستها تنها در صورتی قبول میشوند که هم exception را raise کنید و هم پیامی همراه آن بگنجانید.
برای این که یک 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")