HTML Diff
1 added 1 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>Python - это язык программирования №1 в мире анализа данных. Именно на нем, помимо SQL, работает типичный аналитик данных.</p>
1 <p>Python - это язык программирования №1 в мире анализа данных. Именно на нем, помимо SQL, работает типичный аналитик данных.</p>
2 <p>Помимо этого, Python очень популярен и во всем мире в целом. Согласно опросу Stack Overflow от 2022 года Python входит в пятерку самых популярных языков программирования.</p>
2 <p>Помимо этого, Python очень популярен и во всем мире в целом. Согласно опросу Stack Overflow от 2022 года Python входит в пятерку самых популярных языков программирования.</p>
3 <p>Согласно PYPL Index, он вообще стоит на первом месте:</p>
3 <p>Согласно PYPL Index, он вообще стоит на первом месте:</p>
4 <p>Сегодня мы разберем основы Python и освоим базовые навыки работы с ним, чтобы вы могли решать свои первые задачи на Python.</p>
4 <p>Сегодня мы разберем основы Python и освоим базовые навыки работы с ним, чтобы вы могли решать свои первые задачи на Python.</p>
5 <h2>Как писать код на Python</h2>
5 <h2>Как писать код на Python</h2>
6 <p>Существует несколько способов работы с Python:</p>
6 <p>Существует несколько способов работы с Python:</p>
7 <ul><li>Скачать дистрибутив<a>Anaconda</a>, чтобы использовать его со средой разработки<a>PyCharm</a>или блокнотом<a>Jupyter Notebook</a></li>
7 <ul><li>Скачать дистрибутив<a>Anaconda</a>, чтобы использовать его со средой разработки<a>PyCharm</a>или блокнотом<a>Jupyter Notebook</a></li>
8 <li>Скачать последнюю версию<a>официальной среды IDLE Python</a></li>
8 <li>Скачать последнюю версию<a>официальной среды IDLE Python</a></li>
9 <li>Скачать и установить программу<a>Visual Studio Code</a></li>
9 <li>Скачать и установить программу<a>Visual Studio Code</a></li>
10 <li>Зарегистрироваться на сайте<a>Kaggle</a>или<a>Google Collab</a></li>
10 <li>Зарегистрироваться на сайте<a>Kaggle</a>или<a>Google Collab</a></li>
11 </ul><p>Конечно, есть еще множество альтернативных сайтов, где вы также можете упражняться в базовых задачах по Python, однако они менее популярны. Также код на Python можно писать через виртуальное окружение папки, но эта тема подождет до более продвинутых уроков.</p>
11 </ul><p>Конечно, есть еще множество альтернативных сайтов, где вы также можете упражняться в базовых задачах по Python, однако они менее популярны. Также код на Python можно писать через виртуальное окружение папки, но эта тема подождет до более продвинутых уроков.</p>
12 <p>Среди всех способов мы выберем самый простой и подходящий для новичков - это дистрибутив Anaconda вместе с интерактивным блокнотом Jupyter Notebook.</p>
12 <p>Среди всех способов мы выберем самый простой и подходящий для новичков - это дистрибутив Anaconda вместе с интерактивным блокнотом Jupyter Notebook.</p>
13 <p>Сам процесс установки достаточно простой. Скачав дистрибутив, вы увидите меню Anaconda Navigator и выберете Jupyter Notebook:</p>
13 <p>Сам процесс установки достаточно простой. Скачав дистрибутив, вы увидите меню Anaconda Navigator и выберете Jupyter Notebook:</p>
14 <p>Сам Jupyter Notebook выглядит так:</p>
14 <p>Сам Jupyter Notebook выглядит так:</p>
15 <p>Для начала работы достаточно выбрать в меню пункт New -&gt; Python 3:</p>
15 <p>Для начала работы достаточно выбрать в меню пункт New -&gt; Python 3:</p>
16 <h2>Ввод и вывод данных</h2>
16 <h2>Ввод и вывод данных</h2>
17 <p>Для начала разберемся с ключевыми терминами.</p>
17 <p>Для начала разберемся с ключевыми терминами.</p>
18 <p><strong>Вывод данных</strong>- это отображение текста и чисел в окне программы. Например, если мы хотим написать фразу “Hello, world”, нам потребуется функция print():</p>
18 <p><strong>Вывод данных</strong>- это отображение текста и чисел в окне программы. Например, если мы хотим написать фразу “Hello, world”, нам потребуется функция print():</p>
19 <p><strong>Ввод данных</strong>- это ситуация, при которой любой пользователь может запустить программу и вручную ввести некие данные. Например, чтобы создать поле для ввода имени, воспользуемся функцией input():</p>
19 <p><strong>Ввод данных</strong>- это ситуация, при которой любой пользователь может запустить программу и вручную ввести некие данные. Например, чтобы создать поле для ввода имени, воспользуемся функцией input():</p>
20 <p>Если ввести внутри скобок в кавычках любое сообщение, можно создать подсказку для пользователя. Так он сможет наверняка понять, что именно нужно ввести.</p>
20 <p>Если ввести внутри скобок в кавычках любое сообщение, можно создать подсказку для пользователя. Так он сможет наверняка понять, что именно нужно ввести.</p>
21 <p>В примере выше обратите внимание на name. Это наша первая<strong>переменная</strong>- ячейка, куда мы сохраняем имя пользователя. В целом<strong>переменные</strong>- это именованные области памяти, в которых во время выполнения программы хранятся данные определенного типа. Переименование переменной или удаление ее названия не удаляет информацию из занимаемой ею ячейки памяти.</p>
21 <p>В примере выше обратите внимание на name. Это наша первая<strong>переменная</strong>- ячейка, куда мы сохраняем имя пользователя. В целом<strong>переменные</strong>- это именованные области памяти, в которых во время выполнения программы хранятся данные определенного типа. Переименование переменной или удаление ее названия не удаляет информацию из занимаемой ею ячейки памяти.</p>
22 <p>Есть два одобренных стиля, в которых называются переменные в Python:</p>
22 <p>Есть два одобренных стиля, в которых называются переменные в Python:</p>
23 <ul><li><strong>CamelCase</strong>- каждое новое слово в составном названии переменной начинается с заглавной буквы</li>
23 <ul><li><strong>CamelCase</strong>- каждое новое слово в составном названии переменной начинается с заглавной буквы</li>
24 <li><strong>Underscore_notation</strong>- все слова в составных названиях разделяются нижним подчеркиванием</li>
24 <li><strong>Underscore_notation</strong>- все слова в составных названиях разделяются нижним подчеркиванием</li>
25 </ul><p>Название переменной в Python должно начинаться с алфавитного символа или со знака подчеркивания. При этом оно может содержать алфавитно-цифровые символы и знак подчеркивания.</p>
25 </ul><p>Название переменной в Python должно начинаться с алфавитного символа или со знака подчеркивания. При этом оно может содержать алфавитно-цифровые символы и знак подчеркивания.</p>
26 <p>Кроме того, название переменной не должно совпадать с названием ключевых слов языка Python. Их нельзя использовать потому, что они уже зарезервированы для системных названий в среде Python. Ключевых слов не так много, их легко запомнить:</p>
26 <p>Кроме того, название переменной не должно совпадать с названием ключевых слов языка Python. Их нельзя использовать потому, что они уже зарезервированы для системных названий в среде Python. Ключевых слов не так много, их легко запомнить:</p>
27 <p>Вернемся к вводу и выводу и попробуем применить новые знания на практике. Напишем программу, которая запрашивает имя пользователя и выводит приветствие:</p>
27 <p>Вернемся к вводу и выводу и попробуем применить новые знания на практике. Напишем программу, которая запрашивает имя пользователя и выводит приветствие:</p>
28 <p>Как видите, мы можем добавить строку внутри print() и вывести вместе с ней содержимое переменной name, в которой хранится введенное имя.</p>
28 <p>Как видите, мы можем добавить строку внутри print() и вывести вместе с ней содержимое переменной name, в которой хранится введенное имя.</p>
29 <p>Чтобы сделать вывод более информативным, можно использовать<strong>f-строки</strong>:</p>
29 <p>Чтобы сделать вывод более информативным, можно использовать<strong>f-строки</strong>:</p>
30 <p>Кроме того, внутри print() можно поместить разные операции, арифметические и не только:</p>
30 <p>Кроме того, внутри print() можно поместить разные операции, арифметические и не только:</p>
31 <p>Также можно ввести сразу несколько значений в отдельные переменные, а затем вывести их все сразу на экран:</p>
31 <p>Также можно ввести сразу несколько значений в отдельные переменные, а затем вывести их все сразу на экран:</p>
32 <p>Обратите внимание, что у последнего ввода появилась обертка int (сокращение от<em>integer</em>- целое число). Это прямое указание типа данных. В этом случае мы решили явно указать тип данных, потому что по умолчанию Python воспринимает любой ввод как тип данных<em>string</em>(строка).</p>
32 <p>Обратите внимание, что у последнего ввода появилась обертка int (сокращение от<em>integer</em>- целое число). Это прямое указание типа данных. В этом случае мы решили явно указать тип данных, потому что по умолчанию Python воспринимает любой ввод как тип данных<em>string</em>(строка).</p>
33 <h2>Типы данных</h2>
33 <h2>Типы данных</h2>
34 <p>Обсудим основные виды данных в Python и посмотрим на примеры:</p>
34 <p>Обсудим основные виды данных в Python и посмотрим на примеры:</p>
35 <p>Последние три типа вы вряд ли будете использовать в ближайшем будущем, а вот на остальные полезно обратить пристальное внимание.</p>
35 <p>Последние три типа вы вряд ли будете использовать в ближайшем будущем, а вот на остальные полезно обратить пристальное внимание.</p>
36 <p>Чтобы узнать тип данных, нужно воспользоваться встроенной функцией type():</p>
36 <p>Чтобы узнать тип данных, нужно воспользоваться встроенной функцией type():</p>
37 <p>Чтобы задать тип данных, можно прописать его напрямую и обернуть в него переменную. Например, вот так:</p>
37 <p>Чтобы задать тип данных, можно прописать его напрямую и обернуть в него переменную. Например, вот так:</p>
38 <ul><li>int(age)</li>
38 <ul><li>int(age)</li>
39 <li>float(input())</li>
39 <li>float(input())</li>
40 </ul><p>Среди прочего, тип данных влияет на доступные методы для работы с переменной.</p>
40 </ul><p>Среди прочего, тип данных влияет на доступные методы для работы с переменной.</p>
41 <p>Например, если переменная содержит текстовые данные, мы можем использовать с ней такие методы:</p>
41 <p>Например, если переменная содержит текстовые данные, мы можем использовать с ней такие методы:</p>
42 <ul><li>Конкатенация - print('Python'+'is'+'cool!').</li>
42 <ul><li>Конкатенация - print('Python'+'is'+'cool!').</li>
43 <li>Репликация - print('Повтори' * 5).</li>
43 <li>Репликация - print('Повтори' * 5).</li>
44 <li>Перевод строки в верхний регистр - upper().</li>
44 <li>Перевод строки в верхний регистр - upper().</li>
45 <li>Проверка, состоит ли строка только из алфавитных символов - isalpha().</li>
45 <li>Проверка, состоит ли строка только из алфавитных символов - isalpha().</li>
46 <li>Проверка, состоит ли строка только из символов в нижнем регистре - islower().</li>
46 <li>Проверка, состоит ли строка только из символов в нижнем регистре - islower().</li>
47 <li>Удаление начальных и конечных пробелов из строки - strip().</li>
47 <li>Удаление начальных и конечных пробелов из строки - strip().</li>
48 <li>Замена одной подстроки на другую - replace(old, new[, num]).</li>
48 <li>Замена одной подстроки на другую - replace(old, new[, num]).</li>
49 <li>Объединение нескольких строк в одну строку с разделителем - join(strs).</li>
49 <li>Объединение нескольких строк в одну строку с разделителем - join(strs).</li>
50 </ul><p>В случае численных данных, арсенал доступных методов уже другой:</p>
50 </ul><p>В случае численных данных, арсенал доступных методов уже другой:</p>
51 <ul><li>Арифметические действия - int_1+int_2.</li>
51 <ul><li>Арифметические действия - int_1+int_2.</li>
52 <li>Округление с плавающей точкой - round (number, 3), где 3 обозначает количество знаков после запятой.</li>
52 <li>Округление с плавающей точкой - round (number, 3), где 3 обозначает количество знаков после запятой.</li>
53 <li>Получение модуля - abs(v).</li>
53 <li>Получение модуля - abs(v).</li>
54 <li>Конвертация типов чисел - int(5.5).</li>
54 <li>Конвертация типов чисел - int(5.5).</li>
55 <li>Генерация случайных чисел - random.randrange(1, 1000).</li>
55 <li>Генерация случайных чисел - random.randrange(1, 1000).</li>
56 </ul><h2>Условные операторы</h2>
56 </ul><h2>Условные операторы</h2>
57 <p>Условный оператор - это ключевое слово, которое открывает блок кода с ручным фильтром для ваших данных. Другими словами, это инструмент выбора строк из всех данных, что вы обрабатываете.</p>
57 <p>Условный оператор - это ключевое слово, которое открывает блок кода с ручным фильтром для ваших данных. Другими словами, это инструмент выбора строк из всех данных, что вы обрабатываете.</p>
58 <p>Бывают такие условные операторы:</p>
58 <p>Бывают такие условные операторы:</p>
59 <ul><li>Операторы ветвления (if, elif, else).</li>
59 <ul><li>Операторы ветвления (if, elif, else).</li>
60 <li>Операторы цикла (while, break, continue, for).</li>
60 <li>Операторы цикла (while, break, continue, for).</li>
61 </ul><p>Команда if - это аналог слова "если". Она содержит в себе логическое условие с двумя исходами:</p>
61 </ul><p>Команда if - это аналог слова "если". Она содержит в себе логическое условие с двумя исходами:</p>
62 <ul><li>Если условие истинно (равно True), то блок кода внутри команды if выполнится.</li>
62 <ul><li>Если условие истинно (равно True), то блок кода внутри команды if выполнится.</li>
63 <li>Если условие ложно (равно False), то блок кода внутри команды if пропускается, а выполнение кода переходит на .следующую строчку кода</li>
63 <li>Если условие ложно (равно False), то блок кода внутри команды if пропускается, а выполнение кода переходит на .следующую строчку кода</li>
64 </ul><p>В коде это выглядит так:</p>
64 </ul><p>В коде это выглядит так:</p>
65 <p>Кроме if, есть еще две необязательные команды:</p>
65 <p>Кроме if, есть еще две необязательные команды:</p>
66 <ul><li>else - аналог слова "иначе". Блок кода внутри нее выполняется, если условие в команде if ложно. При этом в каждой конструкции с if может быть только одна команда else</li>
66 <ul><li>else - аналог слова "иначе". Блок кода внутри нее выполняется, если условие в команде if ложно. При этом в каждой конструкции с if может быть только одна команда else</li>
67 <li>elif - аналог фразы "иначе если". Она позволяет проверить истинность нескольких выражений и выполнить нужный блок кода в зависимости от результата проверки. У одной конструкции с if может быть любое количество команд elif</li>
67 <li>elif - аналог фразы "иначе если". Она позволяет проверить истинность нескольких выражений и выполнить нужный блок кода в зависимости от результата проверки. У одной конструкции с if может быть любое количество команд elif</li>
68 </ul><p>Чтобы закрепить эти знания, изучите пример кода с этими конструкциями:</p>
68 </ul><p>Чтобы закрепить эти знания, изучите пример кода с этими конструкциями:</p>
69 <p>Условные конструкции отрабатывают один раз. А если мы захотим проверить все элементы списка на соответствие заданному условию? Тогда придется проходить один и тот же фрагмент кода множество раз. В таком случае нужны не условные операторы, а циклы.</p>
69 <p>Условные конструкции отрабатывают один раз. А если мы захотим проверить все элементы списка на соответствие заданному условию? Тогда придется проходить один и тот же фрагмент кода множество раз. В таком случае нужны не условные операторы, а циклы.</p>
70 <h2>Циклы</h2>
70 <h2>Циклы</h2>
71 <p>Обычно команды выполняются одна за другой, не возвращаясь на несколько строк выше снова и снова.</p>
71 <p>Обычно команды выполняются одна за другой, не возвращаясь на несколько строк выше снова и снова.</p>
72 <p>Но можно сделать и по-другому с помощью<strong>циклов</strong>- это набор команд, которые выполняются по очереди с первой до последней. Затем цикл проверяет условие для следующего обрабатываемого значения. Если оно выполняется, цикл начинается снова.</p>
72 <p>Но можно сделать и по-другому с помощью<strong>циклов</strong>- это набор команд, которые выполняются по очереди с первой до последней. Затем цикл проверяет условие для следующего обрабатываемого значения. Если оно выполняется, цикл начинается снова.</p>
73 <p>В Python есть два типа цикличных выражений. Первый - это аналог слова "пока":</p>
73 <p>В Python есть два типа цикличных выражений. Первый - это аналог слова "пока":</p>
74 <p>Второй тип - это аналог слова "для":</p>
74 <p>Второй тип - это аналог слова "для":</p>
75 <p>Разберемся подробнее, в чем разница между ними:</p>
75 <p>Разберемся подробнее, в чем разница между ними:</p>
76 <ul><li>Цикл while можно использовать для выполнения одной и той же задачи несколько раз. Чтобы код с while работал, нужно добавлять к нему счетчик, который постепенно уменьшается. Иначе программа уйдет в бесконечный цикл</li>
76 <ul><li>Цикл while можно использовать для выполнения одной и той же задачи несколько раз. Чтобы код с while работал, нужно добавлять к нему счетчик, который постепенно уменьшается. Иначе программа уйдет в бесконечный цикл</li>
77 <li>Циклы for можно использовать один раз для работы над данными списка. В этом случае перебор значений в списке будет идти по умолчанию:<ul><li>Несколько раз задача запускается с помощью циклов while</li>
77 <li>Циклы for можно использовать один раз для работы над данными списка. В этом случае перебор значений в списке будет идти по умолчанию:<ul><li>Несколько раз задача запускается с помощью циклов while</li>
78 - <li>С помощью циклов for выполняется циклический перебор данных списка</li>
78 + <li>С помощью циклов for выполняется цикличекий перебор данных списка</li>
79 </ul></li>
79 </ul></li>
80 </ul><p>Инструкция while в Python повторяет указанный блок кода до тех пор, пока указанное в цикле условие будет оставаться истинным. Когда условие становится ложным, интерпретатор переводит выполнение программы на строку, следующую за циклом.</p>
80 </ul><p>Инструкция while в Python повторяет указанный блок кода до тех пор, пока указанное в цикле условие будет оставаться истинным. Когда условие становится ложным, интерпретатор переводит выполнение программы на строку, следующую за циклом.</p>
81 <p>С примером использования цикла while можно ознакомиться ниже:</p>
81 <p>С примером использования цикла while можно ознакомиться ниже:</p>
82 <p>Цикл for проходится по любому итерируемому объекту - например, строке или списку. Во время каждого прохода выполняет тело цикла.</p>
82 <p>Цикл for проходится по любому итерируемому объекту - например, строке или списку. Во время каждого прохода выполняет тело цикла.</p>
83 <p>Предположим, что мы идем в магазин со списком продуктов, которые нужно купить. Выразим эту задачу на языке Python:</p>
83 <p>Предположим, что мы идем в магазин со списком продуктов, которые нужно купить. Выразим эту задачу на языке Python:</p>
84 <p>Циклы бывают громоздкими. Чтобы их переиспользовать, имеет смысл заворачивать их в функции.</p>
84 <p>Циклы бывают громоздкими. Чтобы их переиспользовать, имеет смысл заворачивать их в функции.</p>
85 <h2>Функции</h2>
85 <h2>Функции</h2>
86 <p><strong>Функция</strong>- это набор инструкций, объединенных для выполнения одной задачи. Блоки кода, однажды оформленные в виде функций, можно использовать в коде многократно. Для этого они и нужны: для решения повторяющейся задачи с помощью одного слова - имени функции.</p>
86 <p><strong>Функция</strong>- это набор инструкций, объединенных для выполнения одной задачи. Блоки кода, однажды оформленные в виде функций, можно использовать в коде многократно. Для этого они и нужны: для решения повторяющейся задачи с помощью одного слова - имени функции.</p>
87 <p>Синтаксис функции можно увидеть на картинке ниже:</p>
87 <p>Синтаксис функции можно увидеть на картинке ниже:</p>
88 <p>Существуют некоторые правила для создания функций в Python:</p>
88 <p>Существуют некоторые правила для создания функций в Python:</p>
89 <ul><li>Блок функции начинается с ключевого слова def, после которого следуют название функции и круглые скобки ()</li>
89 <ul><li>Блок функции начинается с ключевого слова def, после которого следуют название функции и круглые скобки ()</li>
90 <li>Любые аргументы, которые принимает функция, должны находиться внутри этих скобок</li>
90 <li>Любые аргументы, которые принимает функция, должны находиться внутри этих скобок</li>
91 <li>После скобок идет двоеточие :</li>
91 <li>После скобок идет двоеточие :</li>
92 <li>Затем с новой строки с отступом начинается тело функции</li>
92 <li>Затем с новой строки с отступом начинается тело функции</li>
93 </ul><p>После создания функции ее можно исполнять, вызывая из другой функции или напрямую из оболочки Python. Для вызова функции следует ввести ее имя и добавить скобки.</p>
93 </ul><p>После создания функции ее можно исполнять, вызывая из другой функции или напрямую из оболочки Python. Для вызова функции следует ввести ее имя и добавить скобки.</p>
94 <p>Выражение return прекращает выполнение функции и возвращает указанное после выражения значение. Выражение return без аргументов - это то же самое, что и выражение return None.</p>
94 <p>Выражение return прекращает выполнение функции и возвращает указанное после выражения значение. Выражение return без аргументов - это то же самое, что и выражение return None.</p>
95 <p>Напишем нашу первую функцию. Ее цель - выводить сумму слагаемых a и b:</p>
95 <p>Напишем нашу первую функцию. Ее цель - выводить сумму слагаемых a и b:</p>
96 <p>Пока мы рассмотрели функции только на базовом уровне, но их можно и усложнять в зависимости от стоящих перед вами задач.</p>
96 <p>Пока мы рассмотрели функции только на базовом уровне, но их можно и усложнять в зависимости от стоящих перед вами задач.</p>
97 <h2>Первая задача</h2>
97 <h2>Первая задача</h2>
98 <p>Наших знаний уже достаточно, чтобы решать самые простые задачи с помощью Python.</p>
98 <p>Наших знаний уже достаточно, чтобы решать самые простые задачи с помощью Python.</p>
99 <p>Представим, что нам нужно написать программу. Она должна получать от пользователя два вещественные числа:</p>
99 <p>Представим, что нам нужно написать программу. Она должна получать от пользователя два вещественные числа:</p>
100 <ul><li>a - длина прямоугольника</li>
100 <ul><li>a - длина прямоугольника</li>
101 <li>b - ширина прямоугольника</li>
101 <li>b - ширина прямоугольника</li>
102 </ul><p>Затем программа выводит периметр и площадь заданного прямоугольника в следующем формате:</p>
102 </ul><p>Затем программа выводит периметр и площадь заданного прямоугольника в следующем формате:</p>
103 <p>Звучит сложно, но мы уже можем написать такую программу:</p>
103 <p>Звучит сложно, но мы уже можем написать такую программу:</p>
104 <h2>Выводы</h2>
104 <h2>Выводы</h2>
105 <p>В этом уроке мы освоили основы программирования на языке Python, без которых двигаться дальше будет затруднительно. Выполнив примеры из урока, вы сможете освоить самые базовые возможности Python и с их помощью писать базовые программы.</p>
105 <p>В этом уроке мы освоили основы программирования на языке Python, без которых двигаться дальше будет затруднительно. Выполнив примеры из урока, вы сможете освоить самые базовые возможности Python и с их помощью писать базовые программы.</p>