The Python – удобный и функциональный язык программирования. Он является универсальным средством разработки, рекомендованным для изучения как новичкам, так и уже опытным специалистам. Несмотря на свою простоту, the Python может выдавать ошибки в процессе компиляции программного обеспечения. Их необходимо правильно обрабатывать и устранять.
Обработка ошибок помогает увеличить отказоустойчивость кода и защищает его от потенциальных сбоев. Существуют два варианта неполадок – ошибки и исключения. Первые обработать нельзя, а вторые обрабатываются при работе программного продукта.
Часто разработчики сталкиваются с invalid syntax. Это одна из самых распространенных неполадок, которая преследует даже опытных разработчиков. Дальше предстоит рассмотреть ошибки синтаксиса более подробно.
В статье будет рассказано о типах сбоев и ошибок в the Python, их особенностях и исключениях. Предстоит выяснить, как не допустить syntax error, когда она возникает и на что указывает. Предложенная информация ориентирована на широкую публику. Она подойдет и опытным разработчикам, и новичкам, только изучающим the Python.
Виды ошибок
The Python – язык, в котором встречаются следующие виды сбоев:
- синтаксические ошибки;
- недостаток памяти;
- ошибки рекурсии;
- исключения.
Каждый вариант предусматривает свои ключевые особенности исправления, а также влияния на программный код. Далее все они будут изучены более подробно (кроме исключений). Особый упор сделан на invalid syntax.
Недостаток памяти (OutofMemoryError)
Сбои, связанные с памятью, чаще всего возникают из-за оперативной памяти и относятся к структуре данных «куча» (heap). При наличии крупных объектов или ссылок на них, с большой долей вероятности возникнет OutofMemoryError. Данный сбой может возникать по нескольким причинам:
- применение 32-битной архитектуры the Python (предельный объем выделенной памяти небольшой – между 2 и 4 ГБ);
- загрузка крупного файла;
- запуск модели машинного или глубокого обучения.
Это наиболее распространенные причины, по которым возникает OutOfMemory. Обработка заключается в резервном исключении. Применяется данная концепция тогда, когда у интерпретатора заканчивается память, и он должен незамедлительно остановить текущее исполнение.
Рекурсивный сбой
Данная ошибка the Python связана со стеком и возникает в процессе вызова функций. Она появляется, когда внутри друг друга работает множество методов, но все это ограничивается размером стека.
Локальные переменные и методы размещаются в пределах одного стека. Каждое обращение к методу влечет за собой создание стекового кадра (фрейма), внутри которого размещаются данные переменной или результат вызова функции. После реализации метода его элемент будет стерт.
Выше – код, который поможет воспроизвести соответствующий тип ошибки. Здесь определена функция recursion, которая станет рекурсивной – она начнет вызывать сама себя в бесконечном цикле. При запуске фрагмента появится сообщение StackOverflow или ошибка рекурсии. Это связано с тем, что стековый кадр заполняется данными метода из каждого вызова, но они не будут высвобождаться.
Ошибка отступа
Этот тип сбоя при работе программного кода – подвид syntaxerror: invalid-syntax. Она может возникнуть как у новичка, так и у опытного разработчика. Появляется, если в процессе написания кода возникли проблемы с отступами.
Выше – наглядный пример кода с неправильными отступами. Обычно исправить такую неполадку легко. Она не имеет никаких критичных последствий для функционирования исходного приложения.
Синтаксические сбои
В the Python 3 invalid-syntax – одна из самых распространенных ошибок. Она может встречаться не только в этом языке программирования, но и в других. Называется ошибкой разбора. Указывает на то, что интерпретатор обнаружил некорректный синтаксис в исходном коде приложения.
Выше – наглядный пример соответствующей неполадки в the Python. Здесь стрелка вверху указывает на место, где интерпретатор распознал syntax error в процессе попытки исполнения функции или команды. Символ перед стрелкой указывает на непосредственную причину проблемы.
Чтобы устранить фундаментальные неполадки the Python, придется тщательно просматривать исходный код. В процессе отладки предстоит вводить название файла и номер строки, где программа обнаружила неправильный синтаксис.
Причины появления
Def syntaxerror: invalid-syntax – одна из самых распространенных ошибок в the Python. Она указывает на то, что в программном коде что-то написано с нарушением действующих синтаксических правил языка.
Наиболее распространенными причинами появления соответствующего сбоя служат следующие моменты:
- неправильные отступы (в the Python этот тип syntaxerror выведен в отдельную категорию);
- отсутствие открывающих или закрывающих скобок, кавычек;
- неправильно написанные зарезервированные ключевые слова;
- программист пытался использовать в качестве имени переменной ключевые слова;
- в ключевых словах отсутствуют части слов;
- пропущены знаки препинания в функции или выражении;
- отсутствующие операторы;
- недопустимое использование блоков (чаще всего – циклов);
- некорректное объявление переменных;
- недопустимые определения или вызовы функций.
Invalid Syntax – это указание на то, что код the Python написан без соблюдения синтаксических правил и норм языка. Некоторые неполадки соответствующего типа могут поставить в тупик даже самого опытного специалиста. Далее предстоит изучить самые распространенные неполадки синтаксиса, а также способы их корректировки и обнаружения.
Самые распространенные SyntaxError
Неверный синтаксис не всегда легко определить. Существуют некоторые ошибки the Python рассматриваемой категории, которые могут вызвать трудности при поиске и отладке. Далее предстоит изучить общие и наиболее встречающиеся invalid syntax.
Пунктуационные сбои
Сообщение «Missing punctuation error» может ввести в замешательство программистов-новичков. Ниже можно увидеть фрагмент кода the Python, при обработке которого возникает характерное сообщение об обнаруженной неполадке:
Обычно пунктуационные неполадки относятся к строке, которая идет после фактически совершенной ошибки в the Python. Здесь – это недостающий знак препинания (запятая) во второй строке определения. Для исправления нужно переписать код the Python и расставить все знаки препинания по местам:
Выше – исправленный фрагмент приложения и результат его корректной обработки.
Недостающие кавычки и скобки
Invalid Syntax в the Python может встречаться из-за того, что в процессе написания приложения программист не поставил кавычки (любого типа) или скобки в нужных местах. Вот наглядный пример соответствующего сбоя:
Здесь отсутствуют открывающие и закрывающие скобки в функции print (). Круглые скобки необходимы для вызова функции. Они ставятся даже тогда, когда аргументы, передаваемые в команду, отсутствуют.
Данную неполадку легко исправить. Все, что нужно разработчику – это найти «проблемное» место и поставить круглые скобки в функцию печати. Исправленный код the Python будет выглядеть так:
Syntax error: invalid-syntax-error возникает также при отсутствующих квадратных скобках. Они используются для того, чтобы определить список в the Python. Каждая открывающая скобка должна, согласно действующим правилам синтаксиса, иметь закрывающую скобку:
Выше можно увидеть наглядный пример неполадки в the Python, связанной с квадратными скобками и исправленный фрагмент соответствующего приложения.
Неправильно написанные ключевые слова
В каждом языке разработки программного обеспечения имеются зарезервированные синтаксисом слова. Они называются ключевыми. Применяются для вызова определенных функций, методов, а также использования различных инструментов. Неполадки, связанные с неправильным применением ключевых слов, тоже считаются одними из самых распространенных. Они обычно относятся к invalid syntax.
Вот примеры ключевых слов the Python:
- while;
- for;
- break;
- continue.
Опечатка, допущенная при написании ключевого слова the Python, может привести к прерыванию работы всего приложения. Выглядеть соответствующая ситуация будет примерно так:
Возникают орфографические ошибки в keywords в основном тогда, когда разработчик торопится и быстро пишет программный код. Именно поэтому рекомендуется всегда проверять корректность синтаксиса.
Выше – пример исправленного фрагмента с invalid syntax и результат его обработки в the Python.
Неправильное применение ключей
Ключевые слова в языке программирования используются для реализации некоторых функций и команд. Неправильная их реализация, даже при отсутствии орфографический ошибок – это тоже сбой в программе.
Ниже – наглядный пример неправильного применения break:
The Python использует ключевое слово break для экстренного завершения цикла. Воспользоваться им за пределами loop в программном коде нельзя. Это повлечет за собой неправильный синтаксис.
Исправить данную syntaxerror: invalid-syntax легко. Достаточно просто добавить в исходный код цикл, в котором будет допустимо применение ключевого слова break.
Особенности считывания
Чтобы лучше разбираться в the Python invalid-syntax, недостаточно знать, что собой представляет синтаксическая ошибка. Необходимо также научиться правильно считывать характерные сообщения интерпретатора. Обычно по ним удается понять, как, что и где исправлять в исходном коде.
Вот пример веб-скрипта the Python, который выдаст две синтаксические ошибки при обработке фрагмента приложения:
Здесь есть словарь различных цен, для которого используется цикл for. Он нужен, чтобы напечатать цены от 10 до 14,99 долларов. Переменная Price_found использует логические значения для определения факта обнаружения ценника в словаре.
При обработке фрагмента the Python укажет на первую обнаруженную invalid syntax, хотя на самом деле их две. Первое сообщение будет выглядеть так:
Данные, написанные в желтой выделенной области, помогают определить местонахождение некорректного синтаксиса. В зеленой области указана более подробная информация о сбое. Полное сообщение разделяется на несколько ключевых компонентов:
- Путь к каталогу, а также имя файла, в котором обнаружена неполадка the Python.
- Номер строки и ошибочная строка кода. Это место, где впервые возникла синтаксическая неполадка.
- Каретки (^). Они указывают на непосредственное место ошибки.
- Сообщение об ошибке. Оно определяет тип сбоя в the Python. Далее здесь пишется дополнительная информация. С ее помощью разработчик сможет быстрее исправить ситуацию.
В предложенном примере возникла ошибка, обнаруженная в списке цен. Каретки указывают на то, что неполадка находится между price2 и price3. Разработчик увидит характерное сообщение о недопустимом синтаксисе. Оно говорит о том, что в исходном коде the Python может быть пропущена запятая между элементами словаря. Если проверить корректность написания фрагмента, выяснится, что так и есть. Исправить ситуацию поможет написание корректной строки:
Можно перезапустить код и увидеть вторую invalid syntax:
Здесь каретки не могут обнаружить точное местоположение ошибки. Сообщение SyntaxError не предусматривает дополнительную информацию о возможном решении проблемы. В этом случае придется проверять весь код, написанный перед каретками. Предложенный фрагмент имеет ошибку между ключом и значениями переменных в for-цикле. Она связана с отсутствием в цикле запятой. Синтаксически грамотная строка будет выглядеть так:
Несмотря на то, что the Python всегда старается не только точно обнаружить «проблемное» место в приложении, но и дать рекомендации по его коррекции, не во всех случаях предоставленных сведений хватает. Invalid Syntax иногда требует тщательной проверки всего исходного кода или его значительной части. Придется проявить внимательность.
Советы по обнаружению и корректировке
Разработчикам the Python рекомендуется при поиске синтаксических ошибок руководствоваться следующими правилами:
- Не торопиться при написании программного кода проекта. Лучше не допускать ошибки, чем искать и исправлять их.
- Сузить проблему и обратить внимание на номер строки и сообщение the Python об ошибке из обратной трассировки.
- Перед запуском программного продукта самостоятельно проверить весь код на наличие синтаксически неправильных конструкций.
- Удалить или исправить фрагменты кода, которые кажутся некорректно написанными.
- Запоминать синтаксис при изучении the Python.
Некоторые программисты пользуются специальными редакторами кода с расширенным функционалом. В таких приложениях есть подсветка синтаксиса, которая позволяет избежать invalid syntax, а также автоматические отступы.
Интересует Python? Добро пожаловать на курс в Otus!
<!DOCTYPE html>
<html dir="ltr" lang="ru-RU">
<head>
<meta charset="UTF-8" />
<meta http-equiv="x-ua-compatible" content="ie=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="profile" href="http://gmpg.org/xfn/11" />
<title>Python и синтаксические ошибки OTUS</title>
<!-- All in One SEO 4.5.2.1 - aioseo.com -->
<meta name="description" content="The Python – удобный и функциональный язык программирования. Он является универсальным средством разработки, рекомендованным для изучения как новичкам, так и уже опытным специалистам. Несмотря на свою простоту, the Python может выдавать ошибки в процессе компиляции программного обеспечения. Их необходимо правильно обрабатывать и устранять. Обработка ошибок помогает увеличить отказоустойчивость кода и защищает его от потенциальных сбоев." />
<meta name="robots" content="max-image-preview:large" />
<link rel="canonical" href="https://otus.ru/journal/python-i-sintaksicheskie-oshibki/" />
<meta name="generator" content="All in One SEO (AIOSEO) 4.5.2.1" />
<script type="application/ld+json" class="aioseo-schema">
{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/otus.ru\/journal\/python-i-sintaksicheskie-oshibki\/#article","name":"Python \u0438 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 OTUS","headline":"Python \u0438 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438","author":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"publisher":{"@id":"https:\/\/otus.ru\/journal\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/11\/oj-1080x72034-1.jpg","width":2245,"height":1587},"datePublished":"2023-11-14T21:23:56+00:00","dateModified":"2023-12-19T19:06:10+00:00","inLanguage":"ru-RU","mainEntityOfPage":{"@id":"https:\/\/otus.ru\/journal\/python-i-sintaksicheskie-oshibki\/#webpage"},"isPartOf":{"@id":"https:\/\/otus.ru\/journal\/python-i-sintaksicheskie-oshibki\/#webpage"},"articleSection":"\u041f\u043e\u043b\u0435\u0437\u043d\u043e\u0435, Python"},{"@type":"BreadcrumbList","@id":"https:\/\/otus.ru\/journal\/python-i-sintaksicheskie-oshibki\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/#listItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430","item":"https:\/\/otus.ru\/journal\/","nextItem":"https:\/\/otus.ru\/journal\/python-i-sintaksicheskie-oshibki\/#listItem"},{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/python-i-sintaksicheskie-oshibki\/#listItem","position":2,"name":"Python \u0438 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438","previousItem":"https:\/\/otus.ru\/journal\/#listItem"}]},{"@type":"Organization","@id":"https:\/\/otus.ru\/journal\/#organization","name":"\u041e\u0442\u0443\u0441 \u043e\u043d\u043b\u0430\u0439\u043d-\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435","url":"https:\/\/otus.ru\/journal\/","sameAs":["https:\/\/www.youtube.com\/channel\/UCetgtvy93o3i3CvyGXKFU3g"],"contactPoint":{"@type":"ContactPoint","telephone":"+74999389202","contactType":"Customer Support"}},{"@type":"Person","@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author","url":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/","name":"A. Pavlenko","image":{"@type":"ImageObject","@id":"https:\/\/otus.ru\/journal\/python-i-sintaksicheskie-oshibki\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/d4c499a104d7c2522fa41f89e6819499?s=96&d=mm&r=g","width":96,"height":96,"caption":"A. Pavlenko"}},{"@type":"WebPage","@id":"https:\/\/otus.ru\/journal\/python-i-sintaksicheskie-oshibki\/#webpage","url":"https:\/\/otus.ru\/journal\/python-i-sintaksicheskie-oshibki\/","name":"Python \u0438 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 OTUS","description":"The Python \u2013 \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041e\u043d \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u043c \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0434\u043b\u044f \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u043a\u0430\u043a \u043d\u043e\u0432\u0438\u0447\u043a\u0430\u043c, \u0442\u0430\u043a \u0438 \u0443\u0436\u0435 \u043e\u043f\u044b\u0442\u043d\u044b\u043c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u0430\u043c. \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0441\u0432\u043e\u044e \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u0443, the Python \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f. \u0418\u0445 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0438 \u0443\u0441\u0442\u0440\u0430\u043d\u044f\u0442\u044c. \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0448\u0438\u0431\u043e\u043a \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c \u043a\u043e\u0434\u0430 \u0438 \u0437\u0430\u0449\u0438\u0449\u0430\u0435\u0442 \u0435\u0433\u043e \u043e\u0442 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0431\u043e\u0435\u0432.","inLanguage":"ru-RU","isPartOf":{"@id":"https:\/\/otus.ru\/journal\/#website"},"breadcrumb":{"@id":"https:\/\/otus.ru\/journal\/python-i-sintaksicheskie-oshibki\/#breadcrumblist"},"author":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"creator":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/11\/oj-1080x72034-1.jpg","@id":"https:\/\/otus.ru\/journal\/python-i-sintaksicheskie-oshibki\/#mainImage","width":2245,"height":1587},"primaryImageOfPage":{"@id":"https:\/\/otus.ru\/journal\/python-i-sintaksicheskie-oshibki\/#mainImage"},"datePublished":"2023-11-14T21:23:56+00:00","dateModified":"2023-12-19T19:06:10+00:00"},{"@type":"WebSite","@id":"https:\/\/otus.ru\/journal\/#website","url":"https:\/\/otus.ru\/journal\/","name":"OTUS JOURNAL","description":"Blog about IT","inLanguage":"ru-RU","publisher":{"@id":"https:\/\/otus.ru\/journal\/#organization"}}]}
</script>
<!-- All in One SEO -->
<link rel='dns-prefetch' href='//otus.ru' />
<link rel='dns-prefetch' href='//fonts.googleapis.com' />
<link rel='stylesheet' id='wp-block-library-css' href='https://otus.ru/journal/wp-includes/css/dist/block-library/style.min.css?ver=6.4.7' type='text/css' media='all' />
<style id='classic-theme-styles-inline-css' type='text/css'>
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
</style>
<style id='global-styles-inline-css' type='text/css'>
body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}body .is-layout-flex > *{margin: 0;}body .is-layout-grid{display: grid;}body .is-layout-grid > *{margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
.wp-block-navigation a:where(:not(.wp-element-button)){color: inherit;}
:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
.wp-block-pullquote{font-size: 1.5em;line-height: 1.6;}
</style>
<link rel='stylesheet' id='wbcr-comments-plus-url-span-css' href='https://otus.ru/journal/wp-content/plugins/clearfy/components/comments-plus/assets/css/url-span.css?ver=2.2.0' type='text/css' media='all' />
<link rel='stylesheet' id='wpel-style-css' href='https://otus.ru/journal/wp-content/plugins/wp-external-links/public/css/wpel.css?ver=2.59' type='text/css' media='all' />
<link rel='stylesheet' id='ez-toc-css' href='https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/css/screen.min.css?ver=2.0.61' type='text/css' media='all' />
<style id='ez-toc-inline-css' type='text/css'>
div#ez-toc-container .ez-toc-title {font-size: 120%;}div#ez-toc-container .ez-toc-title {font-weight: 500;}div#ez-toc-container ul li {font-size: 95%;}div#ez-toc-container nav ul ul li {font-size: 90%;}
.ez-toc-container-direction {direction: ltr;}.ez-toc-counter ul{counter-reset: item ;}.ez-toc-counter nav ul li a::before {content: counters(item, ".", decimal) ". ";display: inline-block;counter-increment: item;flex-grow: 0;flex-shrink: 0;margin-right: .2em; float: left; }.ez-toc-widget-direction {direction: ltr;}.ez-toc-widget-container ul{counter-reset: item ;}.ez-toc-widget-container nav ul li a::before {content: counters(item, ".", decimal) ". ";display: inline-block;counter-increment: item;flex-grow: 0;flex-shrink: 0;margin-right: .2em; float: left; }
</style>
<link rel='stylesheet' id='contentberg-fonts-css' href='https://fonts.googleapis.com/css?family=Roboto%3A400%2C500%2C700%7CPT+Serif%3A400%2C400i%2C600%7CIBM+Plex+Serif%3A500' type='text/css' media='all' />
<link rel='stylesheet' id='contentberg-core-css' href='https://otus.ru/journal/wp-content/themes/contentberg/style.css?ver=1.8.3' type='text/css' media='all' />
<link rel='stylesheet' id='contentberg-lightbox-css' href='https://otus.ru/journal/wp-content/themes/contentberg/css/lightbox.css?ver=1.8.3' type='text/css' media='all' />
<link rel='stylesheet' id='font-awesome-css' href='https://otus.ru/journal/wp-content/themes/contentberg/css/fontawesome/css/font-awesome.min.css?ver=1.8.3' type='text/css' media='all' />
<script type="text/javascript" id="breeze-prefetch-js-extra">
/* <![CDATA[ */
var breeze_prefetch = {"local_url":"https:\/\/otus.ru\/journal","ignore_remote_prefetch":"1","ignore_list":["\/wp-admin\/"]};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/breeze/assets/js/js-front-end/breeze-prefetch-links.min.js" id="breeze-prefetch-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery.min.js" id="jquery-core-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery-migrate.min.js" id="jquery-migrate-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/lazysizes.js" id="lazysizes-js"></script>
<link rel="https://api.w.org/" href="https://otus.ru/journal/wp-json/" /><link rel="alternate" type="application/json" href="https://otus.ru/journal/wp-json/wp/v2/posts/8011" /><link rel='shortlink' href='https://otus.ru/journal/?p=8011' />
<link rel="alternate" type="application/json+oembed" href="https://otus.ru/journal/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fpython-i-sintaksicheskie-oshibki%2F" />
<link rel="alternate" type="text/xml+oembed" href="https://otus.ru/journal/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fpython-i-sintaksicheskie-oshibki%2F&format=xml" />
<script>var Sphere_Plugin = {"ajaxurl":"https:\/\/otus.ru\/journal\/wp-admin\/admin-ajax.php"};</script><link rel="icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-32x32.png" sizes="32x32" />
<link rel="icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-192x192.png" sizes="192x192" />
<link rel="apple-touch-icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-180x180.png" />
<meta name="msapplication-TileImage" content="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-270x270.png" />
<style type="text/css" id="wp-custom-css">
#menu-item-10406 .wpel-icon {
display: none;
}
#menu-item-10407 .wpel-icon {
display: none;
}
.otus-login-site a .wpel-icon {
display: none;
}
.menu-menju-navykov-container a .wpel-icon {
display: none;
}
.otus-login-site a
{
background: #ffd709;
border-radius: 12px;
color: #0f0f10;
font-size: 14px;
font-weight: 700;
line-height: 20px;
display: block;
text-align: center;
padding: 8px 25px;
}
.main-footer.dark {
background: linear-gradient(90deg, #a64fc5, #4f54e6);
border-color: transparent;
}
.main-footer.bold .copyright {
color: #fff;
}
.main-footer.bold .to-top i {
color: #fff;
}
.main-footer.bold .back-to-top {
color: #fff;
}
.nav__scroll {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
.scrollable-menu .menu {
display: flex;
}
.nav__scroll
{
background: linear-gradient(90deg, #a64fc5, #4f54e6);
}
.scrollable-menu .menu .menu-item {
flex: 0 0 auto;
padding: 15px 15px;
}
.scrollable-menu .menu .menu-item a {
color: #fff;
}
.nav__scroll::-webkit-scrollbar{background-color:#fff;height:5px;}
.nav__scroll::-webkit-scrollbar-thumb{background-color:#dcdcdc;}
.nav__scroll::-webkit-scrollbar-track{-webkit-border-radius:0;border-radius:0;background-color:#fff;}/
body {
min-width: 320px;
}
.banner-click img {
margin: 0 auto;
display: block;
}
.banner-click {
cursor: pointer;
}
.banner-footer-area {
margin-bottom: 20px;
}
.banner-left-area {
margin-top: 40px;
} </style>
<!--Start VDZ Yandex Metrika Plugin-->
<!-- Yandex.Metrika counter --><script type="text/javascript" >(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");ym(34531570, "init", {clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true, trackHash:true, ecommerce:"dataLayer"});</script>
<noscript><div><img src="https://mc.yandex.ru/watch/34531570" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter --><!--START ADD EVENTS FROM CF7--><script type='text/javascript'>document.addEventListener( 'wpcf7submit', function( event ) {
//event.detail.contactFormId;
if(ym){
//console.log(event.detail);
ym(34531570, 'reachGoal', 'VDZ_SEND_CONTACT_FORM_7');
ym(34531570, 'params', {
page_url: window.location.href,
status: event.detail.status,
locale: event.detail.contactFormLocale,
form_id: event.detail.contactFormId,
});
}
}, false );
</script><!--END ADD EVENTS FROM CF7-->
<!--End VDZ Yandex Metrika Plugin-->
</head>
<body class="post-template-default single single-post postid-8011 single-format-standard right-sidebar lazy-normal has-lb">
<div class="main-wrap">
<header id="main-head" class="main-head head-nav-below has-search-modal simple simple-boxed">
<div class="inner inner-head" data-sticky-bar="0">
<div class="wrap cf wrap-head">
<div class="left-contain">
<span class="mobile-nav"><i class="fa fa-bars"></i></span>
<div class="title">
<a href="https://otus.ru/journal/" title="OTUS JOURNAL" rel="home" data-wpel-link="internal">
<span class="text-logo"><img src="/journal/wp-content/themes/contentberg/img/logo_site.svg" alt="OTUS JOURNAL"></span>
</a>
</div>
</div>
<div class="navigation-wrap inline">
<nav class="navigation inline simple light" data-sticky-bar="0">
<div class="menu-rubriki-container"><ul id="menu-rubriki" class="menu"><li id="menu-item-109" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-1 menu-item-109"><a href="https://otus.ru/journal/category/pro-it/" data-wpel-link="internal"><span>Про IT</span></a></li>
<li id="menu-item-113" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-cat-4 menu-item-113"><a href="https://otus.ru/journal/category/polza/" data-wpel-link="internal"><span>Полезное</span></a></li>
<li id="menu-item-114" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-3 menu-item-114"><a href="https://otus.ru/journal/category/lifestyle/" data-wpel-link="internal"><span>Лайфстайл</span></a></li>
<li id="menu-item-10406" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10406"><a href="https://otus.ru/catalog/courses" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right"><span>Обучение</span><span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10407" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10407"><a href="https://otus.ru/about" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right"><span>Информация</span><span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </nav>
</div>
<div class="actions">
<div class="otus-login-site">
<a href="https://otus.ru/login/" target="_blank" data-wpel-link="external" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Войти<span class="wpel-icon wpel-image wpel-icon-6"></span></a>
</div>
<a href="#" title="Search" class="search-link"><i class="fa fa-search"></i></a>
</div>
</div>
</div>
</header> <!-- .main-head -->
<div class="nav nav_disable nav_colored nav_transparent course-categories__nav nav__scroll ">
<div class="container wrap">
<div class="links inline simple light scrollable-menu">
<div class="menu-menju-navykov-container"><ul id="menu-menju-navykov" class="menu"><li id="menu-item-10413" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10413"><a href="https://otus.ru/categories/programming/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Программирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10414" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10414"><a href="https://otus.ru/categories/architecture/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Архитектура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10415" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10415"><a href="https://otus.ru/categories/operations/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Инфраструктура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10416" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10416"><a href="https://otus.ru/categories/information-security-courses/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Безопасность<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10417" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10417"><a href="https://otus.ru/categories/data-science/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Data Science<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10418" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10418"><a href="https://otus.ru/categories/gamedev/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">GameDev<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10419" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10419"><a href="https://otus.ru/categories/marketing-business/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Управление<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10420" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10420"><a href="https://otus.ru/categories/analytics/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Аналитика и анализ<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10421" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10421"><a href="https://otus.ru/categories/testing/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Тестирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </div>
</div>
</div>
<div class="main wrap">
<div class="ts-row cf">
<div class="col-8 main-content cf">
<article id="post-8011" class="the-post post-8011 post type-post status-publish format-standard has-post-thumbnail category-polza tag-python">
<header class="post-header the-post-header cf">
<div class="post-meta the-post-meta">
<span class="post-cat">
<a href="https://otus.ru/journal/category/polza/" class="category" data-wpel-link="internal">Полезное</a>
</span>
<h1 class="post-title">
Python и синтаксические ошибки
</h1>
<a href="https://otus.ru/journal/python-i-sintaksicheskie-oshibki/" class="date-link" data-wpel-link="internal"><time class="post-date">14 ноября, 2023</time></a>
</div>
<div class="featured">
<a href="https://otus.ru/journal/wp-content/uploads/2023/11/oj-1080x72034-1.jpg" class="image-link" data-wpel-link="internal"><img width="770" height="515" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20770%20515%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-contentberg-main size-contentberg-main lazyload wp-post-image" alt="Python и синтаксические ошибки" title="Python и синтаксические ошибки" decoding="async" fetchpriority="high" data-srcset="https://otus.ru/journal/wp-content/uploads/2023/11/oj-1080x72034-1-770x515.jpg 770w, https://otus.ru/journal/wp-content/uploads/2023/11/oj-1080x72034-1-270x180.jpg 270w" data-src="https://otus.ru/journal/wp-content/uploads/2023/11/oj-1080x72034-1-770x515.jpg" data-sizes="(max-width: 770px) 100vw, 770px" /> </a>
</div>
</header><!-- .post-header -->
<div class="post-content description cf entry-content content-normal">
<div id="ez-toc-container" class="ez-toc-v2_0_61 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction">
<div class="ez-toc-title-container">
<p class="ez-toc-title " >Содержание</p>
<span class="ez-toc-title-toggle"><a href="#" class="ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle" aria-label="Toggle Table of Content"><span class="ez-toc-js-icon-con"><span class=""><span class="eztoc-hide" style="display:none;">Toggle</span><span class="ez-toc-icon-toggle-span"><svg style="fill: #999;color:#999" xmlns="http://www.w3.org/2000/svg" class="list-377408" width="20px" height="20px" viewBox="0 0 24 24" fill="none"><path d="M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z" fill="currentColor"></path></svg><svg style="fill: #999;color:#999" class="arrow-unsorted-368013" xmlns="http://www.w3.org/2000/svg" width="10px" height="10px" viewBox="0 0 24 24" version="1.2" baseProfile="tiny"><path d="M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z"/></svg></span></span></span></a></span></div>
<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-1" href="#%D0%92%D0%B8%D0%B4%D1%8B_%D0%BE%D1%88%D0%B8%D0%B1%D0%BE%D0%BA" title="Виды ошибок">Виды ошибок</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-2" href="#%D0%9D%D0%B5%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D0%BA_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D0%B8_OutofMemoryError" title="Недостаток памяти (OutofMemoryError)">Недостаток памяти (OutofMemoryError)</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-3" href="#%D0%A0%D0%B5%D0%BA%D1%83%D1%80%D1%81%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D1%81%D0%B1%D0%BE%D0%B9" title="Рекурсивный сбой">Рекурсивный сбой</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-4" href="#%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0_%D0%BE%D1%82%D1%81%D1%82%D1%83%D0%BF%D0%B0" title="Ошибка отступа">Ошибка отступа</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-5" href="#%D0%A1%D0%B8%D0%BD%D1%82%D0%B0%D0%BA%D1%81%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D1%81%D0%B1%D0%BE%D0%B8" title="Синтаксические сбои">Синтаксические сбои</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-6" href="#%D0%9F%D1%80%D0%B8%D1%87%D0%B8%D0%BD%D1%8B_%D0%BF%D0%BE%D1%8F%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F" title="Причины появления">Причины появления</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-7" href="#%D0%A1%D0%B0%D0%BC%D1%8B%D0%B5_%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_SyntaxError" title="Самые распространенные SyntaxError">Самые распространенные SyntaxError</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-8" href="#%D0%9F%D1%83%D0%BD%D0%BA%D1%82%D1%83%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B1%D0%BE%D0%B8" title="Пунктуационные сбои">Пунктуационные сбои</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-9" href="#%D0%9D%D0%B5%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D1%8E%D1%89%D0%B8%D0%B5_%D0%BA%D0%B0%D0%B2%D1%8B%D1%87%D0%BA%D0%B8_%D0%B8_%D1%81%D0%BA%D0%BE%D0%B1%D0%BA%D0%B8" title="Недостающие кавычки и скобки">Недостающие кавычки и скобки</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-10" href="#%D0%9D%D0%B5%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D0%BE_%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%B2%D1%8B%D0%B5_%D1%81%D0%BB%D0%BE%D0%B2%D0%B0" title="Неправильно написанные ключевые слова">Неправильно написанные ключевые слова</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-11" href="#%D0%9D%D0%B5%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%B9" title="Неправильное применение ключей">Неправильное применение ключей</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-12" href="#%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%81%D1%87%D0%B8%D1%82%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F" title="Особенности считывания">Особенности считывания</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-13" href="#%D0%A1%D0%BE%D0%B2%D0%B5%D1%82%D1%8B_%D0%BF%D0%BE_%D0%BE%D0%B1%D0%BD%D0%B0%D1%80%D1%83%D0%B6%D0%B5%D0%BD%D0%B8%D1%8E_%D0%B8_%D0%BA%D0%BE%D1%80%D1%80%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B5" title="Советы по обнаружению и корректировке">Советы по обнаружению и корректировке</a></li></ul></nav></div>
<p>The Python – удобный и функциональный язык программирования. Он является универсальным средством разработки, рекомендованным для изучения как новичкам, так и уже опытным специалистам. Несмотря на свою простоту, the Python может выдавать ошибки в процессе компиляции программного обеспечения. Их необходимо правильно обрабатывать и устранять.</p>
<p>Обработка ошибок помогает увеличить отказоустойчивость кода и защищает его от потенциальных сбоев. Существуют два варианта неполадок – ошибки и исключения. Первые обработать нельзя, а вторые обрабатываются при работе программного продукта.</p>
<p>Часто разработчики сталкиваются с invalid syntax. Это одна из самых распространенных неполадок, которая преследует даже опытных разработчиков. Дальше предстоит рассмотреть ошибки синтаксиса более подробно.</p>
<p>В статье будет рассказано о типах сбоев и ошибок в the Python, их особенностях и исключениях. Предстоит выяснить, как не допустить syntax error, когда она возникает и на что указывает. Предложенная информация ориентирована на широкую публику. Она подойдет и опытным разработчикам, и новичкам, только изучающим the Python.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%92%D0%B8%D0%B4%D1%8B_%D0%BE%D1%88%D0%B8%D0%B1%D0%BE%D0%BA"></span>Виды ошибок<span class="ez-toc-section-end"></span></h2>
<p>The Python – язык, в котором встречаются следующие виды сбоев:</p>
<ul>
<li>синтаксические ошибки;</li>
<li>недостаток памяти;</li>
<li>ошибки рекурсии;</li>
<li>исключения.</li>
</ul>
<p>Каждый вариант предусматривает свои ключевые особенности исправления, а также влияния на программный код. Далее все они будут изучены более подробно (кроме исключений). Особый упор сделан на invalid syntax.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9D%D0%B5%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D0%BA_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D0%B8_OutofMemoryError"></span>Недостаток памяти (OutofMemoryError)<span class="ez-toc-section-end"></span></h3>
<p>Сбои, связанные с памятью, чаще всего возникают из-за оперативной памяти и относятся к структуре данных «куча» (heap). При наличии крупных объектов или ссылок на них, с большой долей вероятности возникнет OutofMemoryError. Данный сбой может возникать по нескольким причинам:</p>
<ul>
<li>применение 32-битной архитектуры the Python (предельный объем выделенной памяти небольшой – между 2 и 4 ГБ);</li>
<li>загрузка крупного файла;</li>
<li>запуск модели машинного или глубокого обучения.</li>
</ul>
<p>Это наиболее распространенные причины, по которым возникает OutOfMemory. Обработка заключается в резервном исключении. Применяется данная концепция тогда, когда у интерпретатора заканчивается память, и он должен незамедлительно остановить текущее исполнение.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A0%D0%B5%D0%BA%D1%83%D1%80%D1%81%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D1%81%D0%B1%D0%BE%D0%B9"></span>Рекурсивный сбой<span class="ez-toc-section-end"></span></h3>
<p>Данная ошибка the Python связана со стеком и возникает в процессе вызова функций. Она появляется, когда внутри друг друга работает множество методов, но все это ограничивается размером стека.</p>
<p>Локальные переменные и методы размещаются в пределах одного стека. Каждое обращение к методу влечет за собой создание стекового кадра (фрейма), внутри которого размещаются данные переменной или результат вызова функции. После реализации метода его элемент будет стерт.</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/pemfecTtM45QkPe3xk9Px7_xkVGWXF3oFf2WYdL4BAPF7fGDOsZPYKolGFIvtlLUDFFhfxJAb1XPafKMzaRNJKD4GLmkoY95TAuPXKenJpVM8ODIlL8dFo_Ji0XNrWiS3Pix6aQ_zs8b0tIPmFIQTw" alt="Python и синтаксические ошибки"/></figure>
<p>Выше – код, который поможет воспроизвести соответствующий тип ошибки. Здесь определена функция recursion, которая станет рекурсивной – она начнет вызывать сама себя в бесконечном цикле. При запуске фрагмента появится сообщение StackOverflow или ошибка рекурсии. Это связано с тем, что стековый кадр заполняется данными метода из каждого вызова, но они не будут высвобождаться.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0_%D0%BE%D1%82%D1%81%D1%82%D1%83%D0%BF%D0%B0"></span>Ошибка отступа<span class="ez-toc-section-end"></span></h3>
<p>Этот тип сбоя при работе программного кода – подвид syntaxerror: invalid-syntax. Она может возникнуть как у новичка, так и у опытного разработчика. Появляется, если в процессе написания кода возникли проблемы с отступами.</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/SyMRmnqTA5fku_2aJUzHPFLrv99ra1bjv1QPTl8poQz4qO1kmcbaUeJZZ1H7CnDUEfnabXarsO5wq-PVKpUDuF3peFuGPP1v5KhGV1bSU9Ft2eJUEen9MdDrNQVNkq6e_7j6SAMkl0LFDQqAx2_vqg" alt="Python и синтаксические ошибки"/></figure>
<p>Выше – наглядный пример кода с неправильными отступами. Обычно исправить такую неполадку легко. Она не имеет никаких критичных последствий для функционирования исходного приложения.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A1%D0%B8%D0%BD%D1%82%D0%B0%D0%BA%D1%81%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D1%81%D0%B1%D0%BE%D0%B8"></span>Синтаксические сбои<span class="ez-toc-section-end"></span></h2>
<p>В the Python 3 invalid-syntax – одна из самых распространенных ошибок. Она может встречаться не только в этом языке программирования, но и в других. Называется ошибкой разбора. Указывает на то, что интерпретатор обнаружил некорректный синтаксис в исходном коде приложения.</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/AcluqSBqrBv_eFEiahEk8aUTv3ud19oBJ_Tag6im3WJDabkLitCtPSgg2NQvPb91vKh4XI499HkUl-T6sQmS4i4bnJiITW9PJij545SIXHkQU01eIsJRgxIgKGZd4d5_QPF-3PA-QOcB1KvpZzgiFA" alt="Python и синтаксические ошибки"/></figure>
<p>Выше – наглядный пример соответствующей неполадки в the Python. Здесь стрелка вверху указывает на место, где интерпретатор распознал syntax error в процессе попытки исполнения функции или команды. Символ перед стрелкой указывает на непосредственную причину проблемы.</p>
<p>Чтобы устранить фундаментальные неполадки the Python, придется тщательно просматривать исходный код. В процессе отладки предстоит вводить название файла и номер строки, где программа обнаружила неправильный синтаксис.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9F%D1%80%D0%B8%D1%87%D0%B8%D0%BD%D1%8B_%D0%BF%D0%BE%D1%8F%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F"></span>Причины появления<span class="ez-toc-section-end"></span></h3>
<p>Def syntaxerror: invalid-syntax – одна из самых распространенных ошибок в the Python. Она указывает на то, что в программном коде что-то написано с нарушением действующих синтаксических правил языка.</p>
<p>Наиболее распространенными причинами появления соответствующего сбоя служат следующие моменты:</p>
<ul>
<li>неправильные отступы (в the Python этот тип syntaxerror выведен в отдельную категорию);</li>
<li>отсутствие открывающих или закрывающих скобок, кавычек;</li>
<li>неправильно написанные зарезервированные ключевые слова;</li>
<li>программист пытался использовать в качестве имени переменной ключевые слова;</li>
<li>в ключевых словах отсутствуют части слов;</li>
<li>пропущены знаки препинания в функции или выражении;</li>
<li>отсутствующие операторы;</li>
<li>недопустимое использование блоков (чаще всего – циклов);</li>
<li>некорректное объявление переменных;</li>
<li>недопустимые определения или вызовы функций.</li>
</ul>
<p>Invalid Syntax – это указание на то, что код the Python написан без соблюдения синтаксических правил и норм языка. Некоторые неполадки соответствующего типа могут поставить в тупик даже самого опытного специалиста. Далее предстоит изучить самые распространенные неполадки синтаксиса, а также способы их корректировки и обнаружения.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A1%D0%B0%D0%BC%D1%8B%D0%B5_%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_SyntaxError"></span>Самые распространенные SyntaxError<span class="ez-toc-section-end"></span></h2>
<p>Неверный синтаксис не всегда легко определить. Существуют некоторые ошибки the Python рассматриваемой категории, которые могут вызвать трудности при поиске и отладке. Далее предстоит изучить общие и наиболее встречающиеся invalid syntax.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9F%D1%83%D0%BD%D0%BA%D1%82%D1%83%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B1%D0%BE%D0%B8"></span>Пунктуационные сбои<span class="ez-toc-section-end"></span></h3>
<p>Сообщение «Missing punctuation error» может ввести в замешательство программистов-новичков. Ниже можно увидеть фрагмент кода the Python, при обработке которого возникает характерное сообщение об обнаруженной неполадке:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/EJHnJG0MHyRwCFru58C85VFX8XBq_s82Vbd6TtfHzP6R2-_tpoLkF6qjqv3HBY5eX3MaTLI-MG_KzD9Im8dM26JuPraUFxItMJ0pvRcsS8nCgLVpA8W06jss0602eXvEmsRxgnBtbLWhoedGTk1ntg" alt="Python и синтаксические ошибки"/></figure>
<p>Обычно пунктуационные неполадки относятся к строке, которая идет после фактически совершенной ошибки в the Python. Здесь – это недостающий знак препинания (запятая) во второй строке определения. Для исправления нужно переписать код the Python и расставить все знаки препинания по местам:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/tHN-UcDCs0pfNxkHkDXKikpabEoieLWNRr2670t_uwTuiB6DmhitbqdC24Maej7UhiegBmDwvhvPNI7bMDzBBJC-N3_RJTkjsXe2qeli3dbkU0w1Ub2ZqQR25D7Mcm02wapgY32sAffAtmCZPMkjww" alt="Python и синтаксические ошибки"/></figure>
<p>Выше – исправленный фрагмент приложения и результат его корректной обработки.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9D%D0%B5%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D1%8E%D1%89%D0%B8%D0%B5_%D0%BA%D0%B0%D0%B2%D1%8B%D1%87%D0%BA%D0%B8_%D0%B8_%D1%81%D0%BA%D0%BE%D0%B1%D0%BA%D0%B8"></span>Недостающие кавычки и скобки<span class="ez-toc-section-end"></span></h3>
<p>Invalid Syntax в the Python может встречаться из-за того, что в процессе написания приложения программист не поставил кавычки (любого типа) или скобки в нужных местах. Вот наглядный пример соответствующего сбоя:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/bmgSzOczMZb6MjGLVcJHa0n92YWpXSbO-pwma7M-Wa4GfREUE0pPL6SJBUisX9EqBeFya7E-1ycXKT_vKRmsSWwlxHr9yxHI5yGBkKktk14QjE8kYQYPKeKu_ca1ghzzG9WTdHeRv-B4-tD-NpQg4A" alt="Python и синтаксические ошибки"/></figure>
<p>Здесь отсутствуют открывающие и закрывающие скобки в функции print (). Круглые скобки необходимы для вызова функции. Они ставятся даже тогда, когда аргументы, передаваемые в команду, отсутствуют.</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/rlcWmdSx0PO5-vkXwHWKjiMuJ-1jpVFHCLVmH4s2t4xYl4YrTavVhn937ReQ8ID7ol_aEDgKbf0bgUEJyyUgF7HbVrBGVpQnJO0JDhiy-W-nYiZ_y0S5ejIzC856ngJmW5NKq-hFog8OagBI8oCuZw" alt="Python и синтаксические ошибки"/></figure>
<p>Данную неполадку легко исправить. Все, что нужно разработчику – это найти «проблемное» место и поставить круглые скобки в функцию печати. Исправленный код the Python будет выглядеть так:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/EsTHD_xVRVzOKRm8KNOWPLuwHJukq3KBh-7vxlCr7h7QeEOEnSamqgdJelJXfVbCbrDM9XVNlUxIH7KeAQ_7BnJ9R1V9NltmouVwvDZ-aXUzzvx5e1nwp7qpDUuUGJIm0YNmNR35qkibMI0Y1TbULw" alt="Python и синтаксические ошибки"/></figure>
<p>Syntax error: invalid-syntax-error возникает также при отсутствующих квадратных скобках. Они используются для того, чтобы определить список в the Python. Каждая открывающая скобка должна, согласно действующим правилам синтаксиса, иметь закрывающую скобку:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/Y1lDpkE9C51EPK8qj_r_8ehaESY3jJ8ACOVrP3UCI3NhwEyVnR0DzICbnEajYe5-O4twVJtPiXnWo2vx8r5PF0b6m926ExAzUh-Qzc6PMSZcV4H0F3ojKhnp1DIGfaDgmtUQRI5LceOOw8W2ZXSHKw" alt="Python и синтаксические ошибки"/></figure>
<p>Выше можно увидеть наглядный пример неполадки в the Python, связанной с квадратными скобками и исправленный фрагмент соответствующего приложения.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9D%D0%B5%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D0%BE_%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%B2%D1%8B%D0%B5_%D1%81%D0%BB%D0%BE%D0%B2%D0%B0"></span>Неправильно написанные ключевые слова<span class="ez-toc-section-end"></span></h3>
<p>В каждом языке разработки программного обеспечения имеются зарезервированные синтаксисом слова. Они называются ключевыми. Применяются для вызова определенных функций, методов, а также использования различных инструментов. Неполадки, связанные с неправильным применением ключевых слов, тоже считаются одними из самых распространенных. Они обычно относятся к invalid syntax. </p>
<p>Вот примеры ключевых слов the Python:</p>
<ul>
<li>while;</li>
<li>for;</li>
<li>break;</li>
<li>continue.</li>
</ul>
<p>Опечатка, допущенная при написании ключевого слова the Python, может привести к прерыванию работы всего приложения. Выглядеть соответствующая ситуация будет примерно так:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/qLRXL-SdJwpkHAxpmrZQ66HaWccEJUaEmspgEpP9drpEtELsy938lR7Ctn49VvX3mmNV27EENEqEPcNGMuzGAtWtmKIAsOf1a29-ZD8h5ahVMBcNFq9bousQ4ONqQ4H65UzAnAzFG3wfehCC1bG_9g" alt="Python и синтаксические ошибки"/></figure>
<p>Возникают орфографические ошибки в keywords в основном тогда, когда разработчик торопится и быстро пишет программный код. Именно поэтому рекомендуется всегда проверять корректность синтаксиса.</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/iOeL0VOHMrZVa6HbEHS4-TRLr6fkJwif4pqOVEoziL8WVUjGjBI1vNhUH2Ej-iA4KIEfCehJY2KPqQNFKslMUg76dQ15f7rHZXfSHLJnEDq-cy76_psu9evO07Hzrjp0FpYdxDG5mDK8SrsGQKiFaQ" alt="Python и синтаксические ошибки"/></figure>
<p>Выше – пример исправленного фрагмента с invalid syntax и результат его обработки в the Python.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9D%D0%B5%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%B9"></span>Неправильное применение ключей<span class="ez-toc-section-end"></span></h3>
<p>Ключевые слова в языке программирования используются для реализации некоторых функций и команд. Неправильная их реализация, даже при отсутствии орфографический ошибок – это тоже сбой в программе.</p>
<p>Ниже – наглядный пример неправильного применения break:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/5l9-ncsCPNLc0k_RspGtF3XTbFB5OktiU5IegAdfaZmMeD-sveQeIO6GxB7i_eBe0Xxvyd_AxmpnAGXqV_7CHJGVVYE5SxYJeTgZLCvm7ib_0daJX6Ji4vpCF3M8AxtAwrwGKbx6XcWz4ZgjmEu7TA" alt="Python и синтаксические ошибки"/></figure>
<p>The Python использует ключевое слово break для экстренного завершения цикла. Воспользоваться им за пределами loop в программном коде нельзя. Это повлечет за собой неправильный синтаксис.</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/2k-TKSnyqOiX7rW_L8pXb89C5eZc_QXImvHwz5LkgVOeB6HskVppsPOgqTkG9k_9KhVyFrPDJ09C5Lwr4USg9mRTKzylXLmuUCDjWSLFJPZMEuJBOJ7yi1LtWnw3laltUxzObGIG9K8JJapR_0-55Q" alt="Python и синтаксические ошибки"/></figure>
<p>Исправить данную syntaxerror: invalid-syntax легко. Достаточно просто добавить в исходный код цикл, в котором будет допустимо применение ключевого слова break.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%81%D1%87%D0%B8%D1%82%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F"></span>Особенности считывания<span class="ez-toc-section-end"></span></h2>
<p>Чтобы лучше разбираться в the Python invalid-syntax, недостаточно знать, что собой представляет синтаксическая ошибка. Необходимо также научиться правильно считывать характерные сообщения интерпретатора. Обычно по ним удается понять, как, что и где исправлять в исходном коде.</p>
<p>Вот пример веб-скрипта the Python, который выдаст две синтаксические ошибки при обработке фрагмента приложения:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/hwZv8F5eEcTPvgwG9Kfyzp-6lSKLe4tEPjru5M13DizjXXnCzrgSwOEmdoKPbXSUTftMwBEUUWBSST-nAf8s49DnuDFfWMCewim2K-jW3CWdniOuxvFQjUZp9X1xGghqz_YDVCJ653TIMB9ruMUcAQ" alt="Python и синтаксические ошибки"/></figure>
<p>Здесь есть словарь различных цен, для которого используется цикл for. Он нужен, чтобы напечатать цены от 10 до 14,99 долларов. Переменная Price_found использует логические значения для определения факта обнаружения ценника в словаре.</p>
<p>При обработке фрагмента the Python укажет на первую обнаруженную invalid syntax, хотя на самом деле их две. Первое сообщение будет выглядеть так:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/-fDpwiFTJwJv-Bk_BBaXnMTGxEMCOBO6YombTJ-mKu0daY2bcTvrVCqhpZDKVAhkryDJemjQwAIRN-IQ3dM5pIwA-sY-jfgweAgOTB8SFwYaZpS9B5icyxrg0mrvpq6ZsuXB9M9C3kxnkHY-8t5jSQ" alt="Python и синтаксические ошибки"/></figure>
<p>Данные, написанные в желтой выделенной области, помогают определить местонахождение некорректного синтаксиса. В зеленой области указана более подробная информация о сбое. Полное сообщение разделяется на несколько ключевых компонентов:</p>
<ol>
<li>Путь к каталогу, а также имя файла, в котором обнаружена неполадка the Python.</li>
<li>Номер строки и ошибочная строка кода. Это место, где впервые возникла синтаксическая неполадка.</li>
<li>Каретки (^). Они указывают на непосредственное место ошибки.</li>
<li>Сообщение об ошибке. Оно определяет тип сбоя в the Python. Далее здесь пишется дополнительная информация. С ее помощью разработчик сможет быстрее исправить ситуацию.</li>
</ol>
<p>В предложенном примере возникла ошибка, обнаруженная в списке цен. Каретки указывают на то, что неполадка находится между price2 и price3. Разработчик увидит характерное сообщение о недопустимом синтаксисе. Оно говорит о том, что в исходном коде the Python может быть пропущена запятая между элементами словаря. Если проверить корректность написания фрагмента, выяснится, что так и есть. Исправить ситуацию поможет написание корректной строки:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/sPy4c4aTFFXjakbSQpl-p93XqhbZo6MMbbueOS2rCf1FHIpZ3KSSQsMNL58MRN7NWHzi_JtXjHlSWOBLghGI9WTxPhzAEApVDycx8G_Z7wB7Q6RN8wZGROffVCfCa5Le6Hd8QmlhIdIgsd5tqNVeDw" alt="Python и синтаксические ошибки"/></figure>
<p>Можно перезапустить код и увидеть вторую invalid syntax:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/2u2wio4zNF1uyTAE6oWqxoDDpCdnN7MAlC_BK7VZGQP7GNP0g3_7TYlcKGoZBFYJA8JTAhG0zXfUSD29JN9Tfk8lnr4e_IC2cAWzQDMvqHKdB9_0lKUuH31M9BHWwm5al5h1KFOXaP2hC-2_2woAwA" alt="Python и синтаксические ошибки"/></figure>
<p>Здесь каретки не могут обнаружить точное местоположение ошибки. Сообщение SyntaxError не предусматривает дополнительную информацию о возможном решении проблемы. В этом случае придется проверять весь код, написанный перед каретками. Предложенный фрагмент имеет ошибку между ключом и значениями переменных в for-цикле. Она связана с отсутствием в цикле запятой. Синтаксически грамотная строка будет выглядеть так:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/TSodDeAO1SmKY_YD1LXy68czYGOTVs_fBLqAcOVCeOJSCLp1Xm4Zh1N3AK0rvqmwkkUZkXXCedU_Zi4Aiqk4gye1sYNMX37fjXwlenq2mOkDj2g7LhN7KaBpe5-z_KMCXDxRzpqeqZftt7BYxHgy-g" alt="Python и синтаксические ошибки"/></figure>
<p>Несмотря на то, что the Python всегда старается не только точно обнаружить «проблемное» место в приложении, но и дать рекомендации по его коррекции, не во всех случаях предоставленных сведений хватает. Invalid Syntax иногда требует тщательной проверки всего исходного кода или его значительной части. Придется проявить внимательность.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A1%D0%BE%D0%B2%D0%B5%D1%82%D1%8B_%D0%BF%D0%BE_%D0%BE%D0%B1%D0%BD%D0%B0%D1%80%D1%83%D0%B6%D0%B5%D0%BD%D0%B8%D1%8E_%D0%B8_%D0%BA%D0%BE%D1%80%D1%80%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B5"></span>Советы по обнаружению и корректировке<span class="ez-toc-section-end"></span></h2>
<p>Разработчикам the Python рекомендуется при поиске синтаксических ошибок руководствоваться следующими правилами:</p>
<ol>
<li>Не торопиться при написании программного кода проекта. Лучше не допускать ошибки, чем искать и исправлять их.</li>
<li>Сузить проблему и обратить внимание на номер строки и сообщение the Python об ошибке из обратной трассировки.</li>
<li>Перед запуском программного продукта самостоятельно проверить весь код на наличие синтаксически неправильных конструкций.</li>
<li>Удалить или исправить фрагменты кода, которые кажутся некорректно написанными.</li>
<li>Запоминать синтаксис при изучении the Python.</li>
</ol>
<p>Некоторые программисты пользуются специальными редакторами кода с расширенным функционалом. В таких приложениях есть подсветка синтаксиса, которая позволяет избежать invalid syntax, а также автоматические отступы.</p>
<p>Интересует <a href="https://otus.ru/lessons/python-professional/?utm_source=oj&utm_medium=affilate&utm_campaign=python" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external" class="wpel-icon-right">Python<span class="wpel-icon wpel-image wpel-icon-6"></span></a>? Добро пожаловать на курс в Otus!</p>
</div><!-- .post-content -->
<div class="the-post-foot cf">
<div class="tag-share cf">
<div class="post-tags"><a href="https://otus.ru/journal/tag/python/" rel="tag" data-wpel-link="internal">Python</a></div>
<div class="post-share">
<div class="post-share-icons cf">
<span class="counters">
</span>
<a href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fotus.ru%2Fjournal%2Fpython-i-sintaksicheskie-oshibki%2F" class="link facebook wpel-icon-right" target="_blank" title="Share on Facebook" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-facebook"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fpython-i-sintaksicheskie-oshibki%2F&text=Python%20%D0%B8%20%D1%81%D0%B8%D0%BD%D1%82%D0%B0%D0%BA%D1%81%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5%20%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8" class="link twitter wpel-icon-right" target="_blank" title="Share on Twitter" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-twitter"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fotus.ru%2Fjournal%2Fpython-i-sintaksicheskie-oshibki%2F" class="link linkedin wpel-icon-right" target="_blank" title="LinkedIn" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-linkedin"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://pinterest.com/pin/create/button/?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fpython-i-sintaksicheskie-oshibki%2F&media=https%3A%2F%2Fotus.ru%2Fjournal%2Fwp-content%2Fuploads%2F2023%2F11%2Foj-1080x72034-1.jpg&description=Python%20%D0%B8%20%D1%81%D0%B8%D0%BD%D1%82%D0%B0%D0%BA%D1%81%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5%20%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8" class="link pinterest wpel-icon-right" target="_blank" title="Pinterest" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-pinterest-p"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
</div>
</div>
</div>
</div>
<div class="post-nav">
<div class="post previous cf">
<a href="https://otus.ru/journal/sozdanie-adaptivnogo-sajta/" title="Prev Post" class="nav-icon" data-wpel-link="internal">
<i class="fa fa-angle-left"></i>
</a>
<span class="content">
<a href="https://otus.ru/journal/sozdanie-adaptivnogo-sajta/" class="image-link" rel="previous" data-wpel-link="internal">
<img width="150" height="106" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20150%20106%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-thumbnail size-thumbnail lazyload wp-post-image" alt="Создание адаптивного сайта" decoding="async" data-srcset="https://otus.ru/journal/wp-content/uploads/2023/11/oj-1080x72033-1-150x106.jpg 150w, https://otus.ru/journal/wp-content/uploads/2023/11/oj-1080x72033-1-300x212.jpg 300w, https://otus.ru/journal/wp-content/uploads/2023/11/oj-1080x72033-1-1024x724.jpg 1024w, https://otus.ru/journal/wp-content/uploads/2023/11/oj-1080x72033-1-768x543.jpg 768w, https://otus.ru/journal/wp-content/uploads/2023/11/oj-1080x72033-1-1536x1086.jpg 1536w" data-src="https://otus.ru/journal/wp-content/uploads/2023/11/oj-1080x72033-1-150x106.jpg" data-sizes="(max-width: 150px) 100vw, 150px" title="Создание адаптивного сайта" /> </a>
<div class="post-meta">
<span class="label">Prev Post</span>
<div class="post-meta post-meta-b">
<h2 class="post-title">
<a href="https://otus.ru/journal/sozdanie-adaptivnogo-sajta/" data-wpel-link="internal">Создание адаптивного сайта</a>
</h2>
<div class="below">
<a href="https://otus.ru/journal/sozdanie-adaptivnogo-sajta/" class="meta-item date-link" data-wpel-link="internal"><time class="post-date" datetime="2023-11-14T21:01:12+00:00">14 ноября, 2023</time></a>
<span class="meta-sep"></span>
<span class="meta-item read-time">7 Mins Read</span>
</div>
</div> </div>
</span>
</div>
<div class="post next cf">
<a href="https://otus.ru/journal/chto-takoe-front-end-opisanie-professii-i-ee-osobennosti/" title="Next Post" class="nav-icon" data-wpel-link="internal">
<i class="fa fa-angle-right"></i>
</a>
<span class="content">
<a href="https://otus.ru/journal/chto-takoe-front-end-opisanie-professii-i-ee-osobennosti/" class="image-link" rel="next" data-wpel-link="internal">
<img width="150" height="106" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20150%20106%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-thumbnail size-thumbnail lazyload wp-post-image" alt="Что такое front-end: описание профессии и ее особенности" decoding="async" data-srcset="https://otus.ru/journal/wp-content/uploads/2023/11/oj-1080x72035-1-150x106.jpg 150w, https://otus.ru/journal/wp-content/uploads/2023/11/oj-1080x72035-1-300x212.jpg 300w, https://otus.ru/journal/wp-content/uploads/2023/11/oj-1080x72035-1-1024x724.jpg 1024w, https://otus.ru/journal/wp-content/uploads/2023/11/oj-1080x72035-1-768x543.jpg 768w, https://otus.ru/journal/wp-content/uploads/2023/11/oj-1080x72035-1-1536x1086.jpg 1536w" data-src="https://otus.ru/journal/wp-content/uploads/2023/11/oj-1080x72035-1-150x106.jpg" data-sizes="(max-width: 150px) 100vw, 150px" title="Что такое front-end: описание профессии и ее особенности" /> </a>
<div class="post-meta">
<span class="label">Next Post</span>
<div class="post-meta post-meta-b">
<h2 class="post-title">
<a href="https://otus.ru/journal/chto-takoe-front-end-opisanie-professii-i-ee-osobennosti/" data-wpel-link="internal">Что такое front-end: описание профессии и ее особенности</a>
</h2>
<div class="below">
<a href="https://otus.ru/journal/chto-takoe-front-end-opisanie-professii-i-ee-osobennosti/" class="meta-item date-link" data-wpel-link="internal"><time class="post-date" datetime="2023-11-14T21:51:10+00:00">14 ноября, 2023</time></a>
<span class="meta-sep"></span>
<span class="meta-item read-time">8 Mins Read</span>
</div>
</div> </div>
</span>
</div>
</div>
<section class="related-posts grid-3">
<h4 class="section-head"><span class="title">Читать ещё</span></h4>
<div class="ts-row posts cf">
<article class="post col-4">
<a href="https://otus.ru/journal/uroven-gotovnosti-cto-k-2026/" title="Уровень готовности CTO к 2026" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Уровень готовности CTO к 2026" title="Уровень готовности CTO к 2026" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-270x180.jpg 270w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-770x515.jpg 770w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-370x245.jpg 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-270x180.jpg" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/uroven-gotovnosti-cto-k-2026/" class="post-link" data-wpel-link="internal">Уровень готовности CTO к 2026</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-11-16T19:50:59+00:00">16 ноября, 2025</time>
</div>
</div>
</article >
<article class="post col-4">
<a href="https://otus.ru/journal/novye-uroki-noyabrya-tolko-top-temy-po-programmirovaniju/" title="Новые уроки ноября: только топ-темы по программированию" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Новые уроки ноября: только топ-темы по программированию" title="Новые уроки ноября: только топ-темы по программированию" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-270x180.jpg 270w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-770x515.jpg 770w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-370x245.jpg 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-270x180.jpg" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/novye-uroki-noyabrya-tolko-top-temy-po-programmirovaniju/" class="post-link" data-wpel-link="internal">Новые уроки ноября: только топ-темы по программированию</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-11-09T23:24:11+00:00">9 ноября, 2025</time>
</div>
</div>
</article >
<article class="post col-4">
<a href="https://otus.ru/journal/schjot-idjot-na-chasy/" title="Счёт идёт на часы" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Счёт идёт на часы" title="Счёт идёт на часы" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-270x180.png 270w, https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-370x245.png 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-270x180.png" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/schjot-idjot-na-chasy/" class="post-link" data-wpel-link="internal">Счёт идёт на часы</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-10-30T15:04:59+00:00">30 октября, 2025</time>
</div>
</div>
</article >
</div>
</section>
</article> <!-- .the-post -->
</div>
<aside class="col-4 sidebar">
<div class="inner">
<ul>
<li id="search-2" class="widget widget_search"><h5 class="widget-title"><span>Поиск по блогу</span></h5>
<form method="get" class="search-form" action="https://otus.ru/journal/">
<label>
<span class="screen-reader-text">Search for:</span>
<input type="search" class="search-field" placeholder="Введите запрос и нажмите Enter" value="" name="s" title="Search for:" />
</label>
<button type="submit" class="search-submit"><i class="fa fa-search"></i></button>
</form>
</li>
<li id="tag_cloud-5" class="widget widget_tag_cloud"><h5 class="widget-title"><span>Метки</span></h5><div class="tagcloud"><a href="https://otus.ru/journal/tag/android-2/" class="tag-cloud-link tag-link-74 tag-link-position-1" style="font-size: 12.472222222222pt;" aria-label="Android (34 элемента)" data-wpel-link="internal">Android</a>
<a href="https://otus.ru/journal/tag/c-3/" class="tag-cloud-link tag-link-91 tag-link-position-2" style="font-size: 10.916666666667pt;" aria-label="C (23 элемента)" data-wpel-link="internal">C</a>
<a href="https://otus.ru/journal/tag/c-2/" class="tag-cloud-link tag-link-81 tag-link-position-3" style="font-size: 12.666666666667pt;" aria-label="C# (35 элементов)" data-wpel-link="internal">C#</a>
<a href="https://otus.ru/journal/tag/c/" class="tag-cloud-link tag-link-20 tag-link-position-4" style="font-size: 12.472222222222pt;" aria-label="c++ (34 элемента)" data-wpel-link="internal">c++</a>
<a href="https://otus.ru/journal/tag/computer-science/" class="tag-cloud-link tag-link-209 tag-link-position-5" style="font-size: 15.972222222222pt;" aria-label="computer science (78 элементов)" data-wpel-link="internal">computer science</a>
<a href="https://otus.ru/journal/tag/css/" class="tag-cloud-link tag-link-288 tag-link-position-6" style="font-size: 8.6805555555556pt;" aria-label="CSS (13 элементов)" data-wpel-link="internal">CSS</a>
<a href="https://otus.ru/journal/tag/data-science/" class="tag-cloud-link tag-link-151 tag-link-position-7" style="font-size: 8pt;" aria-label="Data Science (11 элементов)" data-wpel-link="internal">Data Science</a>
<a href="https://otus.ru/journal/tag/devops/" class="tag-cloud-link tag-link-98 tag-link-position-8" style="font-size: 10.138888888889pt;" aria-label="devops (19 элементов)" data-wpel-link="internal">devops</a>
<a href="https://otus.ru/journal/tag/docker/" class="tag-cloud-link tag-link-143 tag-link-position-9" style="font-size: 8.2916666666667pt;" aria-label="Docker (12 элементов)" data-wpel-link="internal">Docker</a>
<a href="https://otus.ru/journal/tag/gamedev/" class="tag-cloud-link tag-link-25 tag-link-position-10" style="font-size: 11.694444444444pt;" aria-label="gamedev (28 элементов)" data-wpel-link="internal">gamedev</a>
<a href="https://otus.ru/journal/tag/hr/" class="tag-cloud-link tag-link-103 tag-link-position-11" style="font-size: 8pt;" aria-label="hr (11 элементов)" data-wpel-link="internal">hr</a>
<a href="https://otus.ru/journal/tag/html/" class="tag-cloud-link tag-link-217 tag-link-position-12" style="font-size: 11.208333333333pt;" aria-label="HTML (25 элементов)" data-wpel-link="internal">HTML</a>
<a href="https://otus.ru/journal/tag/ios/" class="tag-cloud-link tag-link-101 tag-link-position-13" style="font-size: 8.9722222222222pt;" aria-label="iOS (14 элементов)" data-wpel-link="internal">iOS</a>
<a href="https://otus.ru/journal/tag/it/" class="tag-cloud-link tag-link-50 tag-link-position-14" style="font-size: 10.527777777778pt;" aria-label="IT (21 элемент)" data-wpel-link="internal">IT</a>
<a href="https://otus.ru/journal/tag/java/" class="tag-cloud-link tag-link-75 tag-link-position-15" style="font-size: 15.680555555556pt;" aria-label="Java (73 элемента)" data-wpel-link="internal">Java</a>
<a href="https://otus.ru/journal/tag/javascript/" class="tag-cloud-link tag-link-83 tag-link-position-16" style="font-size: 14.319444444444pt;" aria-label="JavaScript (53 элемента)" data-wpel-link="internal">JavaScript</a>
<a href="https://otus.ru/journal/tag/linux/" class="tag-cloud-link tag-link-141 tag-link-position-17" style="font-size: 11.888888888889pt;" aria-label="Linux (29 элементов)" data-wpel-link="internal">Linux</a>
<a href="https://otus.ru/journal/tag/machine-learning/" class="tag-cloud-link tag-link-167 tag-link-position-18" style="font-size: 8.6805555555556pt;" aria-label="Machine Learning (13 элементов)" data-wpel-link="internal">Machine Learning</a>
<a href="https://otus.ru/journal/tag/otus-book/" class="tag-cloud-link tag-link-261 tag-link-position-19" style="font-size: 9.9444444444444pt;" aria-label="otus book (18 элементов)" data-wpel-link="internal">otus book</a>
<a href="https://otus.ru/journal/tag/php/" class="tag-cloud-link tag-link-45 tag-link-position-20" style="font-size: 10.527777777778pt;" aria-label="PHP (21 элемент)" data-wpel-link="internal">PHP</a>
<a href="https://otus.ru/journal/tag/python/" class="tag-cloud-link tag-link-27 tag-link-position-21" style="font-size: 16.944444444444pt;" aria-label="Python (99 элементов)" data-wpel-link="internal">Python</a>
<a href="https://otus.ru/journal/tag/qa/" class="tag-cloud-link tag-link-155 tag-link-position-22" style="font-size: 11.402777777778pt;" aria-label="qa (26 элементов)" data-wpel-link="internal">qa</a>
<a href="https://otus.ru/journal/tag/sql/" class="tag-cloud-link tag-link-38 tag-link-position-23" style="font-size: 12.861111111111pt;" aria-label="SQL (37 элементов)" data-wpel-link="internal">SQL</a>
<a href="https://otus.ru/journal/tag/team-lead/" class="tag-cloud-link tag-link-364 tag-link-position-24" style="font-size: 9.9444444444444pt;" aria-label="team lead (18 элементов)" data-wpel-link="internal">team lead</a>
<a href="https://otus.ru/journal/tag/unity/" class="tag-cloud-link tag-link-24 tag-link-position-25" style="font-size: 8pt;" aria-label="unity (11 элементов)" data-wpel-link="internal">unity</a>
<a href="https://otus.ru/journal/tag/algoritmy/" class="tag-cloud-link tag-link-30 tag-link-position-26" style="font-size: 9.9444444444444pt;" aria-label="Алгоритмы (18 элементов)" data-wpel-link="internal">Алгоритмы</a>
<a href="https://otus.ru/journal/tag/bazy-dannyh/" class="tag-cloud-link tag-link-40 tag-link-position-27" style="font-size: 10.138888888889pt;" aria-label="Базы данных (19 элементов)" data-wpel-link="internal">Базы данных</a>
<a href="https://otus.ru/journal/tag/matematika/" class="tag-cloud-link tag-link-44 tag-link-position-28" style="font-size: 10.916666666667pt;" aria-label="Математика (23 элемента)" data-wpel-link="internal">Математика</a>
<a href="https://otus.ru/journal/tag/arhitektura-po/" class="tag-cloud-link tag-link-10 tag-link-position-29" style="font-size: 9.4583333333333pt;" aria-label="архитектура ПО (16 элементов)" data-wpel-link="internal">архитектура ПО</a>
<a href="https://otus.ru/journal/tag/bazy-dannyh-2/" class="tag-cloud-link tag-link-251 tag-link-position-30" style="font-size: 10.138888888889pt;" aria-label="базы данных (19 элементов)" data-wpel-link="internal">базы данных</a>
<a href="https://otus.ru/journal/tag/vebinar/" class="tag-cloud-link tag-link-201 tag-link-position-31" style="font-size: 13.930555555556pt;" aria-label="вебинар (48 элементов)" data-wpel-link="internal">вебинар</a>
<a href="https://otus.ru/journal/tag/dajdzhest/" class="tag-cloud-link tag-link-308 tag-link-position-32" style="font-size: 10.722222222222pt;" aria-label="дайджест (22 элемента)" data-wpel-link="internal">дайджест</a>
<a href="https://otus.ru/journal/tag/zapis-vebinara/" class="tag-cloud-link tag-link-226 tag-link-position-33" style="font-size: 14.902777777778pt;" aria-label="запись вебинара (61 элемент)" data-wpel-link="internal">запись вебинара</a>
<a href="https://otus.ru/journal/tag/zapis-uroka/" class="tag-cloud-link tag-link-272 tag-link-position-34" style="font-size: 16.069444444444pt;" aria-label="запись урока (80 элементов)" data-wpel-link="internal">запись урока</a>
<a href="https://otus.ru/journal/tag/informacionnaya-bezopasnost/" class="tag-cloud-link tag-link-232 tag-link-position-35" style="font-size: 10.138888888889pt;" aria-label="информационная безопасность (19 элементов)" data-wpel-link="internal">информационная безопасность</a>
<a href="https://otus.ru/journal/tag/karera-v-it/" class="tag-cloud-link tag-link-292 tag-link-position-36" style="font-size: 9.9444444444444pt;" aria-label="карьера в IT (18 элементов)" data-wpel-link="internal">карьера в IT</a>
<a href="https://otus.ru/journal/tag/podborka/" class="tag-cloud-link tag-link-7 tag-link-position-37" style="font-size: 12.666666666667pt;" aria-label="подборка (35 элементов)" data-wpel-link="internal">подборка</a>
<a href="https://otus.ru/journal/tag/podborka-statej/" class="tag-cloud-link tag-link-219 tag-link-position-38" style="font-size: 15.777777777778pt;" aria-label="подборка статей (75 элементов)" data-wpel-link="internal">подборка статей</a>
<a href="https://otus.ru/journal/tag/programmirovanie/" class="tag-cloud-link tag-link-65 tag-link-position-39" style="font-size: 22pt;" aria-label="программирование (332 элемента)" data-wpel-link="internal">программирование</a>
<a href="https://otus.ru/journal/tag/proekt/" class="tag-cloud-link tag-link-321 tag-link-position-40" style="font-size: 11.888888888889pt;" aria-label="проект (29 элементов)" data-wpel-link="internal">проект</a>
<a href="https://otus.ru/journal/tag/proektnaya-rabota/" class="tag-cloud-link tag-link-310 tag-link-position-41" style="font-size: 11.597222222222pt;" aria-label="проектная работа (27 элементов)" data-wpel-link="internal">проектная работа</a>
<a href="https://otus.ru/journal/tag/seti/" class="tag-cloud-link tag-link-181 tag-link-position-42" style="font-size: 12.958333333333pt;" aria-label="сети (38 элементов)" data-wpel-link="internal">сети</a>
<a href="https://otus.ru/journal/tag/testirovanie/" class="tag-cloud-link tag-link-69 tag-link-position-43" style="font-size: 13.930555555556pt;" aria-label="тестирование (48 элементов)" data-wpel-link="internal">тестирование</a>
<a href="https://otus.ru/journal/tag/upravlenie-komandoj/" class="tag-cloud-link tag-link-63 tag-link-position-44" style="font-size: 11.694444444444pt;" aria-label="управление командой (28 элементов)" data-wpel-link="internal">управление командой</a>
<a href="https://otus.ru/journal/tag/habr-2/" class="tag-cloud-link tag-link-203 tag-link-position-45" style="font-size: 13.930555555556pt;" aria-label="хабр (48 элементов)" data-wpel-link="internal">хабр</a></div>
</li>
</ul>
</div>
</aside>
</div> <!-- .ts-row -->
</div> <!-- .main -->
<footer class="main-footer dark bold">
<section class="lower-footer cf">
<div class="wrap">
<div class="links">
<div class="menu-menju-navykov-container"><ul id="menu-menju-navykov-1" class="menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10413"><a href="https://otus.ru/categories/programming/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Программирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10414"><a href="https://otus.ru/categories/architecture/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Архитектура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10415"><a href="https://otus.ru/categories/operations/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Инфраструктура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10416"><a href="https://otus.ru/categories/information-security-courses/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Безопасность<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10417"><a href="https://otus.ru/categories/data-science/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Data Science<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10418"><a href="https://otus.ru/categories/gamedev/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">GameDev<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10419"><a href="https://otus.ru/categories/marketing-business/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Управление<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10420"><a href="https://otus.ru/categories/analytics/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Аналитика и анализ<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10421"><a href="https://otus.ru/categories/testing/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Тестирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </div>
<p class="copyright"> © 2015-2026 OTUS </p>
<div class="to-top">
<a href="#" class="back-to-top"><i class="fa fa-angle-up"></i> Top</a>
</div>
</div>
</section>
</footer>
</div> <!-- .main-wrap -->
<div class="mobile-menu-container off-canvas" id="mobile-menu">
<a href="#" class="close"><i class="fa fa-times"></i></a>
<div class="logo">
</div>
<ul class="mobile-menu"></ul>
</div>
<div class="search-modal-wrap">
<div class="search-modal-box" role="dialog" aria-modal="true">
<form method="get" class="search-form" action="https://otus.ru/journal/">
<input type="search" class="search-field" name="s" placeholder="Search..." value="" required />
<button type="submit" class="search-submit visuallyhidden">Submit</button>
<p class="message">
Type above and press <em>Enter</em> to search. Press <em>Esc</em> to cancel. </p>
</form>
</div>
</div>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/clearfy/components/comments-plus/assets/js/url-span.js" id="wbcr-comments-plus-url-span-js"></script>
<script type="text/javascript" id="ez-toc-scroll-scriptjs-js-extra">
/* <![CDATA[ */
var eztoc_smooth_local = {"scroll_offset":"30"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/js/smooth_scroll.min.js" id="ez-toc-scroll-scriptjs-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/vendor/js-cookie/js.cookie.min.js" id="ez-toc-js-cookie-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/vendor/sticky-kit/jquery.sticky-kit.min.js" id="ez-toc-jquery-sticky-kit-js"></script>
<script type="text/javascript" id="ez-toc-js-js-extra">
/* <![CDATA[ */
var ezTOC = {"smooth_scroll":"1","visibility_hide_by_default":"","scroll_offset":"30","fallbackIcon":"<span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span>"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/js/front.min.js" id="ez-toc-js-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/custom-script.js" id="custom-script-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/magnific-popup.js" id="magnific-popup-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jquery.fitvids.js" id="jquery-fitvids-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/imagesloaded.min.js" id="imagesloaded-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/object-fit-images.js" id="object-fit-images-js"></script>
<script type="text/javascript" id="contentberg-theme-js-extra">
/* <![CDATA[ */
var Bunyad = {"custom_ajax_url":"\/journal\/python-i-sintaksicheskie-oshibki\/"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/theme.js" id="contentberg-theme-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/theia-sticky-sidebar.js" id="theia-sticky-sidebar-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jquery.slick.js" id="jquery-slick-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jarallax.js" id="jarallax-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/masonry.min.js" id="masonry-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery.masonry.min.js" id="jquery-masonry-js"></script>
</body>
</html>
<!-- Cache served by breeze CACHE - Last modified: Tue, 10 Mar 2026 15:09:48 GMT -->