المسارات
/
Python
Python
/
التمارين
/
قطرات المطر
قطرات المطر

قطرات المطر

سهل

مقدمة

قطرات المطر نسخة أكثر تعقيدًا بقليل من تحدي FizzBuzz، وهو سؤال مقابلات عمل كلاسيكي.

التعليمات

مهمتك هي تحويل عدد إلى أصوات قطرات المطر المقابلة له.

إذا كان العدد المعطى:

  • يقبل القسمة على 3، فأضف "Pling" إلى النتيجة.
  • يقبل القسمة على 5، فأضف "Plang" إلى النتيجة.
  • يقبل القسمة على 7، فأضف "Plong" إلى النتيجة.
  • لا يقبل القسمة على 3 أو 5 أو 7، فيجب أن تكون النتيجة العدد نفسه على هيئة سلسلة نصية.

أمثلة

  • العدد 28 يقبل القسمة على 7، لكنه لا يقبل القسمة على 3 أو 5، لذا ستكون النتيجة "Plong".
  • العدد 30 يقبل القسمة على 3 و5، لكنه لا يقبل القسمة على 7، لذا ستكون النتيجة "PlingPlang".
  • العدد 34 لا يقبل القسمة على 3 أو 5 أو 7، لذا ستكون النتيجة "34".
Note

من الطرق الشائعة لاختبار ما إذا كان عدد يقبل القسمة على عدد آخر دون باقٍ أن تقارن باقي القسمة أو المقياس بالصفر. معظم اللغات توفر عوامل أو دوال لأحد هذين (أو لكليهما).

كيف يُنظَّم هذا التمرين في Python

من الأفضل حل هذا التمرين باستخدام عامل % في Python (باقي القسمة)، وهو يُرجع باقي قسمة عددين صحيحين موجبين. وله مكافئ من نوع طريقة، هو operator.mod() في وحدة operator.

توفّر Python أيضًا طرقًا إضافية لحساب "الباقي" في وحدة math. تتصرف math.fmod() مثل %، لكنها تعمل على أعداد عشرية. وتُطبّق math.remainder() خوارزمية "الخطوة الأقرب إلى الصفر" لحساب باقي القسمة. وبينما نشجعك على التعرّف على هذه الطرق، فإن أيًّا منهما لن يطابق تمامًا نتيجة %، ولا ننصح باستخدامهما في هذا التمرين.

تُعطي الدالة المدمجة divmod() أيضًا باقيًا يطابق % إذا استُخدمت مع عددين صحيحين موجبين، لكنها تُرجع tuple لا بد من فكّ حزمته.

تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Python Exercism

مستعد لبدء قطرات المطر؟

سجّل في Exercism لتتعلّم وتتقن Python عبر 17 مفهومًا146 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.

تعمّق في قطرات المطر!

استكشف حلولًا تستخدم خطوطًا دالية، وضرب المصفوفات، وحلولًا مبنية على جدول محسوب مسبقًا باستخدام ماكرو، ومنهجًا كائني التوجه، واستخدامًا مبهرًا لكل من Python وTCL، ونسخة للمؤسسات.