Решение на doge от Иван Иванов

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

Към профила на Иван Иванов

Резултати

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

Код

def format_number(number):
if number % 3 == 0 and not number % 5 == 0:
return "such"
if number % 5 == 0 and not number % 3 == 0:
return "much"
if number % 3 == 0 and number % 5 == 0:
return "suchmuch"
return str(number)
def wow_such_much (start, end):
formatted_words = []
for number in range(start, end):
formatted_words.append(format_number(number))
return formatted_words
def is_doge_word(word):
doge_words = ["wow", "lol", "so", "such", "much", "very"]
return word in doge_words
def count_doge_words(sentence):
words_in_sentence = sentence.split()
doge_word_counter = 0
for word in words_in_sentence:
if is_doge_word(word):
doge_word_counter += 1
return doge_word_counter

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

...............
----------------------------------------------------------------------
Ran 15 tests in 0.009s

OK

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

Иван обнови решението на 11.03.2014 00:20 (преди около 10 години)

+def format_number(number):
+ if number % 3 == 0:
+ if number % 5 == 0:
+ return "suchmuch"
+ return "such"
+ if number % 5 == 0:
+ return "much"
+ return str(number)
+
+def wow_such_much (start, end):
+ returned_list = []
+ for number in range(start, end):
+ returned_list.append(format_number(number))
+ return returned_list
+
+doge_words = ["wow", "lol", "so", "such", "much", "very"]
+
+def is_doge_word(word):
+ return word in doge_words
+
+def count_doge_words(sentence):
+ words_in_sentence = sentence.split()
+ doge_word_counter = 0
+ for word in words_in_sentence:
+ if is_doge_word(word):
+ doge_word_counter += 1
+ return doge_word_counter
  • Изнесъл си doge_words извън метода, но ние не сме привърженици на глобалните променливи. Ако това е "константа" обозначи я като такава.

  • returned_list ? Помисли за по-подходящо име. Силно препоръчително е да не включва типа на данни-те, а да става ясно какъв е техния смисъл.

  • във format_number не си си спестил проверки със това излишно влагане. Кода ще е по-четим и прилежен, ако си изброиш всички случаи в if-elif-.. конструкция

Иван обнови решението на 11.03.2014 14:38 (преди около 10 години)

def format_number(number):
- if number % 3 == 0:
- if number % 5 == 0:
- return "suchmuch"
+ if number % 3 == 0 and not number % 5 == 0:
return "such"
- if number % 5 == 0:
+ if number % 5 == 0 and not number % 3 == 0:
return "much"
+ if number % 3 == 0 and number % 5 == 0:
+ return "suchmuch"
return str(number)
def wow_such_much (start, end):
- returned_list = []
+ formatted_words = []
for number in range(start, end):
- returned_list.append(format_number(number))
- return returned_list
+ formatted_words.append(format_number(number))
+ return formatted_words
-doge_words = ["wow", "lol", "so", "such", "much", "very"]
-
def is_doge_word(word):
+ doge_words = ["wow", "lol", "so", "such", "much", "very"]
return word in doge_words
def count_doge_words(sentence):
words_in_sentence = sentence.split()
doge_word_counter = 0
for word in words_in_sentence:
if is_doge_word(word):
doge_word_counter += 1
return doge_word_counter