Борислав обнови решението на 08.03.2012 18:58 (преди почти 13 години)
+def prepare_meal(number):
+ meal = ""
+ if number % 3 == 0:
+ while number % 3 == 0:
+ meal += "spam "
+ number = number / 3
+ if number % 5 == 0:
+ meal += "and eggs"
+ else: meal = meal.rstrip(' ')
+ elif number % 5 == 0:
+ meal += "eggs"
+ return meal
Твърде многото скоби не отговарят на стила на Python.
Освен това виждам едно малко парче код, което се повтаря и в цикъла, и извън него. Сигурен съм, че това повторение може да се избегне.
знакът за целочислено делене е //, / връща float, което в някои случаи може да ти създаде проблем:
>>> 999999999999999999999999/3
3.333333333333333e+23
>>> 999999999999999999999999//3
333333333333333333333333
Мерси Орльо прав си. Не знаеш, че в Python има и деление с //. Ако са правили тестове с толкова големи числа вярно ще ми гръмнат.
(9999999999999999999999/3) % 3 == 0 False
Проблем има при число с повече от 17 цифри.