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 -> Python 3:</p>
15
<p>Для начала работы достаточно выбрать в меню пункт New -> 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>