দুটি ভিন্ন আকারের বালতি এবং প্রথমে কোন বালতি ভরবেন তা দেওয়া থাকলে, বালতিগুলোর মধ্যে কৌশলগতভাবে তরল স্থানান্তর করে সঠিক পরিমাণ লিটার মাপতে কতগুলো অ্যাকশন লাগবে, তা নির্ণয় করুন।
আপনার সমাধানকে কিছু নিয়ম মেনে চলতে হবে:
আপনার প্রোগ্রাম ইনপুট হিসেবে নেবে:
আপনার প্রোগ্রাম নির্ধারণ করবে:
লক্ষ করুন: এক বা উভয় বালতিতে যেকোনো সময় পরিবর্তন করা হলে সেটি এক (১) অ্যাকশন হিসেবে ধরা হবে।
উদাহরণ: বালতি one-এ সর্বোচ্চ ৭ লিটার ধরে, আর বালতি two-তে সর্বোচ্চ ১১ লিটার ধরে। ধরা যাক, একটি নির্দিষ্ট ধাপে বালতি one-এ ৭ লিটার আর বালতি two-তে ৮ লিটার আছে (৭,৮)। আপনি যদি বালতি one খালি করেন এবং বালতি two-তে কোনো পরিবর্তন না করেন, ফলে যথাক্রমে ০ লিটার আর ৮ লিটার থাকে (০,৮), তবে সেটি একটি অ্যাকশন হিসেবেই ধরা হবে। এর বদলে, আপনি যদি বালতি one থেকে বালতি two-তে ঢালতেন যতক্ষণ না বালতি two ভরে যায়, ফলে বালতি one-এ ৪ লিটার আর বালতি two-তে ১১ লিটার থাকত (৪,১১), তবে সেটিও কেবল একটি অ্যাকশন হিসেবেই ধরা হতো।
আরেকটি উদাহরণ: বালতি one-এ ৩ লিটার ধরে, আর বালতি two-তে সর্বোচ্চ ৫ লিটার ধরে। আপনাকে বলা হয়েছে, আপনাকে বালতি one দিয়ে শুরু করতে হবে। তাই আপনার প্রথম অ্যাকশন হলো বালতি one ভরা। দ্বিতীয় অ্যাকশন হিসেবে আপনি বালতি one খালি করার সিদ্ধান্ত নেন। তৃতীয় অ্যাকশনে আপনি বালতি two ভরতে পারবেন না, কারণ এতে তৃতীয় নিয়মটি ভাঙে, অর্থাৎ কোনো অ্যাকশনের পরে আপনি এমন অবস্থায় পৌঁছাতে পারবেন না যেখানে শুরুর বালতিটি খালি আর অন্যটি ভরা।
Fullstack Academy-এ <3 দিয়ে লিখেছেন Lindsay Levine।
কখনও কখনও এক্সেপশন রেইজ করা প্রয়োজন হয়। এটা করার সময় আপনার সর্বদা একটি অর্থবহ এরর মেসেজ যোগ করা উচিত, যাতে বোঝা যায় এররটির উৎস কী। এতে আপনার কোড আরও পাঠযোগ্য হয় এবং Debug করতে অনেক সুবিধা হয়। এমন পরিস্থিতিতে যেখানে আপনি জানেন যে এররের উৎসটি একটি নির্দিষ্ট টাইপ হবে, আপনি বিল্ট-ইন এরর টাইপগুলোর একটি রেইজ করা বেছে নিতে পারেন, তবে তবুও একটি অর্থবহ মেসেজ যোগ করা উচিত।
এই নির্দিষ্ট অনুশীলনীতে একটি ValueError "থ্রো" করতে আপনার raise স্টেটমেন্ট ব্যবহার করা আবশ্যক। আপনি যদি exception raise করেন এবং এর সাথে একটি মেসেজও যোগ করেন, তবেই টেস্টগুলো পাস করবে।
একটি মেসেজসহ ValueError রেইজ করতে, exception টাইপের আর্গুমেন্ট হিসেবে মেসেজটি লিখুন:
raise ValueError("A meaningful error message here.")
Exercism-এ সাইন আপ করুন, Python ট্র্যাকের 17টি কনসেপ্ট146টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।