Стоян обнови решението на 11.03.2012 17:22 (преди почти 13 години)
+def prepare_meal(number):
+
+ spam = 'spam '
+ eggs = 'eggs'
+
+ if number == 0:
+ return ''
+
+ pow_3,count_of_pow_3 = 3,0
+ if number % 3 == 0:
+ while number % pow_3 == 0:
+ pow_3 *= 3
+ count_of_pow_3 += 1
+ spam_string = (spam * count_of_pow_3)[:-1]
+ else:
+ spam_string = ''
+
+ if number % 5 == 0:
+ if spam_string == '':
+ return eggs
+ else:
+ return spam_string + ' and ' + eggs
+ else:
+ return spam_string
+
Променливи с имена n
и it
са трудни за четене дори в толкова проста функция.
От друга страна ми харесва, че кодът ти е така структуриран, че се получават няколко независими части. Можеше да стигнеш стъпка по-натам и да изкараш независимите части в отделни функции.