قطرات باران نسخهی کمی پیچیدهتر چالش FizzBuzz است، یک پرسش کلاسیک در مصاحبهها.
وظیفهی شما این است که یک عدد را به صداهای قطرهی باران متناظر با آن تبدیل کنید.
اگر یک عدد دادهشده:
"Plong" خواهد بود."PlingPlang" خواهد بود."34" خواهد بود.یک روش رایج برای آزمودن این که آیا یک عدد بر عدد دیگری بخشپذیر است، مقایسهی «باقیمانده» یا «پیمانه» با صفر است. بیشتر زبانها عملگرها یا توابعی برای یکی (یا هر دوی) اینها فراهم میکنند.
بهترین راه حل این تمرین، استفاده از عملگر % در Python (باقیمانده) است که باقیماندهی تقسیم دو عدد صحیح مثبت را برمیگرداند.
معادل متدی آن، operator.mod() در ماژول operator است.
Python همچنین در ماژول math متدهای دیگری برای «باقیمانده» ارائه میدهد.
math.fmod() مانند % عمل میکند، اما روی اعداد اعشاری کار میکند.
math.remainder() الگوریتمی با «گام نزدیکترین به صفر» را برای باقیماندهی تقسیم پیادهسازی میکند.
هرچند شما را تشویق میکنیم با این متدها آشنا شوید، اما هیچکدام از آنها دقیقاً با نتیجهی % یکسان نیستند و برای استفاده در این تمرین توصیه نمیشوند.
تابع توکار divmod() نیز اگر با دو عدد صحیح مثبت به کار برود، باقیماندهای مطابق با % میدهد، اما یک tuple برمیگرداند که باید بازگشایی شود.
در Exercism ثبتنام کنید تا Python را همراه با 17 مفهوم146 تمرین و مربیگری انسانی واقعی یاد بگیرید و در آن استاد شوید، همهی اینها رایگان.
راهحلهایی را بررسی کنید که از خطوط لولهی تابعی، ضرب ماتریسی، راهحلهای جدولی پیشمحاسبهشده با یک ماکرو، رویکرد شیءگرا، استفادهی چشمگیر از Python و TCL و یک نسخهی سازمانی بهره میبرند.