मीटअप

मीटअप

मध्यम

परिचय

हर महीने, आपके साथी अपने सबसे अच्छे दोस्त से मिलते हैं। दोनों के पास बहुत व्यस्त कार्यक्रम हैं, जिससे उपयुक्त तारीख ढूँढना मुश्किल हो जाता है! चूँकि आपका भी कार्यक्रम काफी व्यस्त है, आपके साथी हर संभावित मिलने की तारीख की आपसे दोबारा पुष्टि करते रहते हैं:

  • "क्या अगले महीने के पहले शुक्रवार को मिलना ठीक रहेगा?"
  • "तीसरे बुधवार के बारे में क्या?"
  • "शायद अंतिम रविवार?"

इस महीने की कॉल में, आपके साथी ने आपसे यह सवाल पूछा:

  • "मुझे टीन्थ गुरुवार को मिलना अच्छा लगेगा; क्या यह ठीक है?"

हैरान होकर आप पूछते हैं कि टीन्थ दिन क्या होता है। आपके साथी बताते हैं कि टीन्थ दिन, जो उन्होंने खुद बनाया है, महीने के उन दिनों को कहते हैं जिनके अंग्रेज़ी नाम '-teenth' पर समाप्त होते हैं:

  • 13th (thirteenth)
  • 14th (fourteenth)
  • 15th (fifteenth)
  • 16th (sixteenth)
  • 17th (seventeenth)
  • 18th (eighteenth)
  • 19th (nineteenth)

चूँकि सप्ताह में सात दिन होते हैं, यह तय है कि महीने में सप्ताह के हर दिन के लिए ठीक एक टीन्थ दिन होता है।

अब जब आप टीन्थ दिन का विचार समझ जाते हैं, तो आप अपना कैलेंडर देखते हैं। टीन्थ गुरुवार को आपकी कोई योजना नहीं है, इसलिए आप खुशी-खुशी अपने साथी के साथ तारीख की पुष्टि करते हैं।

निर्देश

आपको महीना, साल, सप्ताह का दिन और सप्ताह दिए जाने पर मीटअप की सही तारीख ढूँढनी है।

सप्ताह के लिए छह वैल्यू हैं, जिन पर ध्यान देना है: first, second, third, fourth, last और teenth।

उदाहरण के लिए, आपसे जनवरी 2018 के पहले सोमवार को होने वाले मीटअप की तारीख ढूँढने के लिए कहा जा सकता है (1 जनवरी 2018)।

इसी तरह, आपसे ये तारीखें ढूँढने के लिए भी कहा जा सकता है:

  • अगस्त 2019 का तीसरा मंगलवार (20 अगस्त 2019)
  • मई 2020 का टीन्थ बुधवार (13 मई 2020)
  • जुलाई 2021 का चौथा रविवार (25 जुलाई 2021)
  • नवंबर 2022 का अंतिम गुरुवार (24 नवंबर 2022)
  • अगस्त 1953 का टीन्थ शनिवार (15 अगस्त 1953)

टीन्थ

टीन्थ सप्ताह महीने के उन सात दिनों को कहते हैं जो '-teenth' पर खत्म होते हैं (13th, 14th, 15th, 16th, 17th, 18th और 19th)।

अगर अगस्त 1953 का टीन्थ शनिवार ढूँढना हो, तो हम उस महीने का कैलेंडर देखते हैं:

    August 1953
Su Mo Tu We Th Fr Sa
                   1
 2  3  4  5  6  7  8
 9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

इससे पता चलता है कि टीन्थ शनिवार 15 अगस्त 1953 है।

Python में इस अभ्यास का ढाँचा

हमने महीने के पाँचवें कार्यदिवस के लिए एक अतिरिक्त वीक डिस्क्रिप्टर (fifth) जोड़ा है, अगर महीने में पाँचवाँ कार्यदिवस मौजूद हो।
अगर किसी महीने में पाँचवाँ कार्यदिवस नहीं है, तो आपको एक एक्सेप्शन raise करना चाहिए।

एक्सेप्शन को अपने हिसाब से बनाना और raise करना

कभी-कभी आपके कोड में एक्सेप्शन को अपने हिसाब से बनाना और उन्हें raise करना, दोनों ज़रूरी हो जाता है। ऐसा करते समय आपको हमेशा एक अर्थपूर्ण एरर संदेश देना चाहिए, जो बताए कि एरर का स्रोत क्या है। इससे आपका कोड पढ़ने में आसान हो जाता है और डिबगिंग में काफी मदद मिलती है।

कस्टम एक्सेप्शन नई एक्सेप्शन क्लास बनाकर बनाए जा सकते हैं (ज़्यादा जानकारी के लिए classes देखिए)। ये आम तौर पर Exception की सबक्लास होती हैं।

ऐसी स्थितियों में, जहाँ आप जानते हैं कि एरर का स्रोत किसी खास एक्सेप्शन टाइप से बना होगा, आप Exception क्लास के अंतर्गत आने वाले built in error types में से किसी एक को इनहेरिट कर सकते हैं। एरर raise करते समय भी आपको एक अर्थपूर्ण संदेश ज़रूर देना चाहिए।

इस अभ्यास में आपको एक कस्टम एक्सेप्शन बनाना है, जिसे तब raise/"thrown" किया जाए, जब आपके meetup() फंक्शन को दिन के नाम और संख्या का कोई अमान्य जोड़ दिया जाए। टेस्ट तभी पास होंगे जब आप उचित एक्सेप्शन अपने हिसाब से बनाएँगे, उन्हें raise करेंगे और सही एरर संदेश देंगे।

किसी built-in exception को अपने हिसाब से बनाने के लिए ऐसी class बनाइए जो उस एक्सेप्शन से इनहेरिट करती हो। जब आप कस्टम एक्सेप्शन को किसी संदेश के साथ raise करें, तो संदेश को exception टाइप के आर्गुमेंट के रूप में लिखिए:

# subclassing the built-in ValueError to create MeetupDayException
class MeetupDayException(ValueError):
    """Exception raised when the Meetup weekday and count do not result in a valid date.

    message: explanation of the error.

    """
    def __init__(self, message):
        self.message = message

        
# raising a MeetupDayException
raise MeetupDayException("That day does not exist.")

स्रोत

Jeremy Hinegardner ने Boulder में होने वाले एक मीटअप का उल्लेख किया था, जो हर महीने के Wednesteenth को होता है
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Python Exercism

मीटअप शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और Python को 17 कॉन्सेप्ट146 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।