Решение на doge от Емануел Стоянов

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

Към профила на Емануел Стоянов

Резултати

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

Код

def wow_such_much(start, end):
doge_array = []
for number in range(start, end):
if number % 3 == 0 and number % 5 == 0:
doge_array.append('suchmuch')
elif number % 3 == 0:
doge_array.append('such')
elif number % 5 == 0:
doge_array.append('much')
else:
doge_array.append(str(number))
return doge_array
def count_doge_words(sentence):
count = 0
bad_words = ['wow', 'lol', 'such', 'much', 'so', 'very']
for word in sentence.split():
if word in bad_words:
count += 1
return count

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

...............
----------------------------------------------------------------------
Ran 15 tests in 0.010s

OK

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

Емануел обнови решението на 09.03.2014 20:22 (преди около 10 години)

+def wow_such_much(start, end):
+ output = []
+ for number in range(start, end):
+ if number % 3 == 0 and number % 5 == 0:
+ output.append('suchmuch')
+ elif number % 3 == 0 and number % 5 != 0:
+ output.append('such')
+ elif number % 3 != 0 and number % 5 == 0:
+ output.append('much')
+ else:
+ output.append(str(number))
+ return output
+
+
+def count_doge_words(sentence):
+ count = 0
+ bad_words = ['wow', 'lol', 'such', 'much', 'so', 'very']
+ for word in sentence.split():
+ if member(word, bad_words):
+ count += 1
+ return count
+
+
+def member(is_member, array):
+ for word in array:
+ if is_member == word:
+ return True
+ return False

Хубаво решение.

Ето няколко неща за размисъл и подобрение:

  • опитай се да измислиш по-описателно име за променливата output; именуването е трудно и може да не се получи
  • помисли върху тези условия в if-a: number % 3 == 0 and number % 5 != 0 и number % 3 != 0 and number % 5 == 0; нужно ли е да проверяваш, че не се дели на другото число?
  • тази фунцкия member не е идиоматичният начин за проверка дали елемент се съдържа в списък(масив); опитай се да намериш "питонския" начин

Емануел обнови решението на 09.03.2014 22:50 (преди около 10 години)

def wow_such_much(start, end):
- output = []
+ doge_array = []
for number in range(start, end):
if number % 3 == 0 and number % 5 == 0:
- output.append('suchmuch')
- elif number % 3 == 0 and number % 5 != 0:
- output.append('such')
- elif number % 3 != 0 and number % 5 == 0:
- output.append('much')
+ doge_array.append('suchmuch')
+ elif number % 3 == 0:
+ doge_array.append('such')
+ elif number % 5 == 0:
+ doge_array.append('much')
else:
- output.append(str(number))
- return output
+ doge_array.append(str(number))
+ return doge_array
def count_doge_words(sentence):
count = 0
bad_words = ['wow', 'lol', 'such', 'much', 'so', 'very']
for word in sentence.split():
- if member(word, bad_words):
+ if word in bad_words:
count += 1
return count
-
-def member(is_member, array):
- for word in array:
- if is_member == word:
- return True
- return False