মিটআপ

মিটআপ

মধ্যম

ভূমিকা

প্রতি মাসে আপনার সঙ্গী তাঁর প্রিয় বন্ধুর সাথে দেখা করেন। দুজনেই খুব ব্যস্ত থাকেন, তাই উপযুক্ত একটি তারিখ খুঁজে পাওয়া বেশ কঠিন হয়ে পড়ে! আপনি নিজেও ব্যস্ত, তাই সম্ভাব্য কোন তারিখে দেখা করা যাবে তা আপনার সঙ্গী সবসময় আপনার সাথে মিলিয়ে নেন:

  • "আমি কি আগামী মাসের প্রথম শুক্রবারে দেখা করতে পারি?"
  • "তৃতীয় বুধবার হলে কেমন হয়?"
  • "হয়তো শেষ রবিবার?"

এই মাসের কলটিতে আপনার সঙ্গী আপনাকে এই প্রশ্নটি করলেন:

  • "আমি টিন্থ বৃহস্পতিবারে দেখা করতে চাই; ঠিক আছে কি?"

বিভ্রান্ত হয়ে আপনি জিজ্ঞেস করলেন, "টিন্থ" ডে বলতে আসলে কী বোঝায়। আপনার সঙ্গী ব্যাখ্যা করলেন যে টিন্থ ডে, অর্থাৎ তাঁর নিজের বানানো একটি ধারণা, বলতে মাসের সেই তারিখগুলোকে বোঝায় যেগুলো '-teenth' দিয়ে শেষ হয়:

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

যেহেতু সপ্তাহে সাতটি বারও আছে, তাই নিশ্চিতভাবেই প্রতি মাসে সপ্তাহের প্রতিটি বারের জন্য ঠিক একটি টিন্থ ডে থাকে।

এখন যেহেতু টিন্থ ডে-র ধারণাটি আপনি বুঝে গেছেন, আপনি নিজের ক্যালেন্ডার দেখে নিলেন। টিন্থ বৃহস্পতিবারে আপনার কোনো পরিকল্পনা নেই, তাই খুশি মনে আপনি সঙ্গীর সাথে তারিখটি নিশ্চিত করে নিলেন।

নির্দেশনা

আপনার কাজ হলো মাস, বছর, সপ্তাহের বার ও সপ্তাহ দেওয়া থাকলে একটি মিটআপের সঠিক তারিখ খুঁজে বের করা।

বিবেচনার জন্য সপ্তাহের ছয়টি মান আছে: first, second, third, fourth, last, teenth।

উদাহরণস্বরূপ, আপনাকে ২০১৮ সালের জানুয়ারি মাসের প্রথম সোমবারের মিটআপের তারিখ খুঁজতে বলা হতে পারে (১ জানুয়ারি, ২০১৮)।

একইভাবে, আপনাকে খুঁজতে বলা হতে পারে:

  • ২০১৯ সালের আগস্ট মাসের তৃতীয় মঙ্গলবার (২০ আগস্ট, ২০১৯)
  • ২০২০ সালের মে মাসের টিনথ বুধবার (১৩ মে, ২০২০)
  • ২০২১ সালের জুলাই মাসের চতুর্থ রবিবার (২৫ জুলাই, ২০২১)
  • ২০২২ সালের নভেম্বর মাসের শেষ বৃহস্পতিবার (২৪ নভেম্বর, ২০২২)
  • ১৯৫৩ সালের আগস্ট মাসের টিনথ শনিবার (১৫ আগস্ট, ১৯৫৩)

টিনথ

টিনথ সপ্তাহ বলতে একটি মাসের সেই সাত দিনকে বোঝায় যেগুলো '-teenth' দিয়ে শেষ হয় (13th, 14th, 15th, 16th, 17th, 18th এবং 19th)।

১৯৫৩ সালের আগস্ট মাসের টিনথ শনিবার খুঁজতে বলা হলে, আমরা সেই মাসের ক্যালেন্ডারটি দেখি:

    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

এ থেকে দেখা যায়, টিনথ শনিবারটি হলো ১৫ আগস্ট, ১৯৫৩।

Python-এ এই অনুশীলনীটি কীভাবে সাজানো হয়েছে

মাসের পঞ্চম বারের জন্য, যদি সেটি থেকে থাকে, আমরা একটি অতিরিক্ত ডেসক্রিপ্টর (fifth) যোগ করেছি।
কোনো মাসে যদি পঞ্চম বার না থাকে, তবে আপনার একটি এক্সেপশন রেইজ করা উচিত।

এক্সেপশন কাস্টমাইজ করা ও রেইজ করা

কখনও কখনও আপনার কোডে এক্সেপশন কাস্টমাইজ এবং raise করা, দুটোই প্রয়োজন হয়ে পড়ে। এটি করলে, এররের উৎস কী তা বোঝাতে আপনার সর্বদা একটি অর্থবহ এরর বার্তা যুক্ত করা উচিত। এতে আপনার কোড আরও পাঠযোগ্য হয় এবং ডিবাগ করতে যথেষ্ট সাহায্য করে।

নতুন এক্সেপশন ক্লাসের মাধ্যমে কাস্টম এক্সেপশন তৈরি করা যায় (আরও বিস্তারিত জানতে classes দেখুন), যেগুলো সাধারণত Exception ক্লাসের সাবক্লাস হয়।

যেসব পরিস্থিতিতে আপনি জানেন যে এররের উৎস একটি নির্দিষ্ট এক্সেপশন টাইপেরই একটি রূপ হবে, সেখানে আপনি Exception ক্লাসের অধীনস্থ built in error typesগুলোর একটি থেকে ইনহেরিট করা বেছে নিতে পারেন। এররটি রেইজ করার সময়ও আপনার একটি অর্থবহ বার্তা যুক্ত করা উচিত।

এই নির্দিষ্ট অনুশীলনীতে চাওয়া হয়েছে যে আপনি একটি কাস্টম এক্সেপশন তৈরি করুন, যা আপনার meetup() ফাংশনকে বার-এর নাম ও সংখ্যার অবৈধ কোনো সমন্বয় দেওয়া হলে রেইজ/"থ্রো" করা হবে। যথাযথ এক্সেপশন কাস্টমাইজ করলে, সেগুলো raise করলে এবং যথাযথ এরর বার্তা যুক্ত করলে তবেই টেস্টগুলো পাস করবে।

কোনো built-in exception কাস্টমাইজ করতে, সেই এক্সেপশন থেকে ইনহেরিট করে একটি class তৈরি করুন। বার্তাসহ কাস্টম এক্সেপশনটি রেইজ করার সময়, বার্তাটি 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.")

সূত্র

প্রতি মাসের Wednesteenth-এ হওয়া একটি Boulder মিটআপের কথা উল্লেখ করেছিলেন Jeremy Hinegardner
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Python Exercism

মিটআপ শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, Python ট্র্যাকের 17টি কনসেপ্ট146টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।