[{"data":1,"prerenderedAt":1665},["ShallowReactive",2],{"navigation":3,"\u002Fblog\u002Fpython\u002Fst3":386,"\u002Fblog\u002Fpython\u002Fst3-surround":1660},[4],{"title":5,"path":6,"stem":7,"children":8,"page":114},"Blog","\u002Fblog","blog",[9,115,184,329],{"title":10,"path":11,"stem":12,"children":13,"page":114},"Ege","\u002Fblog\u002Fege","blog\u002Fege",[14,18,22,26,30,34,38,42,46,50,54,58,62,66,70,74,78,82,86,90,94,98,102,106,110],{"title":15,"path":16,"stem":17},"ЕГЭ Задание 1","\u002Fblog\u002Fege\u002Ftask1","blog\u002Fege\u002Ftask1",{"title":19,"path":20,"stem":21},"ЕГЭ Задание 10","\u002Fblog\u002Fege\u002Ftask10","blog\u002Fege\u002Ftask10",{"title":23,"path":24,"stem":25},"ЕГЭ Задание 11","\u002Fblog\u002Fege\u002Ftask11","blog\u002Fege\u002Ftask11",{"title":27,"path":28,"stem":29},"ЕГЭ Задание 12","\u002Fblog\u002Fege\u002Ftask12","blog\u002Fege\u002Ftask12",{"title":31,"path":32,"stem":33},"ЕГЭ Задание 13","\u002Fblog\u002Fege\u002Ftask13","blog\u002Fege\u002Ftask13",{"title":35,"path":36,"stem":37},"ЕГЭ Задание 14","\u002Fblog\u002Fege\u002Ftask14","blog\u002Fege\u002Ftask14",{"title":39,"path":40,"stem":41},"ЕГЭ Задание 15","\u002Fblog\u002Fege\u002Ftask15","blog\u002Fege\u002Ftask15",{"title":43,"path":44,"stem":45},"ЕГЭ Задание 16","\u002Fblog\u002Fege\u002Ftask16","blog\u002Fege\u002Ftask16",{"title":47,"path":48,"stem":49},"ЕГЭ Задание 17","\u002Fblog\u002Fege\u002Ftask17","blog\u002Fege\u002Ftask17",{"title":51,"path":52,"stem":53},"ЕГЭ Задание 18","\u002Fblog\u002Fege\u002Ftask18","blog\u002Fege\u002Ftask18",{"title":55,"path":56,"stem":57},"ЕГЭ Задание 19, 20, 21","\u002Fblog\u002Fege\u002Ftask19_20_21","blog\u002Fege\u002Ftask19_20_21",{"title":59,"path":60,"stem":61},"ЕГЭ Задание 2","\u002Fblog\u002Fege\u002Ftask2","blog\u002Fege\u002Ftask2",{"title":63,"path":64,"stem":65},"ЕГЭ Задание 22","\u002Fblog\u002Fege\u002Ftask22","blog\u002Fege\u002Ftask22",{"title":67,"path":68,"stem":69},"ЕГЭ Задание 23","\u002Fblog\u002Fege\u002Ftask23","blog\u002Fege\u002Ftask23",{"title":71,"path":72,"stem":73},"ЕГЭ Задание 24","\u002Fblog\u002Fege\u002Ftask24","blog\u002Fege\u002Ftask24",{"title":75,"path":76,"stem":77},"ЕГЭ Задание 25","\u002Fblog\u002Fege\u002Ftask25","blog\u002Fege\u002Ftask25",{"title":79,"path":80,"stem":81},"ЕГЭ Задание 26","\u002Fblog\u002Fege\u002Ftask26","blog\u002Fege\u002Ftask26",{"title":83,"path":84,"stem":85},"ЕГЭ Задание 27","\u002Fblog\u002Fege\u002Ftask27","blog\u002Fege\u002Ftask27",{"title":87,"path":88,"stem":89},"ЕГЭ Задание 3","\u002Fblog\u002Fege\u002Ftask3","blog\u002Fege\u002Ftask3",{"title":91,"path":92,"stem":93},"ЕГЭ Задание 4","\u002Fblog\u002Fege\u002Ftask4","blog\u002Fege\u002Ftask4",{"title":95,"path":96,"stem":97},"ЕГЭ Задание 5","\u002Fblog\u002Fege\u002Ftask5","blog\u002Fege\u002Ftask5",{"title":99,"path":100,"stem":101},"ЕГЭ Задание 6","\u002Fblog\u002Fege\u002Ftask6","blog\u002Fege\u002Ftask6",{"title":103,"path":104,"stem":105},"ЕГЭ Задание 7","\u002Fblog\u002Fege\u002Ftask7","blog\u002Fege\u002Ftask7",{"title":107,"path":108,"stem":109},"ЕГЭ Задание 8","\u002Fblog\u002Fege\u002Ftask8","blog\u002Fege\u002Ftask8",{"title":111,"path":112,"stem":113},"ЕГЭ Задание 9","\u002Fblog\u002Fege\u002Ftask9","blog\u002Fege\u002Ftask9",false,{"title":116,"path":117,"stem":118,"children":119,"page":114},"Oge","\u002Fblog\u002Foge","blog\u002Foge",[120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180],{"title":121,"path":122,"stem":123},"ОГЭ Задание 1","\u002Fblog\u002Foge\u002Ftask1","blog\u002Foge\u002Ftask1",{"title":125,"path":126,"stem":127},"ОГЭ Задание 10","\u002Fblog\u002Foge\u002Ftask10","blog\u002Foge\u002Ftask10",{"title":129,"path":130,"stem":131},"ОГЭ Задание 11","\u002Fblog\u002Foge\u002Ftask11","blog\u002Foge\u002Ftask11",{"title":133,"path":134,"stem":135},"ОГЭ Задание 12","\u002Fblog\u002Foge\u002Ftask12","blog\u002Foge\u002Ftask12",{"title":137,"path":138,"stem":139},"ОГЭ Задание 13","\u002Fblog\u002Foge\u002Ftask13","blog\u002Foge\u002Ftask13",{"title":141,"path":142,"stem":143},"ОГЭ Задание 14","\u002Fblog\u002Foge\u002Ftask14","blog\u002Foge\u002Ftask14",{"title":145,"path":146,"stem":147},"ОГЭ Задание 15","\u002Fblog\u002Foge\u002Ftask15","blog\u002Foge\u002Ftask15",{"title":149,"path":150,"stem":151},"ОГЭ Задание 16","\u002Fblog\u002Foge\u002Ftask16","blog\u002Foge\u002Ftask16",{"title":153,"path":154,"stem":155},"ОГЭ Задание 2","\u002Fblog\u002Foge\u002Ftask2","blog\u002Foge\u002Ftask2",{"title":157,"path":158,"stem":159},"ОГЭ Задание 3","\u002Fblog\u002Foge\u002Ftask3","blog\u002Foge\u002Ftask3",{"title":161,"path":162,"stem":163},"ОГЭ Задание 4","\u002Fblog\u002Foge\u002Ftask4","blog\u002Foge\u002Ftask4",{"title":165,"path":166,"stem":167},"ОГЭ Задание 5","\u002Fblog\u002Foge\u002Ftask5","blog\u002Foge\u002Ftask5",{"title":169,"path":170,"stem":171},"ОГЭ Задание 6","\u002Fblog\u002Foge\u002Ftask6","blog\u002Foge\u002Ftask6",{"title":173,"path":174,"stem":175},"ОГЭ Задание 7","\u002Fblog\u002Foge\u002Ftask7","blog\u002Foge\u002Ftask7",{"title":177,"path":178,"stem":179},"ОГЭ Задание 8","\u002Fblog\u002Foge\u002Ftask8","blog\u002Foge\u002Ftask8",{"title":181,"path":182,"stem":183},"ОГЭ Задание 9","\u002Fblog\u002Foge\u002Ftask9","blog\u002Foge\u002Ftask9",{"title":185,"path":186,"stem":187,"children":188,"page":114},"Python","\u002Fblog\u002Fpython","blog\u002Fpython",[189,193,197,201,205,209,213,217,221,225,229,233,237,241,245,249,253,257,261,265,269,273,277,281,285,289,293,297,301,305,309,313,317,321,325],{"title":190,"path":191,"stem":192},"Знакомство с синтаксисом","\u002Fblog\u002Fpython\u002Fst1","blog\u002Fpython\u002Fst1",{"title":194,"path":195,"stem":196},"Отладка","\u002Fblog\u002Fpython\u002Fst10","blog\u002Fpython\u002Fst10",{"title":198,"path":199,"stem":200},"Модули и пакеты","\u002Fblog\u002Fpython\u002Fst11","blog\u002Fpython\u002Fst11",{"title":202,"path":203,"stem":204},"Кортежи","\u002Fblog\u002Fpython\u002Fst12","blog\u002Fpython\u002Fst12",{"title":206,"path":207,"stem":208},"Знакомство со списками","\u002Fblog\u002Fpython\u002Fst13","blog\u002Fpython\u002Fst13",{"title":210,"path":211,"stem":212},"Списки и циклы","\u002Fblog\u002Fpython\u002Fst14","blog\u002Fpython\u002Fst14",{"title":214,"path":215,"stem":216},"Использование списков ч.1","\u002Fblog\u002Fpython\u002Fst15","blog\u002Fpython\u002Fst15",{"title":218,"path":219,"stem":220},"Использование списков ч.2","\u002Fblog\u002Fpython\u002Fst16","blog\u002Fpython\u002Fst16",{"title":222,"path":223,"stem":224},"Использование списков ч.3","\u002Fblog\u002Fpython\u002Fst17","blog\u002Fpython\u002Fst17",{"title":226,"path":227,"stem":228},"Словари","\u002Fblog\u002Fpython\u002Fst18","blog\u002Fpython\u002Fst18",{"title":230,"path":231,"stem":232},"Множества","\u002Fblog\u002Fpython\u002Fst19","blog\u002Fpython\u002Fst19",{"title":234,"path":235,"stem":236},"Переменные","\u002Fblog\u002Fpython\u002Fst2","blog\u002Fpython\u002Fst2",{"title":238,"path":239,"stem":240},"Хеш-таблицы","\u002Fblog\u002Fpython\u002Fst20","blog\u002Fpython\u002Fst20",{"title":242,"path":243,"stem":244},"Решето Эратосфена","\u002Fblog\u002Fpython\u002Fst21","blog\u002Fpython\u002Fst21",{"title":246,"path":247,"stem":248},"Длинная арифметика","\u002Fblog\u002Fpython\u002Fst22","blog\u002Fpython\u002Fst22",{"title":250,"path":251,"stem":252},"Декораторы функций","\u002Fblog\u002Fpython\u002Fst23","blog\u002Fpython\u002Fst23",{"title":254,"path":255,"stem":256},"Знакомство с алгоритмами","\u002Fblog\u002Fpython\u002Fst24","blog\u002Fpython\u002Fst24",{"title":258,"path":259,"stem":260},"Бинарный поиск – примеры задач","\u002Fblog\u002Fpython\u002Fst25","blog\u002Fpython\u002Fst25",{"title":262,"path":263,"stem":264},"Сортировка выбором","\u002Fblog\u002Fpython\u002Fst26","blog\u002Fpython\u002Fst26",{"title":266,"path":267,"stem":268},"Рекурсия и стек","\u002Fblog\u002Fpython\u002Fst27","blog\u002Fpython\u002Fst27",{"title":270,"path":271,"stem":272},"Быстрая сортировка","\u002Fblog\u002Fpython\u002Fst28","blog\u002Fpython\u002Fst28",{"title":274,"path":275,"stem":276},"Поиск в ширину","\u002Fblog\u002Fpython\u002Fst29","blog\u002Fpython\u002Fst29",{"title":278,"path":279,"stem":280},"Работа со строками","\u002Fblog\u002Fpython\u002Fst3","blog\u002Fpython\u002Fst3",{"title":282,"path":283,"stem":284},"Поиск в глубину","\u002Fblog\u002Fpython\u002Fst30","blog\u002Fpython\u002Fst30",{"title":286,"path":287,"stem":288},"Сбалансированные деревья","\u002Fblog\u002Fpython\u002Fst31","blog\u002Fpython\u002Fst31",{"title":290,"path":291,"stem":292},"Алгоритм Дейкстры","\u002Fblog\u002Fpython\u002Fst32","blog\u002Fpython\u002Fst32",{"title":294,"path":295,"stem":296},"Жадные алгоритмы","\u002Fblog\u002Fpython\u002Fst33","blog\u002Fpython\u002Fst33",{"title":298,"path":299,"stem":300},"Динамическое программирование","\u002Fblog\u002Fpython\u002Fst34","blog\u002Fpython\u002Fst34",{"title":302,"path":303,"stem":304},"Алгоритм k ближайших соседей","\u002Fblog\u002Fpython\u002Fst35","blog\u002Fpython\u002Fst35",{"title":306,"path":307,"stem":308},"Типы данных","\u002Fblog\u002Fpython\u002Fst4","blog\u002Fpython\u002Fst4",{"title":310,"path":311,"stem":312},"О функциях","\u002Fblog\u002Fpython\u002Fst5","blog\u002Fpython\u002Fst5",{"title":314,"path":315,"stem":316},"Свойства и методы","\u002Fblog\u002Fpython\u002Fst6","blog\u002Fpython\u002Fst6",{"title":318,"path":319,"stem":320},"Определение функций","\u002Fblog\u002Fpython\u002Fst7","blog\u002Fpython\u002Fst7",{"title":322,"path":323,"stem":324},"Логика","\u002Fblog\u002Fpython\u002Fst8","blog\u002Fpython\u002Fst8",{"title":326,"path":327,"stem":328},"Циклы","\u002Fblog\u002Fpython\u002Fst9","blog\u002Fpython\u002Fst9",{"title":330,"path":331,"stem":332,"children":333,"page":114},"Toi","\u002Fblog\u002Ftoi","blog\u002Ftoi",[334,338,342,346,350,354,358,362,366,370,374,378,382],{"title":335,"path":336,"stem":337},"Информация и информационные процессы","\u002Fblog\u002Ftoi\u002Fst1","blog\u002Ftoi\u002Fst1",{"title":339,"path":340,"stem":341},"Электронные таблицы","\u002Fblog\u002Ftoi\u002Fst10","blog\u002Ftoi\u002Fst10",{"title":343,"path":344,"stem":345},"Система, её свойства и компоненты. Моделирование","\u002Fblog\u002Ftoi\u002Fst11","blog\u002Ftoi\u002Fst11",{"title":347,"path":348,"stem":349},"Представление информации в компьютере","\u002Fblog\u002Ftoi\u002Fst12","blog\u002Ftoi\u002Fst12",{"title":351,"path":352,"stem":353},"Средства информационно-коммуникационных технологий. Файловая система","\u002Fblog\u002Ftoi\u002Fst13","blog\u002Ftoi\u002Fst13",{"title":355,"path":356,"stem":357},"Комбинаторика","\u002Fblog\u002Ftoi\u002Fst2","blog\u002Ftoi\u002Fst2",{"title":359,"path":360,"stem":361},"Адресация в интернете","\u002Fblog\u002Ftoi\u002Fst3","blog\u002Ftoi\u002Fst3",{"title":363,"path":364,"stem":365},"Измерение количества информации","\u002Fblog\u002Ftoi\u002Fst4","blog\u002Ftoi\u002Fst4",{"title":367,"path":368,"stem":369},"Системы счисления","\u002Fblog\u002Ftoi\u002Fst5","blog\u002Ftoi\u002Fst5",{"title":371,"path":372,"stem":373},"Диаграммы Эйлера — Венна","\u002Fblog\u002Ftoi\u002Fst6","blog\u002Ftoi\u002Fst6",{"title":375,"path":376,"stem":377},"Условие Фано","\u002Fblog\u002Ftoi\u002Fst7","blog\u002Ftoi\u002Fst7",{"title":379,"path":380,"stem":381},"Теория графов","\u002Fblog\u002Ftoi\u002Fst8","blog\u002Ftoi\u002Fst8",{"title":383,"path":384,"stem":385},"Алгебра логики","\u002Fblog\u002Ftoi\u002Fst9","blog\u002Ftoi\u002Fst9",{"id":387,"title":278,"author":388,"body":393,"date":1652,"description":1653,"extension":1654,"image":1655,"meta":1656,"minRead":1657,"navigation":461,"num":458,"path":279,"seo":1658,"stem":280,"__hash__":1659},"python\u002Fblog\u002Fpython\u002Fst3.md",{"name":389,"avatar":390},"Штана Альберт Игоревич",{"src":391,"alt":392},"me.jpg","@ashtana",{"type":394,"value":395,"toc":1637},"minimark",[396,401,405,410,418,500,503,567,577,628,631,636,639,665,668,690,693,716,732,735,799,813,816,820,823,827,830,861,868,916,919,952,955,959,962,990,993,1026,1029,1033,1036,1040,1046,1089,1092,1136,1142,1191,1194,1234,1237,1294,1297,1301,1304,1337,1340,1384,1387,1414,1417,1452,1455,1496,1499,1616,1619,1630,1633],[397,398,400],"h2",{"id":399},"работа-со-строками-в-python","Работа со строками в Python",[402,403,404],"p",{},"Вы уже знаете, как перенести строку или соединить несколько строк в одну.\nНо в программировании есть ещё операции со строками которые повышают читаемость кода и делают решения многих задач проще.",[406,407,409],"h3",{"id":408},"интерполяция","Интерполяция",[402,411,412,413,417],{},"Базовый способ соединения строк — ",[414,415,416],"strong",{},"конкатенация",". С помощью конкатенации строки «суммируются» друг с другом, как в примере ниже:",[419,420,425],"pre",{"className":421,"code":422,"language":423,"meta":424,"style":424},"language-python shiki shiki-themes github-light","first_name = 'Jack'\nlast_name = 'London'\n\nprint(first_name + \" \" + last_name + \"!\")\n# => Jack London!\n","python","",[426,427,428,445,456,463,493],"code",{"__ignoreMap":424},[429,430,433,437,441],"span",{"class":431,"line":432},"line",1,[429,434,436],{"class":435},"sgsFI","first_name ",[429,438,440],{"class":439},"sD7c4","=",[429,442,444],{"class":443},"sYBdl"," 'Jack'\n",[429,446,448,451,453],{"class":431,"line":447},2,[429,449,450],{"class":435},"last_name ",[429,452,440],{"class":439},[429,454,455],{"class":443}," 'London'\n",[429,457,459],{"class":431,"line":458},3,[429,460,462],{"emptyLinePlaceholder":461},true,"\n",[429,464,466,470,473,476,479,482,485,487,490],{"class":431,"line":465},4,[429,467,469],{"class":468},"sYu0t","print",[429,471,472],{"class":435},"(first_name ",[429,474,475],{"class":439},"+",[429,477,478],{"class":443}," \" \"",[429,480,481],{"class":439}," +",[429,483,484],{"class":435}," last_name ",[429,486,475],{"class":439},[429,488,489],{"class":443}," \"!\"",[429,491,492],{"class":435},")\n",[429,494,496],{"class":431,"line":495},5,[429,497,499],{"class":498},"sAwPA","# => Jack London!\n",[402,501,502],{},"Конкатенация работает просто, но выглядит не всегда наглядно. Из-за кавычек сложно разглядеть то, каким будет конечный результат.\nИ чем сложнее устроена строка, тем запутаннее она начнет выглядеть. У конкатенации есть альтернатива — интерполяция. Вот как это выглядит:",[419,504,506],{"className":421,"code":505,"language":423,"meta":424,"style":424},"first_name = 'Jack'\nlast_name = 'London'\n\nprint(f'{first_name} {last_name}!')\n# => Jack London!\n",[426,507,508,516,524,528,563],{"__ignoreMap":424},[429,509,510,512,514],{"class":431,"line":432},[429,511,436],{"class":435},[429,513,440],{"class":439},[429,515,444],{"class":443},[429,517,518,520,522],{"class":431,"line":447},[429,519,450],{"class":435},[429,521,440],{"class":439},[429,523,455],{"class":443},[429,525,526],{"class":431,"line":458},[429,527,462],{"emptyLinePlaceholder":461},[429,529,530,532,535,538,541,544,547,550,553,556,558,561],{"class":431,"line":465},[429,531,469],{"class":468},[429,533,534],{"class":435},"(",[429,536,537],{"class":439},"f",[429,539,540],{"class":443},"'",[429,542,543],{"class":468},"{",[429,545,546],{"class":435},"first_name",[429,548,549],{"class":468},"}",[429,551,552],{"class":468}," {",[429,554,555],{"class":435},"last_name",[429,557,549],{"class":468},[429,559,560],{"class":443},"!'",[429,562,492],{"class":435},[429,564,565],{"class":431,"line":495},[429,566,499],{"class":498},[402,568,569,570,572,573,576],{},"Буква ",[414,571,537],{}," указывает на то, что мы создаем ",[414,574,575],{},"f-строку"," — шаблон, в который с помощью фигурных скобок подставляются значения переменных. На выходе получается обычная строка.\nРассмотрим такой пример:",[419,578,580],{"className":421,"code":579,"language":423,"meta":424,"style":424},"lesson = 'Информатика'\n\nbest_subject = f'{lesson} - лучший предмет!'\nprint(best_subject)  # => Информатика - лучший предмет!\n",[426,581,582,592,596,618],{"__ignoreMap":424},[429,583,584,587,589],{"class":431,"line":432},[429,585,586],{"class":435},"lesson ",[429,588,440],{"class":439},[429,590,591],{"class":443}," 'Информатика'\n",[429,593,594],{"class":431,"line":447},[429,595,462],{"emptyLinePlaceholder":461},[429,597,598,601,603,606,608,610,613,615],{"class":431,"line":458},[429,599,600],{"class":435},"best_subject ",[429,602,440],{"class":439},[429,604,605],{"class":439}," f",[429,607,540],{"class":443},[429,609,543],{"class":468},[429,611,612],{"class":435},"lesson",[429,614,549],{"class":468},[429,616,617],{"class":443}," - лучший предмет!'\n",[429,619,620,622,625],{"class":431,"line":465},[429,621,469],{"class":468},[429,623,624],{"class":435},"(best_subject)  ",[429,626,627],{"class":498},"# => Информатика - лучший предмет!\n",[402,629,630],{},"Почти во всех языках для объединения строк интерполяция предпочтительнее конкатенации.\nСтрока при этом получается склеенная, и внутри нее хорошо просматриваются пробелы и другие символы.\nИнтерполяция помогает сделать код более понятным для разработчиков. Но это не единственная полезная альтернатива.\nДалее разберемся, как объявлять многострочную строку и не использовать символ новой строки \\n.",[632,633,635],"h4",{"id":634},"multi-line-строки","Multi-line строки",[402,637,638],{},"Представьте, что нужно определить строку, которая состоит из нескольких строчек — то есть внутри есть переводы строки \\n. Например, она будет выглядеть так:",[419,640,642],{"className":421,"code":641,"language":423,"meta":424,"style":424},"text = 'Пример текста,\\nсостоящего из\\nнескольких строк'\n",[426,643,644],{"__ignoreMap":424},[429,645,646,649,651,654,657,660,662],{"class":431,"line":432},[429,647,648],{"class":435},"text ",[429,650,440],{"class":439},[429,652,653],{"class":443}," 'Пример текста,",[429,655,656],{"class":468},"\\n",[429,658,659],{"class":443},"состоящего из",[429,661,656],{"class":468},[429,663,664],{"class":443},"нескольких строк'\n",[402,666,667],{},"На печати строка примет совсем другой вид:",[419,669,673],{"className":670,"code":671,"language":672,"meta":424,"style":424},"language-markdown shiki shiki-themes github-light","Пример текста,\nсостоящего из\nнескольких строк\n","markdown",[426,674,675,680,685],{"__ignoreMap":424},[429,676,677],{"class":431,"line":432},[429,678,679],{},"Пример текста,\n",[429,681,682],{"class":431,"line":447},[429,683,684],{},"состоящего из\n",[429,686,687],{"class":431,"line":458},[429,688,689],{},"нескольких строк\n",[402,691,692],{},"Для таких ситуаций в Python есть еще один способ создания строк, который называется multi-line строки.\nЧтобы описать такую «многострочную строку», нужно заключить ее в тройные кавычки — \"\"\" или '''.\nВнутри multi-line строки можно переносить текст и не использовать перевод строки \\n:",[419,694,696],{"className":421,"code":695,"language":423,"meta":424,"style":424},"text = '''Пример текста,\nсостоящего из\nнескольких строк'''\n",[426,697,698,707,711],{"__ignoreMap":424},[429,699,700,702,704],{"class":431,"line":432},[429,701,648],{"class":435},[429,703,440],{"class":439},[429,705,706],{"class":443}," '''Пример текста,\n",[429,708,709],{"class":431,"line":447},[429,710,684],{"class":443},[429,712,713],{"class":431,"line":458},[429,714,715],{"class":443},"нескольких строк'''\n",[419,717,718],{"className":670,"code":671,"language":672,"meta":424,"style":424},[426,719,720,724,728],{"__ignoreMap":424},[429,721,722],{"class":431,"line":432},[429,723,679],{},[429,725,726],{"class":431,"line":447},[429,727,684],{},[429,729,730],{"class":431,"line":458},[429,731,689],{},[402,733,734],{},"Благодаря тройным кавычкам multi-line строки позволяют не экранировать кавычки внутри строки.\nЕще multi-line строки могут становиться f-строками для интерполяции:",[419,736,738],{"className":421,"code":737,"language":423,"meta":424,"style":424},"a = 'A'\nb = 'B'\ntext = f'''{a} и {b}\nсидели на трубе\n'''\n",[426,739,740,750,760,789,794],{"__ignoreMap":424},[429,741,742,745,747],{"class":431,"line":432},[429,743,744],{"class":435},"a ",[429,746,440],{"class":439},[429,748,749],{"class":443}," 'A'\n",[429,751,752,755,757],{"class":431,"line":447},[429,753,754],{"class":435},"b ",[429,756,440],{"class":439},[429,758,759],{"class":443}," 'B'\n",[429,761,762,764,766,768,771,773,776,778,781,783,786],{"class":431,"line":458},[429,763,648],{"class":435},[429,765,440],{"class":439},[429,767,605],{"class":439},[429,769,770],{"class":443},"'''",[429,772,543],{"class":468},[429,774,775],{"class":435},"a",[429,777,549],{"class":468},[429,779,780],{"class":443}," и ",[429,782,543],{"class":468},[429,784,785],{"class":435},"b",[429,787,788],{"class":468},"}\n",[429,790,791],{"class":431,"line":465},[429,792,793],{"class":443},"сидели на трубе\n",[429,795,796],{"class":431,"line":495},[429,797,798],{"class":443},"'''\n",[419,800,802],{"className":670,"code":801,"language":672,"meta":424,"style":424},"А и B\nсидели на трубе\n",[426,803,804,809],{"__ignoreMap":424},[429,805,806],{"class":431,"line":432},[429,807,808],{},"А и B\n",[429,810,811],{"class":431,"line":447},[429,812,793],{},[402,814,815],{},"Для компьютера не важно, какие способы соединения и переноса строк вы будете использовать.\nИнтерполяция и multi-line строки используются для удобства разработчиков, чтобы им было проще читать код.",[406,817,819],{"id":818},"извлечение-символов-из-строки","Извлечение символов из строки",[402,821,822],{},"Иногда нужно получить один символ из строки. Например, если сайт знает имя и фамилию пользователя, и в какой-то момент требуется вывести эту информацию в формате И. Иванов.\nДля этого компьютеру потребуется взять первый символ из имени. В Python есть подходящая операция.",[632,824,826],{"id":825},"извлечение-элемента-по-индексу","Извлечение элемента по индексу",[402,828,829],{},"Представим, что из имени Иван нужно вывести на экран только первую букву. Это выглядит так:",[419,831,833],{"className":421,"code":832,"language":423,"meta":424,"style":424},"name = 'Иван'\nprint(name[0])  # => И\n",[426,834,835,845],{"__ignoreMap":424},[429,836,837,840,842],{"class":431,"line":432},[429,838,839],{"class":435},"name ",[429,841,440],{"class":439},[429,843,844],{"class":443}," 'Иван'\n",[429,846,847,849,852,855,858],{"class":431,"line":447},[429,848,469],{"class":468},[429,850,851],{"class":435},"(name[",[429,853,854],{"class":468},"0",[429,856,857],{"class":435},"])  ",[429,859,860],{"class":498},"# => И\n",[402,862,863,864,867],{},"Операция с квадратными скобками с цифрой извлекает элемент по ",[414,865,866],{},"индексу"," — позиции символа внутри строки.\nИндексы начинаются с 0 почти во всех языках программирования. Поэтому, чтобы получить первый символ, нужно указать индекс 0.\nИндекс последнего элемента равен длине строки минус единица. Обращение к индексу за пределами строки приведет к ошибке:",[419,869,871],{"className":421,"code":870,"language":423,"meta":424,"style":424},"# Длина строки 9, поэтому последний индекс — это 8\nfirst_name = 'Александр'\nprint(first_name[8])  # => р\nprint(first_name[9])  # => IndexError: string index out of range\n",[426,872,873,878,887,902],{"__ignoreMap":424},[429,874,875],{"class":431,"line":432},[429,876,877],{"class":498},"# Длина строки 9, поэтому последний индекс — это 8\n",[429,879,880,882,884],{"class":431,"line":447},[429,881,436],{"class":435},[429,883,440],{"class":439},[429,885,886],{"class":443}," 'Александр'\n",[429,888,889,891,894,897,899],{"class":431,"line":458},[429,890,469],{"class":468},[429,892,893],{"class":435},"(first_name[",[429,895,896],{"class":468},"8",[429,898,857],{"class":435},[429,900,901],{"class":498},"# => р\n",[429,903,904,906,908,911,913],{"class":431,"line":465},[429,905,469],{"class":468},[429,907,893],{"class":435},[429,909,910],{"class":468},"9",[429,912,857],{"class":435},[429,914,915],{"class":498},"# => IndexError: string index out of range\n",[402,917,918],{},"Чтобы лучше закрепить новые знания, посмотрите на код ниже и подумайте, что он выдаст:",[419,920,922],{"className":421,"code":921,"language":423,"meta":424,"style":424},"x = '\\nyou'\nprint(x[1])\n",[426,923,924,939],{"__ignoreMap":424},[429,925,926,929,931,934,936],{"class":431,"line":432},[429,927,928],{"class":435},"x ",[429,930,440],{"class":439},[429,932,933],{"class":443}," '",[429,935,656],{"class":468},[429,937,938],{"class":443},"you'\n",[429,940,941,943,946,949],{"class":431,"line":447},[429,942,469],{"class":468},[429,944,945],{"class":435},"(x[",[429,947,948],{"class":468},"1",[429,950,951],{"class":435},"])\n",[402,953,954],{},"Бывают и нестандартные ситуации. Например, нужно вывести элемент с конца, причем из выражения с большим количеством символов.\nВ этом случае можно воспользоваться отрицательным индексом, который облегчит работу программиста.",[632,956,958],{"id":957},"отрицательные-индексы","Отрицательные индексы",[402,960,961],{},"Допустимо использовать отрицательные индексы. В этом случае идет обращение к символам, начиная с конца строки.\n-1 — индекс последнего символа, -2 — предпоследнего и так далее. В отличие от прямой индексации, обратный отсчет идет от -1:",[419,963,965],{"className":421,"code":964,"language":423,"meta":424,"style":424},"name = 'Александр'\nprint(name[-1])  # => р\n",[426,966,967,975],{"__ignoreMap":424},[429,968,969,971,973],{"class":431,"line":432},[429,970,839],{"class":435},[429,972,440],{"class":439},[429,974,886],{"class":443},[429,976,977,979,981,984,986,988],{"class":431,"line":447},[429,978,469],{"class":468},[429,980,851],{"class":435},[429,982,983],{"class":439},"-",[429,985,948],{"class":468},[429,987,857],{"class":435},[429,989,901],{"class":498},[402,991,992],{},"Индексом может быть не только конкретное число, но и значение переменной. Посмотрите на пример ниже.\nЗдесь записали индекс внутри квадратных скобок не числом, а переменной.\nТакой код приведет к тому же результату — выводу на экран символа А:",[419,994,996],{"className":421,"code":995,"language":423,"meta":424,"style":424},"name = 'Александр'\ni = 0\nprint(name[i])  # => А\n",[426,997,998,1006,1016],{"__ignoreMap":424},[429,999,1000,1002,1004],{"class":431,"line":432},[429,1001,839],{"class":435},[429,1003,440],{"class":439},[429,1005,886],{"class":443},[429,1007,1008,1011,1013],{"class":431,"line":447},[429,1009,1010],{"class":435},"i ",[429,1012,440],{"class":439},[429,1014,1015],{"class":468}," 0\n",[429,1017,1018,1020,1023],{"class":431,"line":458},[429,1019,469],{"class":468},[429,1021,1022],{"class":435},"(name[i])  ",[429,1024,1025],{"class":498},"# => А\n",[402,1027,1028],{},"Чтобы выводить из выражения лишь некоторые символы, не нужно писать большое количество строк кода — достаточно извлечь элемент с помощью индекса.\nТакже можно пользоваться отрицательным индексом, чтобы легче выводить символы с конца выражения.\nДалее разберемся, как с помощью этих знаний можно извлекать подстроки из строки.",[406,1030,1032],{"id":1031},"срезы-строк","Срезы строк",[402,1034,1035],{},"Когда идёт работа со строками в программировании, из них регулярно приходится извлекать некую часть.\nНапример, нам нужно выяснить, присутствует ли меньшая строка внутри большей.",[632,1037,1039],{"id":1038},"подстрока-и-срезы-для-строк","Подстрока и срезы для строк",[402,1041,1042,1045],{},[414,1043,1044],{},"Подстрока"," — это некоторая часть строки, которую нужно найти и извлечь.\nПредставим, что у нас есть дата в таком формате: 24-01-2025. Нам нужно извлечь из нее подстроку, в которую входит только год.\nЕсли подумать логически, то нужно посчитать индекс символа, с которого начинается год, и затем извлечь четыре символа.\nИндексы в строке начинаются с нуля, значит, первый символ года доступен по индексу 6, а последний символ — по индексу 9. Проверим:",[419,1047,1049],{"className":421,"code":1048,"language":423,"meta":424,"style":424},"data = '12-08-2025'\nprint(data[6])  # => 2\nprint(data[9])  # => 5\n",[426,1050,1051,1061,1076],{"__ignoreMap":424},[429,1052,1053,1056,1058],{"class":431,"line":432},[429,1054,1055],{"class":435},"data ",[429,1057,440],{"class":439},[429,1059,1060],{"class":443}," '12-08-2025'\n",[429,1062,1063,1065,1068,1071,1073],{"class":431,"line":447},[429,1064,469],{"class":468},[429,1066,1067],{"class":435},"(data[",[429,1069,1070],{"class":468},"6",[429,1072,857],{"class":435},[429,1074,1075],{"class":498},"# => 2\n",[429,1077,1078,1080,1082,1084,1086],{"class":431,"line":458},[429,1079,469],{"class":468},[429,1081,1067],{"class":435},[429,1083,910],{"class":468},[429,1085,857],{"class":435},[429,1087,1088],{"class":498},"# => 5\n",[402,1090,1091],{},"Зная эти индексы, можно воспользоваться срезами и получить нужную подстроку:",[419,1093,1095],{"className":421,"code":1094,"language":423,"meta":424,"style":424},"data = '12-08-2025'\nyear = data[6:10]\nprint(year)  # => 2025\n",[426,1096,1097,1105,1126],{"__ignoreMap":424},[429,1098,1099,1101,1103],{"class":431,"line":432},[429,1100,1055],{"class":435},[429,1102,440],{"class":439},[429,1104,1060],{"class":443},[429,1106,1107,1110,1112,1115,1117,1120,1123],{"class":431,"line":447},[429,1108,1109],{"class":435},"year ",[429,1111,440],{"class":439},[429,1113,1114],{"class":435}," data[",[429,1116,1070],{"class":468},[429,1118,1119],{"class":435},":",[429,1121,1122],{"class":468},"10",[429,1124,1125],{"class":435},"]\n",[429,1127,1128,1130,1133],{"class":431,"line":458},[429,1129,469],{"class":468},[429,1131,1132],{"class":435},"(year)  ",[429,1134,1135],{"class":498},"# => 2025\n",[402,1137,1138,1141],{},[414,1139,1140],{},"Срезы для строк в Python"," — это механизм, с помощью которого извлекается подстрока по указанным параметрам.\nВ примере выше создаётся подстрока с 6 индекса до 10 индекса, не включая, то есть с 6 по 9. Формула выглядит так:[начальный индекс:конечный индекс]. Примеры:",[419,1143,1145],{"className":421,"code":1144,"language":423,"meta":424,"style":424},"data = '24-01-2025'\ndata[1:2]  # '4'\ndata[3:5]  # '01'\n",[426,1146,1147,1156,1174],{"__ignoreMap":424},[429,1148,1149,1151,1153],{"class":431,"line":432},[429,1150,1055],{"class":435},[429,1152,440],{"class":439},[429,1154,1155],{"class":443}," '24-01-2025'\n",[429,1157,1158,1161,1163,1165,1168,1171],{"class":431,"line":447},[429,1159,1160],{"class":435},"data[",[429,1162,948],{"class":468},[429,1164,1119],{"class":435},[429,1166,1167],{"class":468},"2",[429,1169,1170],{"class":435},"]  ",[429,1172,1173],{"class":498},"# '4'\n",[429,1175,1176,1178,1181,1183,1186,1188],{"class":431,"line":458},[429,1177,1160],{"class":435},[429,1179,1180],{"class":468},"3",[429,1182,1119],{"class":435},[429,1184,1185],{"class":468},"5",[429,1187,1170],{"class":435},[429,1189,1190],{"class":498},"# '01'\n",[402,1192,1193],{},"Срезы — механизм с большим количеством вариаций. Например, если не указать вторую границу, то извлечение произойдет до конца строки.\nТо же самое с первой границей — началом строки:",[419,1195,1197],{"className":421,"code":1196,"language":423,"meta":424,"style":424},"value = 'Python'\nvalue[3:]  # 'hon'\nvalue[:3]  # 'Pyt'\n",[426,1198,1199,1209,1222],{"__ignoreMap":424},[429,1200,1201,1204,1206],{"class":431,"line":432},[429,1202,1203],{"class":435},"value ",[429,1205,440],{"class":439},[429,1207,1208],{"class":443}," 'Python'\n",[429,1210,1211,1214,1216,1219],{"class":431,"line":447},[429,1212,1213],{"class":435},"value[",[429,1215,1180],{"class":468},[429,1217,1218],{"class":435},":]  ",[429,1220,1221],{"class":498},"# 'hon'\n",[429,1223,1224,1227,1229,1231],{"class":431,"line":458},[429,1225,1226],{"class":435},"value[:",[429,1228,1180],{"class":468},[429,1230,1170],{"class":435},[429,1232,1233],{"class":498},"# 'Pyt'\n",[402,1235,1236],{},"Можно указать даже отрицательные индексы. В таком случае отсчет идет с обратной стороны:",[419,1238,1240],{"className":421,"code":1239,"language":423,"meta":424,"style":424},"value = 'Python'\n# Правая граница отрицательная. Считаем -1 от конца строки\nvalue[3:-1]  # 'ho'\n# Левая граница отрицательная. Считаем -5 от конца строки\nvalue[-5:3]  # 'yt'\n",[426,1241,1242,1250,1255,1272,1277],{"__ignoreMap":424},[429,1243,1244,1246,1248],{"class":431,"line":432},[429,1245,1203],{"class":435},[429,1247,440],{"class":439},[429,1249,1208],{"class":443},[429,1251,1252],{"class":431,"line":447},[429,1253,1254],{"class":498},"# Правая граница отрицательная. Считаем -1 от конца строки\n",[429,1256,1257,1259,1261,1263,1265,1267,1269],{"class":431,"line":458},[429,1258,1213],{"class":435},[429,1260,1180],{"class":468},[429,1262,1119],{"class":435},[429,1264,983],{"class":439},[429,1266,948],{"class":468},[429,1268,1170],{"class":435},[429,1270,1271],{"class":498},"# 'ho'\n",[429,1273,1274],{"class":431,"line":465},[429,1275,1276],{"class":498},"# Левая граница отрицательная. Считаем -5 от конца строки\n",[429,1278,1279,1281,1283,1285,1287,1289,1291],{"class":431,"line":495},[429,1280,1213],{"class":435},[429,1282,983],{"class":439},[429,1284,1185],{"class":468},[429,1286,1119],{"class":435},[429,1288,1180],{"class":468},[429,1290,1170],{"class":435},[429,1292,1293],{"class":498},"# 'yt'\n",[402,1295,1296],{},"У срезов два обязательных параметра, но иногда используется и третий.",[632,1298,1300],{"id":1299},"шаг-извлечения","Шаг извлечения",[402,1302,1303],{},"У срезов есть третий необязательный параметр — шаг извлечения. По умолчанию он равен единице, но можно его изменить:",[419,1305,1307],{"className":421,"code":1306,"language":423,"meta":424,"style":424},"data = 'Python'\ndata[1:5:2]   # => yh\n",[426,1308,1309,1317],{"__ignoreMap":424},[429,1310,1311,1313,1315],{"class":431,"line":432},[429,1312,1055],{"class":435},[429,1314,440],{"class":439},[429,1316,1208],{"class":443},[429,1318,1319,1321,1323,1325,1327,1329,1331,1334],{"class":431,"line":447},[429,1320,1160],{"class":435},[429,1322,948],{"class":468},[429,1324,1119],{"class":435},[429,1326,1185],{"class":468},[429,1328,1119],{"class":435},[429,1330,1167],{"class":468},[429,1332,1333],{"class":435},"]   ",[429,1335,1336],{"class":498},"# => yh\n",[402,1338,1339],{},"Все это можно комбинировать с открытыми границами, то есть без указания начала или конца:",[419,1341,1343],{"className":421,"code":1342,"language":423,"meta":424,"style":424},"value = 'Python'\nvalue[:5:2]  # 'Pto' символы берутся от начала до 5 индекса через один\nvalue[1::2]  # 'yhn' символы берутся от 1 индекса до конца через один\n",[426,1344,1345,1353,1368],{"__ignoreMap":424},[429,1346,1347,1349,1351],{"class":431,"line":432},[429,1348,1203],{"class":435},[429,1350,440],{"class":439},[429,1352,1208],{"class":443},[429,1354,1355,1357,1359,1361,1363,1365],{"class":431,"line":447},[429,1356,1226],{"class":435},[429,1358,1185],{"class":468},[429,1360,1119],{"class":435},[429,1362,1167],{"class":468},[429,1364,1170],{"class":435},[429,1366,1367],{"class":498},"# 'Pto' символы берутся от начала до 5 индекса через один\n",[429,1369,1370,1372,1374,1377,1379,1381],{"class":431,"line":458},[429,1371,1213],{"class":435},[429,1373,948],{"class":468},[429,1375,1376],{"class":435},"::",[429,1378,1167],{"class":468},[429,1380,1170],{"class":435},[429,1382,1383],{"class":498},"# 'yhn' символы берутся от 1 индекса до конца через один\n",[402,1385,1386],{},"Шаг может быть отрицательным, в таком случае он берется с конца. На этом основан самый популярный способ использования шага — переворот строки:",[419,1388,1390],{"className":421,"code":1389,"language":423,"meta":424,"style":424},"value = 'Python'\nvalue[::-1]  # 'nohtyP'\n",[426,1391,1392,1400],{"__ignoreMap":424},[429,1393,1394,1396,1398],{"class":431,"line":432},[429,1395,1203],{"class":435},[429,1397,440],{"class":439},[429,1399,1208],{"class":443},[429,1401,1402,1405,1407,1409,1411],{"class":431,"line":447},[429,1403,1404],{"class":435},"value[::",[429,1406,983],{"class":439},[429,1408,948],{"class":468},[429,1410,1170],{"class":435},[429,1412,1413],{"class":498},"# 'nohtyP'\n",[402,1415,1416],{},"Если используется отрицательный шаг, и элементы среза извлекаются в обратном порядке, тогда и границы среза тоже нужно указывать в обратном порядке.\nПервой указывается правая граница среза, второй — левая:",[419,1418,1420],{"className":421,"code":1419,"language":423,"meta":424,"style":424},"value = 'Python'\nvalue[4:1:-1]  # 'oht'\n",[426,1421,1422,1430],{"__ignoreMap":424},[429,1423,1424,1426,1428],{"class":431,"line":432},[429,1425,1203],{"class":435},[429,1427,440],{"class":439},[429,1429,1208],{"class":443},[429,1431,1432,1434,1437,1439,1441,1443,1445,1447,1449],{"class":431,"line":447},[429,1433,1213],{"class":435},[429,1435,1436],{"class":468},"4",[429,1438,1119],{"class":435},[429,1440,948],{"class":468},[429,1442,1119],{"class":435},[429,1444,983],{"class":439},[429,1446,948],{"class":468},[429,1448,1170],{"class":435},[429,1450,1451],{"class":498},"# 'oht'\n",[402,1453,1454],{},"Срезы можно указывать не только через числа, но и с использованием переменных:",[419,1456,1458],{"className":421,"code":1457,"language":423,"meta":424,"style":424},"value = 'Python'\nbegin = 1\nend = 5\nvalue[begin:end]  # 'ytho'\n",[426,1459,1460,1468,1478,1488],{"__ignoreMap":424},[429,1461,1462,1464,1466],{"class":431,"line":432},[429,1463,1203],{"class":435},[429,1465,440],{"class":439},[429,1467,1208],{"class":443},[429,1469,1470,1473,1475],{"class":431,"line":447},[429,1471,1472],{"class":435},"begin ",[429,1474,440],{"class":439},[429,1476,1477],{"class":468}," 1\n",[429,1479,1480,1483,1485],{"class":431,"line":458},[429,1481,1482],{"class":435},"end ",[429,1484,440],{"class":439},[429,1486,1487],{"class":468}," 5\n",[429,1489,1490,1493],{"class":431,"line":465},[429,1491,1492],{"class":435},"value[begin:end]  ",[429,1494,1495],{"class":498},"# 'ytho'\n",[402,1497,1498],{},"Всё вместе:",[419,1500,1502],{"className":421,"code":1501,"language":423,"meta":424,"style":424},"value = 'Python'\nvalue[::]  # 'Python'  # Вся строка\nvalue[:]  # 'Python'  # Вся строка\nvalue[::2]  # 'Pto'  # Нечетные по порядку символы\nvalue[1::2]  # 'yhn'  # Четные по порядку символы\nvalue[::-1]  # 'nohtyP'  # Вся строка в обратном порядке\nvalue[5:]  # 'n'  # Строка, начиная с шестого символа\nvalue[:5]  # 'Pytho'  # Строка до шестого символа\nvalue[-2:1:-1] # 'oht'  # Все символы с предпоследнего до третьего в обратном порядке\n",[426,1503,1504,1512,1520,1527,1538,1553,1567,1579,1591],{"__ignoreMap":424},[429,1505,1506,1508,1510],{"class":431,"line":432},[429,1507,1203],{"class":435},[429,1509,440],{"class":439},[429,1511,1208],{"class":443},[429,1513,1514,1517],{"class":431,"line":447},[429,1515,1516],{"class":435},"value[::]  ",[429,1518,1519],{"class":498},"# 'Python'  # Вся строка\n",[429,1521,1522,1525],{"class":431,"line":458},[429,1523,1524],{"class":435},"value[:]  ",[429,1526,1519],{"class":498},[429,1528,1529,1531,1533,1535],{"class":431,"line":465},[429,1530,1404],{"class":435},[429,1532,1167],{"class":468},[429,1534,1170],{"class":435},[429,1536,1537],{"class":498},"# 'Pto'  # Нечетные по порядку символы\n",[429,1539,1540,1542,1544,1546,1548,1550],{"class":431,"line":495},[429,1541,1213],{"class":435},[429,1543,948],{"class":468},[429,1545,1376],{"class":435},[429,1547,1167],{"class":468},[429,1549,1170],{"class":435},[429,1551,1552],{"class":498},"# 'yhn'  # Четные по порядку символы\n",[429,1554,1556,1558,1560,1562,1564],{"class":431,"line":1555},6,[429,1557,1404],{"class":435},[429,1559,983],{"class":439},[429,1561,948],{"class":468},[429,1563,1170],{"class":435},[429,1565,1566],{"class":498},"# 'nohtyP'  # Вся строка в обратном порядке\n",[429,1568,1570,1572,1574,1576],{"class":431,"line":1569},7,[429,1571,1213],{"class":435},[429,1573,1185],{"class":468},[429,1575,1218],{"class":435},[429,1577,1578],{"class":498},"# 'n'  # Строка, начиная с шестого символа\n",[429,1580,1582,1584,1586,1588],{"class":431,"line":1581},8,[429,1583,1226],{"class":435},[429,1585,1185],{"class":468},[429,1587,1170],{"class":435},[429,1589,1590],{"class":498},"# 'Pytho'  # Строка до шестого символа\n",[429,1592,1594,1596,1598,1600,1602,1604,1606,1608,1610,1613],{"class":431,"line":1593},9,[429,1595,1213],{"class":435},[429,1597,983],{"class":439},[429,1599,1167],{"class":468},[429,1601,1119],{"class":435},[429,1603,948],{"class":468},[429,1605,1119],{"class":435},[429,1607,983],{"class":439},[429,1609,948],{"class":468},[429,1611,1612],{"class":435},"] ",[429,1614,1615],{"class":498},"# 'oht'  # Все символы с предпоследнего до третьего в обратном порядке\n",[402,1617,1618],{},"Во всех случаях выборки от большего индекса к меньшему нужно указывать шаг.",[402,1620,1621,1622,1625,1626,1629],{},"Попробуйте сами запустить код в окне ниже с интерпретатором Python и повторите примеры из статьи чтобы самим увидеть и понять как всё это работает.\nДля этого в ячейке с кодом нажмите клавиши на клавиатуре ",[414,1623,1624],{},"Shift+Enter"," или запустите код через ",[414,1627,1628],{},"кнопку Run"," по значку ▶.",[1631,1632],"jypiter",{},[1634,1635,1636],"style",{},"html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":424,"searchDepth":447,"depth":495,"links":1638},[1639],{"id":399,"depth":447,"text":400,"children":1640},[1641,1644,1648],{"id":408,"depth":458,"text":409,"children":1642},[1643],{"id":634,"depth":465,"text":635},{"id":818,"depth":458,"text":819,"children":1645},[1646,1647],{"id":825,"depth":465,"text":826},{"id":957,"depth":465,"text":958},{"id":1031,"depth":458,"text":1032,"children":1649},[1650,1651],{"id":1038,"depth":465,"text":1039},{"id":1299,"depth":465,"text":1300},"2025-01-24","Интерполяция. Извлечение символов из строки. Срез строки","md","images\u002Fblog\u002Fpython\u002Fst3\u002Fimg.png",{},14,{"title":278,"description":1653},"fs_b8FPhrC71crJSWoLeCIhrYbYXVI9jk2t8kVAEto8",[1661,1663],{"title":234,"path":235,"stem":236,"description":1662,"children":-1},"Использование и именование переменных",{"title":306,"path":307,"stem":308,"description":1664,"children":-1},"Типы данных. Изменяемость данных",1780737507750]