রেইনড্রপস হলো FizzBuzz চ্যালেঞ্জের কিছুটা বেশি জটিল একটি সংস্করণ, যা একটি ক্লাসিক ইন্টারভিউ প্রশ্ন।
আপনার কাজ হলো একটি সংখ্যাকে তার সংশ্লিষ্ট বৃষ্টির ফোঁটার শব্দে রূপান্তর করা।
যদি কোনো প্রদত্ত সংখ্যা:
"Plong"."PlingPlang"."34".একটি সংখ্যা আরেকটি সংখ্যা দিয়ে নিঃশেষে বিভাজ্য কি না তা পরীক্ষা করার একটি কমন উপায় হলো রিমেইন্ডার বা মডুলাস শূন্যের সাথে তুলনা করা। এসবের একটির (বা দুটিরই) জন্য বেশিরভাগ প্রোগ্রামিং ভাষায় অপারেটর বা ফাংশন থাকে।
এই অনুশীলনীটি সমাধান করার সেরা উপায় হলো Python-এর % (মডুলো) অপারেটর, যা ধনাত্মক পূর্ণসংখ্যার ভাগের ভাগশেষ রিটার্ন করে।
এর অপারেটর মডিউল-এ একটি সমতুল্য মেথড আছে, operator.mod()।
Python-এর ম্যাথ মডিউল-এ আরও কিছু 'ভাগশেষ' মেথড আছে।
math.fmod() %-এর মতোই কাজ করে, তবে ফ্লোট নিয়ে কাজ করে।
math.remainder() ভাগের ভাগশেষ বের করার জন্য "শূন্যের সবচেয়ে কাছের ধাপ" অ্যালগরিদম ইমপ্লিমেন্ট করে।
যদিও আমরা আপনাকে এই মেথডগুলোর সাথে পরিচিত হওয়ার উৎসাহ দিই, তবুও এর কোনোটিই %-এর ফলাফলের সাথে হুবহু মিলবে না, তাই এই অনুশীলনীর সাথে এগুলো ব্যবহারের সুপারিশ করা হয় না।
বিল্ট-ইন ফাংশন divmod()-ও দুইটি ধনাত্মক পূর্ণসংখ্যার সাথে ব্যবহার করলে %-এর সাথে মেলে এমন একটি ভাগশেষ দেয়, কিন্তু এটি একটি tuple রিটার্ন করে যা আনপ্যাক করতে হয়।
Exercism-এ সাইন আপ করুন, Python ট্র্যাকের 17টি কনসেপ্ট146টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।
কিছু সমাধান ঘুরে দেখুন, যেখানে আছে ফাংশনাল পাইপলাইন, ম্যাট্রিক্স গুণ, ম্যাক্রো দিয়ে তৈরি আগেই হিসাব করে রাখা টেবিল-ভিত্তিক সমাধান, অবজেক্ট ওরিয়েন্টেড পদ্ধতি, Python ও TCL-এর চমকপ্রদ ব্যবহার, আর একটি এন্টারপ্রাইজ সংস্করণ।