[{"data":1,"prerenderedAt":1429},["ShallowReactive",2],{"navigation":3,"\u002Fblog\u002Fpython\u002Fst2":386,"\u002Fblog\u002Fpython\u002Fst2-surround":1424},[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":234,"author":388,"body":393,"date":1416,"description":1417,"extension":1418,"image":1419,"meta":1420,"minRead":1421,"navigation":543,"num":445,"path":235,"seo":1422,"stem":236,"__hash__":1423},"python\u002Fblog\u002Fpython\u002Fst2.md",{"name":389,"avatar":390},"Штана Альберт Игоревич",{"src":391,"alt":392},"me.jpg","@ashtana",{"type":394,"value":395,"toc":1400},"minimark",[396,401,405,410,413,454,457,460,509,512,569,572,576,579,618,621,625,628,647,650,654,657,687,690,694,697,702,705,708,739,742,745,828,831,834,837,868,871,898,901,957,960,1035,1038,1042,1045,1073,1076,1113,1116,1164,1167,1171,1174,1194,1197,1200,1203,1206,1209,1212,1215,1228,1238,1241,1245,1248,1294,1297,1367,1370,1378,1381,1393,1396],[397,398,400],"h2",{"id":399},"переменные-в-python","Переменные в Python",[402,403,404],"p",{},"Разберемся, как работать с переменными в Python, какие ошибки часто допускают неопытные разработчики и как их исправлять.",[406,407,409],"h3",{"id":408},"как-создать-переменную","Как создать переменную",[402,411,412],{},"Представьте, что нам нужно напечатать на экран фразу Привет! два раза. Эту задачу можно решить так:",[414,415,420],"pre",{"className":416,"code":417,"language":418,"meta":419,"style":419},"language-python shiki shiki-themes github-light","print('Привет!')\nprint('Привет!')\n","python","",[421,422,423,443],"code",{"__ignoreMap":419},[424,425,428,432,436,440],"span",{"class":426,"line":427},"line",1,[424,429,431],{"class":430},"sYu0t","print",[424,433,435],{"class":434},"sgsFI","(",[424,437,439],{"class":438},"sYBdl","'Привет!'",[424,441,442],{"class":434},")\n",[424,444,446,448,450,452],{"class":426,"line":445},2,[424,447,431],{"class":430},[424,449,435],{"class":434},[424,451,439],{"class":438},[424,453,442],{"class":434},[402,455,456],{},"В простейшем случае так и стоит поступить. Но если фраза Привет! будет использоваться чаще двух раз, да еще и в разных частях программы, то придется ее везде повторять — это неудобно.\nПроблемы с таким подходом начнутся, когда понадобится изменить фразу, а такое происходит довольно часто. Нам придется найти все места с этой фразой и выполнить необходимую замену.",[402,458,459],{},"А можно поступить по-другому. Чтобы не копировать выражение, достаточно создать с ним переменную:",[414,461,463],{"className":416,"code":462,"language":418,"meta":419,"style":419},"# greeting - переводится как приветствие\ngreeting = 'Привет!'\nprint(greeting)\nprint(greeting)\n# => Привет!\n# => Привет!\n",[421,464,465,471,483,491,498,504],{"__ignoreMap":419},[424,466,467],{"class":426,"line":427},[424,468,470],{"class":469},"sAwPA","# greeting - переводится как приветствие\n",[424,472,473,476,480],{"class":426,"line":445},[424,474,475],{"class":434},"greeting ",[424,477,479],{"class":478},"sD7c4","=",[424,481,482],{"class":438}," 'Привет!'\n",[424,484,486,488],{"class":426,"line":485},3,[424,487,431],{"class":430},[424,489,490],{"class":434},"(greeting)\n",[424,492,494,496],{"class":426,"line":493},4,[424,495,431],{"class":430},[424,497,490],{"class":434},[424,499,501],{"class":426,"line":500},5,[424,502,503],{"class":469},"# => Привет!\n",[424,505,507],{"class":426,"line":506},6,[424,508,503],{"class":469},[402,510,511],{},"В строчке greeting = 'Привет!' мы берем переменную с именем greeting и присваиваем ей значение 'Привет!'. Переменная указывает на данные, которые в нее записали. Благодаря этому, данные можно использовать многократно и не дублировать их постоянно.\nКогда переменная создана, можно ее использовать. Она подставляется в те места, где раньше стояла наша фраза. Когда код выполняется, интерпретатор доходит до строчки print(greeting) и подставляет содержимое переменной, а затем выполняет код.\nДля имени переменной используется любой набор допустимых символов, к которым относятся буквы английского алфавита, цифры и знак нижнего подчёркивания(_). При этом цифру нельзя ставить в начале.\nИмена переменных зависят от регистра самих букв, то есть имя hello и имя Hello — это два разных имени для двух разных переменных. Регистр в Python имеет очень важное значение, никогда не забывайте про него.\nКоличество создаваемых переменных неограниченно(лишь бы у устройства хватало мощности и памяти). Большие программы содержат десятки и сотни тысяч имен переменных. Вот как выглядят две переменные внутри одной программы:",[414,513,515],{"className":416,"code":514,"language":418,"meta":419,"style":419},"greeting1 = 'Привет!'\nprint(greeting1)\nprint(greeting1)\n\ngreeting2 = 'Пока!'\nprint(greeting2)\nprint(greeting2)\n",[421,516,517,526,533,539,545,555,562],{"__ignoreMap":419},[424,518,519,522,524],{"class":426,"line":427},[424,520,521],{"class":434},"greeting1 ",[424,523,479],{"class":478},[424,525,482],{"class":438},[424,527,528,530],{"class":426,"line":445},[424,529,431],{"class":430},[424,531,532],{"class":434},"(greeting1)\n",[424,534,535,537],{"class":426,"line":485},[424,536,431],{"class":430},[424,538,532],{"class":434},[424,540,541],{"class":426,"line":493},[424,542,544],{"emptyLinePlaceholder":543},true,"\n",[424,546,547,550,552],{"class":426,"line":500},[424,548,549],{"class":434},"greeting2 ",[424,551,479],{"class":478},[424,553,554],{"class":438}," 'Пока!'\n",[424,556,557,559],{"class":426,"line":506},[424,558,431],{"class":430},[424,560,561],{"class":434},"(greeting2)\n",[424,563,565,567],{"class":426,"line":564},7,[424,566,431],{"class":430},[424,568,561],{"class":434},[402,570,571],{},"Чтобы программу было удобно читать, среди программистов принято создавать переменные как можно ближе к тому месту, где они используются. Теперь нужно разобраться, как их изменять.",[406,573,575],{"id":574},"как-изменить-переменную","Как изменить переменную",[402,577,578],{},"Само слово «переменная» подсказывает, что ее можно менять. И действительно, со временем внутри программы значения переменных могут изменяться. Например:",[414,580,582],{"className":416,"code":581,"language":418,"meta":419,"style":419},"greeting = 'Привет!'\nprint(greeting)  # => Привет!\ngreeting = 'Пока!'\nprint(greeting)  # => Пока!\n",[421,583,584,592,601,609],{"__ignoreMap":419},[424,585,586,588,590],{"class":426,"line":427},[424,587,475],{"class":434},[424,589,479],{"class":478},[424,591,482],{"class":438},[424,593,594,596,599],{"class":426,"line":445},[424,595,431],{"class":430},[424,597,598],{"class":434},"(greeting)  ",[424,600,503],{"class":469},[424,602,603,605,607],{"class":426,"line":485},[424,604,475],{"class":434},[424,606,479],{"class":478},[424,608,554],{"class":438},[424,610,611,613,615],{"class":426,"line":493},[424,612,431],{"class":430},[424,614,598],{"class":434},[424,616,617],{"class":469},"# => Пока!\n",[402,619,620],{},"Имя переменной осталось тем же, но внутри появились другие данные. Отметим, что переменные в Python не требуют специального объявления. Вместо этого переменная объявляется, когда ее впервые используют в программе.\nПеременные — мощная и в то же время запутанная вещь. Нельзя сразу с уверенностью сказать, что внутри нее записано — сначала надо проанализировать код, который находится до переменной.\nИменно этим занимаются разработчики во время отладки, когда пытаются разобраться, почему программа работает не так, как задумано.",[406,622,624],{"id":623},"какие-ошибки-часто-допускают-с-переменными","Какие ошибки часто допускают с переменными",[402,626,627],{},"Порядок инструкций в коде с переменными имеет огромное значение. Поэтому переменную нужно определить до первого использования. Ниже пример ошибки, которую часто допускают новички:",[414,629,631],{"className":416,"code":630,"language":418,"meta":419,"style":419},"print(greeting)\ngreeting = 'Привет!'\n",[421,632,633,639],{"__ignoreMap":419},[424,634,635,637],{"class":426,"line":427},[424,636,431],{"class":430},[424,638,490],{"class":434},[424,640,641,643,645],{"class":426,"line":445},[424,642,475],{"class":434},[424,644,479],{"class":478},[424,646,482],{"class":438},[402,648,649],{},"Запуск программы выше завершается с ошибкой NameError: name 'greeting' is not defined — это ошибка обращения. Это значит, что в коде используется имя переменной(идентификатор), которое пока не определено. Это говорится в самом тексте ошибки: 'greeting' is not defined.\nКроме неправильного порядка действий, в Python встречаются банальные опечатки в имени переменной. Это происходит и когда переменная используется, и когда ее объявляют.\nКоличество подобных ошибок можно уменьшить, если использовать правильно настроенный редактор. Он предупреждает о возможных проблемах и подсвечивает переменные, которые используются без объявления.\nС переменными мы разобрались. Можно переходить к данным, которые никогда не меняются.",[406,651,653],{"id":652},"как-работают-константы","Как работают константы",[402,655,656],{},"Некоторые данные никогда не меняются — например, математические постоянные. Возьмем для примера число π. Оно всегда равно 3.14 и не может измениться.\nЧтобы обратиться к подобным данным, в Python используют константы:",[414,658,660],{"className":416,"code":659,"language":418,"meta":419,"style":419},"PI = 3.14\nprint(PI)  # => 3.14\n",[421,661,662,673],{"__ignoreMap":419},[424,663,664,667,670],{"class":426,"line":427},[424,665,666],{"class":430},"PI",[424,668,669],{"class":478}," =",[424,671,672],{"class":430}," 3.14\n",[424,674,675,677,679,681,684],{"class":426,"line":445},[424,676,431],{"class":430},[424,678,435],{"class":434},[424,680,666],{"class":430},[424,682,683],{"class":434},")  ",[424,685,686],{"class":469},"# => 3.14\n",[402,688,689],{},"В Python интерпретатору нет разницы при работе с переменной как с обычной или константой(нет оператора const как в некоторых других языках программирования).\nРазница только в том, что константы принято именовать заглавными буквами и использовать нижнее подчёркивание(_) в качестве разделителя между словами.\nКонстанта, как и переменная, может использоваться в любом выражении.",[406,691,693],{"id":692},"выражения-в-определениях","Выражения в определениях",[402,695,696],{},"Переменные помогают упрощать сложные вычисления. Например, конвертация валюты или составление нового слова. Рассмотрим два способа.",[698,699,701],"h4",{"id":700},"сложные-вычисления-через-переменную","Сложные вычисления через переменную",[402,703,704],{},"Представим, что нам нужно перевести доллары в рубли через евро. Подобные конвертации через промежуточную валюту часто делают банки при покупках за рубежом.",[402,706,707],{},"Для начала переведем 50 долларов в евро. Допустим, что один доллар — 0.96 евро:",[414,709,711],{"className":416,"code":710,"language":418,"meta":419,"style":419},"euro_count = 50 * 0.96\nprint(euro_count)  # => 48.0\n",[421,712,713,729],{"__ignoreMap":419},[424,714,715,718,720,723,726],{"class":426,"line":427},[424,716,717],{"class":434},"euro_count ",[424,719,479],{"class":478},[424,721,722],{"class":430}," 50",[424,724,725],{"class":478}," *",[424,727,728],{"class":430}," 0.96\n",[424,730,731,733,736],{"class":426,"line":445},[424,732,431],{"class":430},[424,734,735],{"class":434},"(euro_count)  ",[424,737,738],{"class":469},"# => 48.0\n",[402,740,741],{},"Здесь в переменную euro_count = 50 * 0.96 справа от знака «равно» мы записываем выражение. Интерпретатор вычислит результат (48.0) и запишет его в переменную.\nИнтерпретатору не важно, в каком виде записаны данные: 48.0 или 50 * 0.96. Для него оба варианта — выражения, которые надо вычислить.\nОн проводит вычисления и приходит к одному и тому же значению — 48.0.",[402,743,744],{},"Python различает выражения (expressions) и инструкции (statements).\nВыражение — это любой корректный блок кода, который возвращает значение. Конкатенация строк (склеивание значений переменных) — это тоже выражение.\nКогда интерпретатор видит выражение, он обрабатывает его и генерирует результат — значение выражения.\nВот несколько примеров выражения. В комментариях справа от каждого выражения записаны итоговые значения:",[414,746,748],{"className":416,"code":747,"language":418,"meta":419,"style":419},"48.0             # 48.0\n50 * 0.96        # 48.0\n100 \u002F 10 * 2     # 20.0\nint('50')        # 50\n'привет'         # привет\n'при' + 'вет'    # привет\n",[421,749,750,758,771,790,806,814],{"__ignoreMap":419},[424,751,752,755],{"class":426,"line":427},[424,753,754],{"class":430},"48.0",[424,756,757],{"class":469},"             # 48.0\n",[424,759,760,763,765,768],{"class":426,"line":445},[424,761,762],{"class":430},"50",[424,764,725],{"class":478},[424,766,767],{"class":430}," 0.96",[424,769,770],{"class":469},"        # 48.0\n",[424,772,773,776,779,782,784,787],{"class":426,"line":485},[424,774,775],{"class":430},"100",[424,777,778],{"class":478}," \u002F",[424,780,781],{"class":430}," 10",[424,783,725],{"class":478},[424,785,786],{"class":430}," 2",[424,788,789],{"class":469},"     # 20.0\n",[424,791,792,795,797,800,803],{"class":426,"line":493},[424,793,794],{"class":430},"int",[424,796,435],{"class":434},[424,798,799],{"class":438},"'50'",[424,801,802],{"class":434},")        ",[424,804,805],{"class":469},"# 50\n",[424,807,808,811],{"class":426,"line":500},[424,809,810],{"class":438},"'привет'",[424,812,813],{"class":469},"         # привет\n",[424,815,816,819,822,825],{"class":426,"line":506},[424,817,818],{"class":438},"'при'",[424,820,821],{"class":478}," +",[424,823,824],{"class":438}," 'вет'",[424,826,827],{"class":469},"    # привет\n",[402,829,830],{},"Инструкция — это команда, действие.",[402,832,833],{},"if, while, for — примеры инструкций. Они производят или контролируют действия, но не превращаются в значения.",[402,835,836],{},"Операция присваивания также является инструкцией, потому что она не возвращает, а связывает имя переменной с заданным значением:",[414,838,840],{"className":416,"code":839,"language":418,"meta":419,"style":419},"x = 42 # это инструкция (statement)\nx + 1  # а это выражение (expressions)\n",[421,841,842,855],{"__ignoreMap":419},[424,843,844,847,849,852],{"class":426,"line":427},[424,845,846],{"class":434},"x ",[424,848,479],{"class":478},[424,850,851],{"class":430}," 42",[424,853,854],{"class":469}," # это инструкция (statement)\n",[424,856,857,859,862,865],{"class":426,"line":445},[424,858,846],{"class":434},[424,860,861],{"class":478},"+",[424,863,864],{"class":430}," 1",[424,866,867],{"class":469},"  # а это выражение (expressions)\n",[402,869,870],{},"В тех местах, где ожидается выражение, можно поставить любое вычисление. Оно может быть не только математическим, но и строковым — как конкатенация.\nПрограмма все равно останется работоспособной. Программы состоят из множества комбинаций выражений. Основываясь на сказанном выше, подумайте, сработает ли такой код:",[414,872,874],{"className":416,"code":873,"language":418,"meta":419,"style":419},"author = \"Jack \" + 'London'\nprint(author)\n",[421,875,876,891],{"__ignoreMap":419},[424,877,878,881,883,886,888],{"class":426,"line":427},[424,879,880],{"class":434},"author ",[424,882,479],{"class":478},[424,884,885],{"class":438}," \"Jack \"",[424,887,821],{"class":478},[424,889,890],{"class":438}," 'London'\n",[424,892,893,895],{"class":426,"line":445},[424,894,431],{"class":430},[424,896,897],{"class":434},"(author)\n",[402,899,900],{},"Такой код выведет на экран строку Jack London. Если хотите проверить самостоятельно, запустите код в конце статьи и поэкспериментируйте.\nС помощью переменных можно записывать еще более сложные вычисления. Вернемся к нашей валютной программе.\nЗапишем стоимость евро в рублях как отдельную переменную. Вычислим цену 48 евро в рублях, умножив их на 105. Допустим, что 1 евро — 105 рублей:",[414,902,904],{"className":416,"code":903,"language":418,"meta":419,"style":419},"rubles_per_euro = 105\neuro_count = 50 * 0.96  # 48.0\nrubles_count = euro_count * rubles_per_euro  # 5040.0\nprint(rubles_count)\n",[421,905,906,916,931,950],{"__ignoreMap":419},[424,907,908,911,913],{"class":426,"line":427},[424,909,910],{"class":434},"rubles_per_euro ",[424,912,479],{"class":478},[424,914,915],{"class":430}," 105\n",[424,917,918,920,922,924,926,928],{"class":426,"line":445},[424,919,717],{"class":434},[424,921,479],{"class":478},[424,923,722],{"class":430},[424,925,725],{"class":478},[424,927,767],{"class":430},[424,929,930],{"class":469},"  # 48.0\n",[424,932,933,936,938,941,944,947],{"class":426,"line":485},[424,934,935],{"class":434},"rubles_count ",[424,937,479],{"class":478},[424,939,940],{"class":434}," euro_count ",[424,942,943],{"class":478},"*",[424,945,946],{"class":434}," rubles_per_euro  ",[424,948,949],{"class":469},"# 5040.0\n",[424,951,952,954],{"class":426,"line":493},[424,953,431],{"class":430},[424,955,956],{"class":434},"(rubles_count)\n",[402,958,959],{},"Теперь добавим к выводу текст с помощью конкатенации:",[414,961,963],{"className":416,"code":962,"language":418,"meta":419,"style":419},"rubles_per_euro = 105\neuro_count = 50 * 0.96  # 48.0\nrubles_count = euro_count * rubles_per_euro  # 5040.0\n# Функция str() превращает число в строку.\nprint('У вас получилось: ' + str(rubles_count) + ' рублей.')\n# => У вас получилось: 5040.0 рублей.\n",[421,964,965,973,987,1001,1006,1030],{"__ignoreMap":419},[424,966,967,969,971],{"class":426,"line":427},[424,968,910],{"class":434},[424,970,479],{"class":478},[424,972,915],{"class":430},[424,974,975,977,979,981,983,985],{"class":426,"line":445},[424,976,717],{"class":434},[424,978,479],{"class":478},[424,980,722],{"class":430},[424,982,725],{"class":478},[424,984,767],{"class":430},[424,986,930],{"class":469},[424,988,989,991,993,995,997,999],{"class":426,"line":485},[424,990,935],{"class":434},[424,992,479],{"class":478},[424,994,940],{"class":434},[424,996,943],{"class":478},[424,998,946],{"class":434},[424,1000,949],{"class":469},[424,1002,1003],{"class":426,"line":493},[424,1004,1005],{"class":469},"# Функция str() превращает число в строку.\n",[424,1007,1008,1010,1012,1015,1017,1020,1023,1025,1028],{"class":426,"line":500},[424,1009,431],{"class":430},[424,1011,435],{"class":434},[424,1013,1014],{"class":438},"'У вас получилось: '",[424,1016,821],{"class":478},[424,1018,1019],{"class":430}," str",[424,1021,1022],{"class":434},"(rubles_count) ",[424,1024,861],{"class":478},[424,1026,1027],{"class":438}," ' рублей.'",[424,1029,442],{"class":434},[424,1031,1032],{"class":426,"line":506},[424,1033,1034],{"class":469},"# => У вас получилось: 5040.0 рублей.\n",[402,1036,1037],{},"Любая переменная может быть частью любого выражения. В момент вычисления вместо имени переменной подставляется ее значение.\nИнтерпретатор вычисляет значение euro_count до того, как эта переменная начнет использоваться в других выражениях.\nКогда подходит момент использования переменной, Python уже знает значение, потому что вычислил его.\nС помощью переменных можно проводить сложные вычисления, а также делать подробный вывод с получившимся значением.\nНо еще можно получать новые выражения посредством склеивания двух и более значений переменных. За это отвечает конкатенация.",[698,1039,1041],{"id":1040},"переменные-и-конкатенация","Переменные и конкатенация",[402,1043,1044],{},"Попробуем использовать переменные с конкатенацией, при этом синтаксически ничего не поменяется. Вот как конкатенировать две строки:",[414,1046,1048],{"className":416,"code":1047,"language":418,"meta":419,"style":419},"author = \"Jack \" + \"London\"\nprint(author)  # => Jack London\n",[421,1049,1050,1063],{"__ignoreMap":419},[424,1051,1052,1054,1056,1058,1060],{"class":426,"line":427},[424,1053,880],{"class":434},[424,1055,479],{"class":478},[424,1057,885],{"class":438},[424,1059,821],{"class":478},[424,1061,1062],{"class":438}," \"London\"\n",[424,1064,1065,1067,1070],{"class":426,"line":445},[424,1066,431],{"class":430},[424,1068,1069],{"class":434},"(author)  ",[424,1071,1072],{"class":469},"# => Jack London\n",[402,1074,1075],{},"Значит, также можно склеить строку и одну переменную, в которой записана строка:",[414,1077,1079],{"className":416,"code":1078,"language":418,"meta":419,"style":419},"first_name = \"Jack\"\nauthor = first_name + \" London\"\nprint(author)  # => Jack London\n",[421,1080,1081,1091,1105],{"__ignoreMap":419},[424,1082,1083,1086,1088],{"class":426,"line":427},[424,1084,1085],{"class":434},"first_name ",[424,1087,479],{"class":478},[424,1089,1090],{"class":438}," \"Jack\"\n",[424,1092,1093,1095,1097,1100,1102],{"class":426,"line":445},[424,1094,880],{"class":434},[424,1096,479],{"class":478},[424,1098,1099],{"class":434}," first_name ",[424,1101,861],{"class":478},[424,1103,1104],{"class":438}," \" London\"\n",[424,1106,1107,1109,1111],{"class":426,"line":485},[424,1108,431],{"class":430},[424,1110,1069],{"class":434},[424,1112,1072],{"class":469},[402,1114,1115],{},"А еще можно конкатенировать две или три переменные и т.д., в которых записаны строки:",[414,1117,1119],{"className":416,"code":1118,"language":418,"meta":419,"style":419},"first_name = \"Jack\"\nlast_name = \"London\"\nauthor = first_name + \" \" + last_name\nprint(author)  # => Jack London\n",[421,1120,1121,1129,1138,1156],{"__ignoreMap":419},[424,1122,1123,1125,1127],{"class":426,"line":427},[424,1124,1085],{"class":434},[424,1126,479],{"class":478},[424,1128,1090],{"class":438},[424,1130,1131,1134,1136],{"class":426,"line":445},[424,1132,1133],{"class":434},"last_name ",[424,1135,479],{"class":478},[424,1137,1062],{"class":438},[424,1139,1140,1142,1144,1146,1148,1151,1153],{"class":426,"line":485},[424,1141,880],{"class":434},[424,1143,479],{"class":478},[424,1145,1099],{"class":434},[424,1147,861],{"class":478},[424,1149,1150],{"class":438}," \" \"",[424,1152,821],{"class":478},[424,1154,1155],{"class":434}," last_name\n",[424,1157,1158,1160,1162],{"class":426,"line":493},[424,1159,431],{"class":430},[424,1161,1069],{"class":434},[424,1163,1072],{"class":469},[402,1165,1166],{},"Переменные — важный инструмент в программировании. Они упрощают сложные вычисления и таким образом облегчают разработку.\nНо, чтобы успешно работать с переменными, надо не только правильно использовать их, но и правильно называть.",[406,1168,1170],{"id":1169},"именование-переменных","Именование переменных",[402,1172,1173],{},"Представьте следующую программу:",[414,1175,1177],{"className":416,"code":1176,"language":418,"meta":419,"style":419},"x = 'Привет!'\nprint(x)\n",[421,1178,1179,1187],{"__ignoreMap":419},[424,1180,1181,1183,1185],{"class":426,"line":427},[424,1182,846],{"class":434},[424,1184,479],{"class":478},[424,1186,482],{"class":438},[424,1188,1189,1191],{"class":426,"line":445},[424,1190,431],{"class":430},[424,1192,1193],{"class":434},"(x)\n",[402,1195,1196],{},"С подобной программой мы уже работали, но сейчас в ней изменилось имя переменной на x.",[402,1198,1199],{},"Компьютеру без разницы, как мы именуем ту или иную переменную. Названия важны только людям. Обычно программисты гораздо чаще читают чужой код, чем пишут свой.\nЧтобы другие смогли с легкостью прочитать и проанализировать ваш код, нужно понятно называть переменные.\nВажно придумать понятное название, которое отражает смысл переменной. При этом важно давать такие имена, которые будут понимать без контекста, без изучения окружающего кода.\nСуществует общепринятое правило: не используйте транслит для имен — только английский язык. Если вы испытываете сложности с английским, то пользуйтесь переводчиком.\nСо временем, анализируя чужой код, вы научитесь правильно именовать переменные.\nСреди разработчиков есть шутка: «Названия переменных — это одна из самых сложных вещей в программировании». Придумывать названия и правда сложно.\nНапример, сложно назвать переменную, в которой хранится количество неоплаченных заказов от клиентов с задолженностью в предыдущем квартале.",[402,1201,1202],{},"Чтобы проверить себя, попробуйте сделать такое задание:\nПридумайте название для переменной, в которой будет храниться «количество братьев и сестер».\nЗапишите его в блокноте или отправьте себе на почту. Не указывайте там ничего, кроме названия переменной. А потом через пару месяцев попытайтесь вспомнить что это значило.",[402,1204,1205],{},"Теперь разберем, как придумывать простые и понятные имена переменных.",[698,1207,1170],{"id":1208},"именование-переменных-1",[402,1210,1211],{},"greeting — пример простого имени, но не все имена так просты. Часто они включают в себя несколько слов: например, «имя пользователя».\nВ разных языках применяются разные стили кодирования, и имя переменной будет отличаться.",[402,1213,1214],{},"К именованию переменных есть три основных подхода, которые иногда комбинируют друг с другом. Все эти подходы проявляют себя, когда имя переменной состоит из нескольких слов:",[1216,1217,1218,1222,1225],"ul",{},[1219,1220,1221],"li",{},"kebab-case — составные части переменной разделяются дефисом (my-super-var)",[1219,1223,1224],{},"snake_case — для разделения используется подчеркивание (my_super_var)",[1219,1226,1227],{},"CamelCase — каждое слово в переменной пишется с заглавной буквы (MySuperVar)",[402,1229,1230,1231,1237],{},"Переменные в Python именуются в стиле snake_case: слова записываются строчными буквами и разделяются символом подчеркивания _. Чтобы разобраться подробнее, можете изучить раздел «Как называть переменные» в стандарте PEP8 ",[1232,1233,1234],"a",{"href":1234,"rel":1235},"https:\u002F\u002Fpeps.python.org\u002Fpep-0008\u002F#method-names-and-instance-variables",[1236],"nofollow",".",[402,1239,1240],{},"Далее посмотрим пример плохих практик и разберем, почему их стоит избегать.",[698,1242,1244],{"id":1243},"магические-числа","Магические числа",[402,1246,1247],{},"Возьмем пример программы, которая считает курс валют:",[414,1249,1250],{"className":416,"code":903,"language":418,"meta":419,"style":419},[421,1251,1252,1260,1274,1288],{"__ignoreMap":419},[424,1253,1254,1256,1258],{"class":426,"line":427},[424,1255,910],{"class":434},[424,1257,479],{"class":478},[424,1259,915],{"class":430},[424,1261,1262,1264,1266,1268,1270,1272],{"class":426,"line":445},[424,1263,717],{"class":434},[424,1265,479],{"class":478},[424,1267,722],{"class":430},[424,1269,725],{"class":478},[424,1271,767],{"class":430},[424,1273,930],{"class":469},[424,1275,1276,1278,1280,1282,1284,1286],{"class":426,"line":485},[424,1277,935],{"class":434},[424,1279,479],{"class":478},[424,1281,940],{"class":434},[424,1283,943],{"class":478},[424,1285,946],{"class":434},[424,1287,949],{"class":469},[424,1289,1290,1292],{"class":426,"line":493},[424,1291,431],{"class":430},[424,1293,956],{"class":434},[402,1295,1296],{},"С точки зрения профессиональной разработки, такой код не соответствует «лучшим практикам» — best practices.\nВ этом примере сложно понять, что значат числа 50 и 0.96. Представьте, что вам придется разбираться в этом коде через месяц или через год — это будет сложно.\nТакже сложно будет программисту, который не видел код ранее.\nВ нашем примере контекст легко восстановить, потому что переменные названы грамотно.\nНо в реальных проектах код значительно сложнее, поэтому понять смысл чисел зачастую невозможно.\nПроблема кроется в «магических числах» — magic numbers.\nЭто числа, происхождение которых невозможно понять с первого взгляда — приходится глубоко вникать в то, что происходит в коде.\nЧтобы предотвратить проблему, нужно создавать переменные с правильными именами. Так все встанет на свои места:",[414,1298,1300],{"className":416,"code":1299,"language":418,"meta":419,"style":419},"euro_per_dollars = 0.96\nrubles_per_euro = 105\ndollars_count = 50\neuro_count = dollars_count * euro_per_dollars # 48.0\nrubles_count = euro_count * rubles_per_euro   # 5040.0\nprint(rubles_count)\n",[421,1301,1302,1311,1319,1329,1346,1361],{"__ignoreMap":419},[424,1303,1304,1307,1309],{"class":426,"line":427},[424,1305,1306],{"class":434},"euro_per_dollars ",[424,1308,479],{"class":478},[424,1310,728],{"class":430},[424,1312,1313,1315,1317],{"class":426,"line":445},[424,1314,910],{"class":434},[424,1316,479],{"class":478},[424,1318,915],{"class":430},[424,1320,1321,1324,1326],{"class":426,"line":485},[424,1322,1323],{"class":434},"dollars_count ",[424,1325,479],{"class":478},[424,1327,1328],{"class":430}," 50\n",[424,1330,1331,1333,1335,1338,1340,1343],{"class":426,"line":493},[424,1332,717],{"class":434},[424,1334,479],{"class":478},[424,1336,1337],{"class":434}," dollars_count ",[424,1339,943],{"class":478},[424,1341,1342],{"class":434}," euro_per_dollars ",[424,1344,1345],{"class":469},"# 48.0\n",[424,1347,1348,1350,1352,1354,1356,1359],{"class":426,"line":500},[424,1349,935],{"class":434},[424,1351,479],{"class":478},[424,1353,940],{"class":434},[424,1355,943],{"class":478},[424,1357,1358],{"class":434}," rubles_per_euro   ",[424,1360,949],{"class":469},[424,1362,1363,1365],{"class":426,"line":506},[424,1364,431],{"class":430},[424,1366,956],{"class":434},[402,1368,1369],{},"В этой программе:",[1216,1371,1372,1375],{},[1219,1373,1374],{},"Используется именование snake_case.",[1219,1376,1377],{},"Две новые переменные отделяются от последующих вычислений пустой строчкой. Эти переменные имеют смысл и без вычислений, поэтому такое отделение уместно, потому что повышает читаемость.",[402,1379,1380],{},"Получился хорошо именованный и структурированный код, но он длиннее прошлой версии. Так часто бывает — это нормально, ведь код должен быть читабельным.\nМагические числа и непонятные именования переменных не ломают код, но делают его менее читабельным.\nНужно понимать, что компьютер в любом случае выполнит заданное вычисление. Однако другой программист будет читать код и ничего не поймет — это усложнит работу.\nПравильное именование переменных — половина успеха анализа кода.",[402,1382,1383,1384,1388,1389,1392],{},"Попробуйте сами запустить код в окне ниже с интерпретатором Python и повторите примеры из статьи чтобы самим увидеть и понять как всё это работает.\nДля этого в ячейке с кодом нажмите клавиши на клавиатуре ",[1385,1386,1387],"strong",{},"Shift+Enter"," или запустите код через ",[1385,1390,1391],{},"кнопку Run"," по значку ▶.",[1394,1395],"jypiter",{},[1397,1398,1399],"style",{},"html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}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);}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}",{"title":419,"searchDepth":445,"depth":500,"links":1401},[1402],{"id":399,"depth":445,"text":400,"children":1403},[1404,1405,1406,1407,1408,1412],{"id":408,"depth":485,"text":409},{"id":574,"depth":485,"text":575},{"id":623,"depth":485,"text":624},{"id":652,"depth":485,"text":653},{"id":692,"depth":485,"text":693,"children":1409},[1410,1411],{"id":700,"depth":493,"text":701},{"id":1040,"depth":493,"text":1041},{"id":1169,"depth":485,"text":1170,"children":1413},[1414,1415],{"id":1208,"depth":493,"text":1170},{"id":1243,"depth":493,"text":1244},"2025-01-21","Использование и именование переменных","md","images\u002Fblog\u002Fpython\u002Fst2\u002Fimg.png",{},20,{"title":234,"description":1417},"eyX3kxdUKVh8brrG6LqYbzxrgb97BZo-nuQsYCZlDLI",[1425,1427],{"title":190,"path":191,"stem":192,"description":1426,"children":-1},"Основы построения программ на Python. Арифметические операции. Ввод и вывод. Синтаксис",{"title":278,"path":279,"stem":280,"description":1428,"children":-1},"Интерполяция. Извлечение символов из строки. Срез строки",1780737507705]