Решение на doge от Гено Чипилски

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

Към профила на Гено Чипилски

Резултати

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

Код

def wow_such_much(start, end):
output = []
for number in range(start, end):
element = ''
if (number % 3) and (number % 5):
element = str(number)
elif not (number % 3):
element = 'such'
if not (number % 5):
element += 'much'
output.append(element)
return output
def count_doge_words(str_input):
doge_words = ['wow', 'lol', 'so', 'such', 'much', 'very']
i_counter = 0
for word in str_input.split(' '):
if word in doge_words:
i_counter += 1
return i_counter

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

...............
----------------------------------------------------------------------
Ran 15 tests in 0.007s

OK

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

Гено обнови решението на 07.03.2014 15:16 (преди над 10 години)

+def wow_such_much(start, end):
+ if not isinstance(start, int):
+ return None
+ if not isinstance(end, int):
+ return None
+ list_elems = []
+
+ for number in range(start, end):
+ element = ''
+ if (number % 3) and (number % 5):
+ element = str(number)
+ else:
+ if not (number % 3):
+ element = 'such'
+ if not (number % 5):
+ element += 'much'
+ list_elems.append(element)
+ return list_elems
+
+def count_doge_words(str_input):
+ list_searched_words = ['wow', 'lol', 'so', 'such', 'much', 'very']
+ i_counter = 0
+ for word in str_input.split(' '):
+ if word in list_searched_words:
+ i_counter += 1
+ return i_counter
  • в python има по-добър еквивалент на else if
  • няма смисъл от type checking
  • list_elems е кофти име по няколко причини:
    • има ненужно съкращение в себе си
    • не е описателно
    • и пак не е страшно кратко, за да каже човек че това оправдава горните две
  • list_searched_words съвсем(даже го копирах, понеже ме мързи да го пиша). Като цяло префиксът list_ е безмислен и на двете места. Кодът е достатъчно кратък, за да може човек като го види да се сети, че нещото е списък и без да е казано в името.

Гено обнови решението на 07.03.2014 17:58 (преди над 10 години)

def wow_such_much(start, end):
- if not isinstance(start, int):
- return None
- if not isinstance(end, int):
- return None
- list_elems = []
-
+ output = []
for number in range(start, end):
element = ''
if (number % 3) and (number % 5):
element = str(number)
- else:
- if not (number % 3):
- element = 'such'
- if not (number % 5):
- element += 'much'
- list_elems.append(element)
- return list_elems
+ elif not (number % 3):
+ element = 'such'
+ if not (number % 5):
+ element += 'much'
+ output.append(element)
+ return output
def count_doge_words(str_input):
- list_searched_words = ['wow', 'lol', 'so', 'such', 'much', 'very']
+ doge_words = ['wow', 'lol', 'so', 'such', 'much', 'very']
i_counter = 0
for word in str_input.split(' '):
- if word in list_searched_words:
+ if word in doge_words:
i_counter += 1
return i_counter