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

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

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

Резултати

  • 5 точки от тестове
  • 0 бонус точки
  • 5 точки общо
  • 9 успешни тест(а)
  • 1 неуспешни тест(а)

Код

def prepare_meal(n):
str=''
newN=n
while newN%3==0:
newN=newN/3
str=str+'spam'
if (newN%3==0):
str=str+' '
if (n%3==0) & (n%5==0):
str=str+' and '
while newN%5==0:
newN=newN/5
str=str+'eggs'
if (newN%5==0):
str=str+' '
return str

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

.F........
======================================================================
FAIL: test_eggs_with_additional_egg_multipliers (__main__.FirstHomeworkTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/test20120506-8116-drzc6g", line 22, in test_eggs_with_additional_egg_multipliers
    self.assertEqual('eggs', self.solution.prepare_meal(5**4))
AssertionError: 'eggs' != 'eggs eggs eggs eggs'
- eggs
+ eggs eggs eggs eggs


----------------------------------------------------------------------
Ran 10 tests in 0.002s

FAILED (failures=1)

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

Никола обнови решението на 15.03.2012 16:39 (преди над 8 години)

+def prepare_meal(n):
+ str=''
+ newN=n
+ while newN%3==0:
+ newN=newN/3
+ str=str+'spam'
+ if (newN%3==0):
+ str=str+' '
+ if (n%3==0) & (n%5==0):
+ str=str+' and '
+ while newN%5==0:
+ newN=newN/5
+ str=str+'eggs'
+ if (newN%5==0):
+ str=str+' '
+ return str

Искаш ли да се опиташ да ми обясниш защо правиш това?

newN=n
  • Името е в CamelCase
  • Нямаш спейсове около операторите
  • Имаш напълно излишни скоби в if-овете
  • str е ужасно име за променлива, ако не пишеш на C