अंकों की एक स्ट्रिंग दी गई है। आपको उस स्ट्रिंग में लंबाई n की सभी लगातार सबस्ट्रिंग आउटपुट के रूप में उसी क्रम में देनी हैं जिस क्रम में वे आती हैं।
उदाहरण के लिए, स्ट्रिंग "49142" में 3 अंकों वाली ये सीरीज़ होती हैं:
और 4 अंकों वाली ये सीरीज़:
और अगर आप 5 अंकों की स्ट्रिंग से 6 अंकों की सीरीज़ माँगेंगे, तो जो मिलेगा उसके हकदार आप खुद होंगे।
ध्यान दीजिए कि इन सीरीज़ को इनपुट में सिर्फ आस-पास की जगहें लेनी होती हैं; अंकों का संख्यात्मक रूप से लगातार होना ज़रूरी नहीं है।
कभी-कभी एक्सेप्शन उठाना ज़रूरी हो जाता है। ऐसा करते समय आपको हमेशा एक अर्थपूर्ण एरर संदेश देना चाहिए, जिससे पता चले कि एरर का स्रोत क्या है। इससे आपका कोड पढ़ने में आसान हो जाता है और डिबगिंग में काफी मदद मिलती है। जहाँ आप जानते हैं कि एरर का स्रोत एक तय टाइप का ही होगा, वहाँ आप अंतर्निहित एरर टाइप में से किसी एक को चुनकर उठा सकते हैं, लेकिन संदेश फिर भी अर्थपूर्ण होना चाहिए।
इस अभ्यास में आपको raise स्टेटमेंट का उपयोग करके ValueError "फेंकना" है, अगर 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")
Exercism पर साइन अप कीजिए और Python को 17 कॉन्सेप्ट146 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।