Решение на doge от Денис Бялев

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

Към профила на Денис Бялев

Резултати

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

Код

def divisors_5_3(number):
if number%5 == 0 and number%3 == 0:
return "suchmuch"
elif number%5 == 0:
return "much"
elif number%3 == 0:
return "such"
else:
return str(number)
def wow_such_much(start_of_range, end_of_range):
list_of_range=[x for x in range(start_of_range, end_of_range)]
list_of_range=list(map(lambda x: divisors_5_3(x), list_of_range))
return list_of_range
def count_doge_words(string_to_check):
bad_words=["wow", "lol", "so", "such", "much", "very"]
list_witn_no_bad_words=list(filter(lambda x: x in bad_words, string_to_check.split()))
return len(list_witn_no_bad_words)

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

...............
----------------------------------------------------------------------
Ran 15 tests in 0.008s

OK

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

Денис обнови решението на 09.03.2014 18:22 (преди над 10 години)

+def divisors_5_3(number):
+ if number%5 == 0 and number%3 == 0:
+ return "suchmuch"
+ elif number%5 == 0:
+ return "much"
+ elif number%3 == 0:
+ return "such"
+ else:
+ return str(number)
+
+def wow_such_much(start_of_range,end_of_range):
+ list_of_range=[]
+ if(end_of_range>=start_of_range):
+ for i in range(start_of_range,end_of_range):
+ list_of_range.append(str(i))
+ f=lambda x:divisors_5_3(int(x))
+ list_of_range=list(map(f,list_of_range))
+ return list_of_range
+
+
+def count_doge_words(string_to_check):
+ test=[]
+ test=string_to_check.split(' ')
+ bad_words=["wow", "lol", "so", "such", "much", "very"]
+ f=lambda x:x in bad_words
+ test=list(filter((lambda x:x in bad_words),test))
+ return len(test)
  • индентацията не ти е ок - предполагам, че редакторът ти слага табове, а не спейсове и тук, както виждаш, излиза като 8 спейса - трябва да са 4
  • PEP8 - виж къде трябва да се слагат бели символи(основно спейсове)
  • не слагай скоби около условията на if-овете - не е нужно и нарушаваш конвенция(PEP8)
  • в лекцията има слайд "for като в C", но се опитвай да ги избягваш, особено при итериране на колекции - припомни си другите начини за използване на for
  • нужно ли е в wow_such_much да минаваш през str и после отново на int?
  • map може да се използва и върху stringове, не само върху списъци
  • помисли дали ти трябва test = []
  • по подразбиране split разделя на бял символ, не е нужно да му казваш експлицитно
  • за какво ти е нужна f ?

Денис обнови решението на 11.03.2014 18:32 (преди над 10 години)

def divisors_5_3(number):
- if number%5 == 0 and number%3 == 0:
- return "suchmuch"
- elif number%5 == 0:
- return "much"
- elif number%3 == 0:
- return "such"
- else:
- return str(number)
+ if number%5 == 0 and number%3 == 0:
+ return "suchmuch"
+ elif number%5 == 0:
+ return "much"
+ elif number%3 == 0:
+ return "such"
+ else:
+ return str(number)
-def wow_such_much(start_of_range,end_of_range):
- list_of_range=[]
- if(end_of_range>=start_of_range):
- for i in range(start_of_range,end_of_range):
- list_of_range.append(str(i))
- f=lambda x:divisors_5_3(int(x))
- list_of_range=list(map(f,list_of_range))
- return list_of_range
-
+def wow_such_much(start_of_range, end_of_range):
+ list_of_range=[x for x in range(start_of_range, end_of_range)]
+ list_of_range=list(map(lambda x: divisors_5_3(x), list_of_range))
+ return list_of_range
def count_doge_words(string_to_check):
- test=[]
- test=string_to_check.split(' ')
+ bad_words=["wow", "lol", "so", "such", "much", "very"]
- bad_words=["wow", "lol", "so", "such", "much", "very"]
+ list_witn_no_bad_words=list(filter(lambda x: x in bad_words, string_to_check.split()))
- f=lambda x:x in bad_words
+ return len(list_witn_no_bad_words)
- test=list(filter((lambda x:x in bad_words),test))
- return len(test)