Ивайло обнови решението на 11.03.2014 02:42 (преди над 10 години)
+parasitic_words = ["wow", "lol", "so", "such", "much", "very"]
+
+def count_doge_words(input_string):
+ count = 0
+
+ input_words = input_string.split(" ")
+
+ for word in input_words:
+ if word in parasitic_words:
+ count += 1
+
+ return count
+
+#wow_such_much implementation is below
+SUCH = "such"
+MUCH = "much"
+SUCHMUCH = "suchmuch"
+
+def wow_such_much(start, end):
+ values = []
+ while start < end:
+ if (start % 3) == 0 and (start % 5) == 0:
+ values.append(SUCHMUCH)
+ elif (start % 3) == 0:
+ values.append(SUCH)
+ elif (start % 5) == 0:
+ values.append(MUCH)
+ else:
+ values.append(start)
+
+ start += 1
+
+ return values
Ако
parasitic_words
е константа го обозначи както ви показахме, ако не е - не му е там мястото. Глобалните променливи не са хубаво нещо.input_words
излишна, съвсем спокойно можеш да си направиш.split
-а в условието наfor
-ане са ти необходими тези скоби в
if-elif-else
клаузите. Операторите за сравнение са с най-нисък приоритет.-
Относно това:
имам две забележки:while start < end: ... start += 1
- Обикновено е объркващо и непрепоръчително да използваш параметър получен като вход на функция и за локална променлива.
- На лекция от вчера(10.03) имаме цял слайд за тази конструкция и кой е по-добрия ѝ вариант.
-
Пусни си и тестовете!! Имаш проблем с елементите на връщания от
wow_such_much
списък