Решение на Да си приготвим нещо за хапване от Димитър Павлов

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

Към профила на Димитър Павлов

Резултати

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

Код

def prepare_meal(number):
meal = ""
and_flag = False
if number == 0:
meal = ""
return meal
while not number % 3 or not number %5:
if not number % 3:
if not and_flag:
and_flag = True
meal = meal + "spam"
number = number / 3
elif not number % 5:
if and_flag:
meal = meal + "and "
and_flag = False
meal = meal + "eggs"
number = number / 5
break
if not number % 3 or not number % 5:
meal = meal + " "
return meal

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

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

OK

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

Димитър обнови решението на 08.03.2012 21:17 (преди почти 13 години)

+def prepare_meal(number):
+ meal = ""
+ and_flag = False
+ if number == 0:
+ meal = ""
+ return meal
+ while not number % 3 or not number %5:
+ if not number % 3:
+ if not and_flag:
+ and_flag = True
+ meal = meal + "spam"
+ number = number / 3
+ elif not number % 5:
+ if and_flag:
+ meal = meal + "and "
+ and_flag = False
+ meal = meal + "eggs"
+ number = number / 5
+ break
+ if not number % 3 or not number % 5:
+ meal = meal + " "
+ return meal
+

Името need_of_and ме обърква. Няма ли име, което по-добре изразява смисъла на този флаг?
Помисли и за стойностите, които му даваш -- 0 и 1 са чудесни числа за процесора, но за хората True и False значат повече.

Освен това, има едно парче код, което бих извадил извън цикъла.

Преместих блока при задаване на 0 да дава на стринга meal = "" извън цикала преименувах променливата need_of_and (да беше доста страно име и да гледъл съм Pop fiction на Тарантино) и я направих променлива от тип boolean но нямам представа дали работи правилно правя го от компютър в FMI на копито няма Python а личното ми PC е на ремонт надявам се да работи не съм правил толкова драстични промени