Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Из слова "самосовершенствование" составить 10 новых слов с помощью срезов.

Яна Михайлова Ученик (238), закрыт 1 неделю назад
Из слова "самосовершенствование" слова составить 10 новых слов с помощью срезов. В новых словах первая буква должна быть заглавной. Подсчитать количество букв в каждом созданном слове. Информацию выводить на экран в понятном виде.
Лучший ответ
Николай Веселуха Высший разум (360971) 1 месяц назад
 word = 'самосовершенствование' 
lst = []
lst.append(word[:4]+word[15:12:-2]+word[-13:6:-1]+word[9:12]+word[19:])
lst.append(word[4:16])
lst.append(word[4:6]+word[-13:5:-1]+word[11:12]+word[15:])
lst.append(word[:5]+word[-14:5:-1])
lst.append(word[-17:1:-1])
lst.append(word[6:10]+word[-2:16:-1])
lst.append(word[-19:1:-1]+word[-2:16:-1])
lst.append(word[-17:1:-1]+word[-10:9:-1]+word[18:])
lst.append(word[4:8]+word[13:14])
lst.append(word[-13:6:-1]+word[9:12]+word[19:])
lst = list(map(str.capitalize, lst))
dic = {}
for key in lst:
dic[key] = len(key)
for key, value in dic.items():
print('{0} : {1}'.format(key, value))
Яна МихайловаУченик (238) 1 месяц назад
Благодарю! А есть вариант проще сделать? Например, исходя из кодов в моем скриншоте с помощью len или split?
Николай Веселуха Высший разум (360971) Яна Михайлова, сначала строку нужно собрать из срезов, а только потом вычислить её длину. А вы строку печатаете срезами, каждый из которых имеет собственную длину. Какая вам разница, что между ними будет стоять, запятая или плюс? Поэтому мой вариант куда лучше вашего! При желании, можно избавиться от словаря.
Остальные ответы
Похожие вопросы