Николай обнови решението на 07.03.2012 22:18 (преди почти 13 години)
+def get_spam_count(number):
+ if number == 0:
+ return 0
+ elif number < 0:
+ number = -number
+ counter = 0
+ while True:
+ if number % 3 == 0:
+ number /= 3
+ counter += 1
+ else:
+ return counter
+ if number == 1:
+ return counter
+
+def prepare_meal(number):
+ result = ''
+ has_eggs = number != 0 and number % 5 == 0
+ spam_count = get_spam_count(number)
+ if spam_count > 0:
+ spam_string = 'spam ' * spam_count
+ if has_eggs:
+ result = spam_string + 'and eggs'
+ else:
+ result = spam_string[:-1]
+ elif has_eggs:
+ result = 'eggs'
+ return result
Цикълът в get_spam_count
може да се направо по по-прост начин (и с по-малко код).
Също така - това изглежда необичайно:
else:
if ...
Може би ще изглежда по-четимо с еlif
И последно - на едно място се е промъкнала индентация с 5 интервала.