Решение на Да си приготвим нещо за хапване от Николай Колев

Обратно към всички решения

Към профила на Николай Колев

Резултати

  • 6 точки от тестове
  • 0 бонус точки
  • 6 точки общо
  • 10 успешни тест(а)
  • 0 неуспешни тест(а)

Код

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

Лог от изпълнението

..........
----------------------------------------------------------------------
Ran 10 tests in 0.001s

OK

История (1 версия и 1 коментар)

Николай обнови решението на 07.03.2012 22:18 (преди над 8 години)

+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 интервала.