Домашни > Man who speaks the ends of words > Решения > Решението на Мартин Кузманов

Резултати
10 точки от тестове
0 точки от учител

10 точки общо

12 успешни теста
0 неуспешни теста
Код
Скрий всички коментари

 1def beginning(word):
 2    length = len(word) # take the length
 3    end = length # default end
 4
 5    # in both 0|1 remainder cases we have the same amount
 6    if length % 3 != 2: 
 7        end = end // 3
 8        return word[0:end]
 9    # other wise the 2 remainder case
10    end = end // 3 + 1 
11    return word[0:end]
12
13def middle(word):
14    length = len(word)
15    start = 0  #default start
16    end = length # default end
17    # take the portion from the first third to the second third
18    if length % 3 == 0: 
19        start = length // 3
20        end = 2 * start
21        return word[start:end]
22    # both the beg and end are the same length - leftover is the middle
23    if length % 3 == 1: 
24        start = length // 3
25        end = length - (length // 3)
26        return word[start:end]
27    # same as the above but account for the 'extra' chars a 1 more
28    if length % 3 == 2: 
29        start = length // 3 + 1
30        end = length - (length // 3) - 1
31        return word[start:end]
32    
33def end(word):
34    # take the beginning of the reversed string
35    reversed_end = beginning(word[::-1]) 
36    # reverse it back and return 
37    return reversed_end[::-1] 
38
39def split_sentence(sentence):
40    result=[]  # init a list
41    words=sentence.split() # split the sentence
42    for word in words: # traverse the words 
43        parts=(beginning(word),middle(word),end(word)) # construct the tuple
44        result.append(parts) # add to the list
45    return result

............
----------------------------------------------------------------------
Ran 12 tests in 0.000s

OK

Дискусия
Георги Кунчев
16.10.2023 12:17

Ок е дори да нямаш нито един (за домашните). Иначе, на места си е добре да оставиш, ако кодът не е достатъчно ясен по въпроса ЗАЩО се прави нещо.
Мартин Кузманов
16.10.2023 12:12

А по принцип, проблем ли е да липсват коментари? Питам понеже не знаех как стои въпроса при оценяването на домашна.
Георги Кунчев
16.10.2023 09:08

Доста голямо количество коментари си оставил. Коментарите са хубаво нещо, но ако това, което те показват, е очевидно от кода, са по-скоро излишни и само прачат на четящия да се концентрира. Например "split the sentence, construct the tuple"...никаква допълнителна информация. Коментарите в `end` са добре.
История

n1def beggining(word):n1def beginning(word):
2    length = len(word) # take the length2    length = len(word) # take the length
3    end = length # default end3    end = length # default end
n4    n4 
5    # in both 0|1 remainder cases we have the same amount5    # in both 0|1 remainder cases we have the same amount
6    if length % 3 != 2: 6    if length % 3 != 2: 
7        end = end // 37        end = end // 3
8        return word[0:end]8        return word[0:end]
9    # other wise the 2 remainder case9    # other wise the 2 remainder case
10    end = end // 3 + 1 10    end = end // 3 + 1 
11    return word[0:end]11    return word[0:end]
1212
13def middle(word):13def middle(word):
14    length = len(word)14    length = len(word)
15    start = 0  #default start15    start = 0  #default start
16    end = length # default end16    end = length # default end
17    # take the portion from the first third to the second third17    # take the portion from the first third to the second third
18    if length % 3 == 0: 18    if length % 3 == 0: 
19        start = length // 319        start = length // 3
20        end = 2 * start20        end = 2 * start
21        return word[start:end]21        return word[start:end]
22    # both the beg and end are the same length - leftover is the middle22    # both the beg and end are the same length - leftover is the middle
23    if length % 3 == 1: 23    if length % 3 == 1: 
24        start = length // 324        start = length // 3
25        end = length - (length // 3)25        end = length - (length // 3)
26        return word[start:end]26        return word[start:end]
27    # same as the above but account for the 'extra' chars a 1 more27    # same as the above but account for the 'extra' chars a 1 more
28    if length % 3 == 2: 28    if length % 3 == 2: 
29        start = length // 3 + 129        start = length // 3 + 1
30        end = length - (length // 3) - 130        end = length - (length // 3) - 1
31        return word[start:end]31        return word[start:end]
32    32    
33def end(word):33def end(word):
n34    # take the beggining of the reversed stringn34    # take the beginning of the reversed string
35    reversed_end = beggining(word[::-1]) 35    reversed_end = beginning(word[::-1]) 
36    # reverse it back and return 36    # reverse it back and return 
37    return reversed_end[::-1] 37    return reversed_end[::-1] 
3838
39def split_sentence(sentence):39def split_sentence(sentence):
40    result=[]  # init a list40    result=[]  # init a list
41    words=sentence.split() # split the sentence41    words=sentence.split() # split the sentence
42    for word in words: # traverse the words 42    for word in words: # traverse the words 
t43        parts=(beggining(word),middle(word),end(word)) # construct the tuplet43        parts=(beginning(word),middle(word),end(word)) # construct the tuple
44        result.append(parts) # add to the list44        result.append(parts) # add to the list
45    return result45    return result
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op