Домашни > Man who speaks the ends of words > Решения > Решението на Теодор Костадинов

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

11 точки общо

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

 1def get_subword_size(word):
 2    return round(len(word) / 3)
 3
 4
 5def beginning(word):
 6    beginning_slice = slice(None, get_subword_size(word))
 7    return word[beginning_slice]
 8
 9
10def end(word):
11    end_slice = slice(len(word) - get_subword_size(word), None)
12    return word[end_slice]
13
14
15def middle(word):
16    subword_size = get_subword_size(word)
17    middle_slice = slice(subword_size, len(word) - subword_size)
18    return word[middle_slice]
19
20
21def split_sentence(sentence):
22    return [
23        (beginning(word), middle(word), end(word)) for word in sentence.split()
24    ]

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

OK

Дискусия
Теодор Костадинов
15.10.2023 14:40

За slice() функцията съм чел, че била полезна да прави кодът по-разбираем, когато имаме някакви "преобразувания". Реших да го пренапиша с нея, за да получа ваша обратна връзка. Явно наистина не е много популярна функция. За трите-реда-return: без тях ставаше повече от 79 символа редът, та беше автоматично разрязан.
Георги Кунчев
13.10.2023 09:52

Генерално - много чисто, ясно и подредено решение. Браво!
История
Това решение има само една версия.