Решение на doge от Момчил Анастасов

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

Към профила на Момчил Анастасов

Резултати

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

Код

def wow_such_much(start, end):
such_much_list = []
while start < end:
if start % 3 != 0 and start % 5 != 0:
start_string = str(start)
such_much_list.append(start_string)
else:
if start % 3 == 0 and start % 5 == 0:
such_much_list.append('suchmuch')
elif start % 3 == 0:
such_much_list.append('such')
else:
such_much_list.append('much')
start += 1
return such_much_list
def count_doge_words(input):
doge_words = ['wow', 'lol', 'so', 'such', 'much', 'very']
count = 0
words = input.split()
for i in doge_words:
for j in words:
if j == i:
count += 1
return count

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

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

OK

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

Момчил обнови решението на 12.03.2014 03:23 (преди над 10 години)

+def wow_such_much(start, end):
+ my_list = []
+ if start == end:
+ print("Invalid parameters")
+ else:
+ if start > end:
+ temp = start
+ start = end
+ end = temp
+ while start < end:
+ if start % 3 != 0 and start % 5 != 0:
+ start_string = str(start)
+ my_list.append(start_string)
+ else:
+ if start % 3 == 0 and start % 5 == 0:
+ my_list.append('suchmuch')
+ elif start % 3 == 0:
+ my_list.append('such')
+ else:
+ my_list.append('much')
+ start += 1
+ return my_list
+
+def count_doge_words(input):
+ doge_words = ['wow', 'lol', 'so', 'such', 'much', 'very']
+ count = 0
+ if len(input) > 0:
+ words = input.split()
+ for i in doge_words:
+ for j in words:
+ if j == i:
+ count += 1
+ return count
  • my_list не е подходящо име
  • ако start и end са равни трябва да връща празен списък, а не да принти
  • виж какво прави range()
  • не е нужно да правиш проверка, ако start > end
  • if len(input > 0) не ти е нужно, защото words = input.split() ще ти върне празен списък []
  • опитай се да направиш count_doge_words без два вложени цикъла - само с един

Момчил обнови решението на 12.03.2014 15:28 (преди над 10 години)

def wow_such_much(start, end):
- my_list = []
- if start == end:
- print("Invalid parameters")
- else:
+ such_much_list = []
+ if start != end:
if start > end:
temp = start
start = end
end = temp
while start < end:
if start % 3 != 0 and start % 5 != 0:
start_string = str(start)
- my_list.append(start_string)
+ such_much_list.append(start_string)
else:
if start % 3 == 0 and start % 5 == 0:
- my_list.append('suchmuch')
+ such_much_list.append('suchmuch')
elif start % 3 == 0:
- my_list.append('such')
+ such_much_list.append('such')
else:
- my_list.append('much')
+ such_much_list.append('much')
start += 1
- return my_list
+ return such_much_list
def count_doge_words(input):
doge_words = ['wow', 'lol', 'so', 'such', 'much', 'very']
count = 0
- if len(input) > 0:
- words = input.split()
- for i in doge_words:
- for j in words:
- if j == i:
- count += 1
+ words = input.split()
+ for i in doge_words:
+ for j in words:
+ if j == i:
+ count += 1
return count

Освен това, не разбирам защо правиш това:

if start > end:
    temp = start
    start = end
    end = temp

Ако искаш да размениш стойностите на start и end, можеш да направиш така: start, end = end, start. Но тогава възниква въпросът защо искаш да правиш това изобщо?

Не исках да може да се връща празен лист в случай, че се опита някой да го прецака. Но щом е ненужно, тогава и проверката за != няма да ми е необходима, тъй като няма да влезе в цикъла изобщо. Така или иначе няма време, за това махам проверките и това е.

Момчил обнови решението на 12.03.2014 15:56 (преди над 10 години)

def wow_such_much(start, end):
such_much_list = []
- if start != end:
- if start > end:
- temp = start
- start = end
- end = temp
- while start < end:
- if start % 3 != 0 and start % 5 != 0:
- start_string = str(start)
- such_much_list.append(start_string)
+ while start < end:
+ if start % 3 != 0 and start % 5 != 0:
+ start_string = str(start)
+ such_much_list.append(start_string)
+ else:
+ if start % 3 == 0 and start % 5 == 0:
+ such_much_list.append('suchmuch')
+ elif start % 3 == 0:
+ such_much_list.append('such')
else:
- if start % 3 == 0 and start % 5 == 0:
- such_much_list.append('suchmuch')
- elif start % 3 == 0:
- such_much_list.append('such')
- else:
- such_much_list.append('much')
- start += 1
+ such_much_list.append('much')
+ start += 1
return such_much_list
def count_doge_words(input):
doge_words = ['wow', 'lol', 'so', 'such', 'much', 'very']
count = 0
words = input.split()
for i in doge_words:
for j in words:
if j == i:
count += 1
return count