Python — это язык программирования №1 в мире анализа данных. Именно на нем, помимо SQL, работает типичный аналитик данных.
Помимо этого, Python очень популярен и во всем мире в целом. Согласно опросу Stack Overflow от 2022 года Python входит в пятерку самых популярных языков программирования.
Согласно PYPL Index, он вообще стоит на первом месте:
Сегодня мы разберем основы Python и освоим базовые навыки работы с ним, чтобы вы могли решать свои первые задачи на Python.
Как писать код на Python
В зависимости от того, готовы ли отдать немного места на своем компьютере программе для работы с Python, существует 2 основных варианта для приобретения навыков программирования на Python:
Существует несколько способов работы с Python:
-
Скачать дистрибутив Anaconda, чтобы использовать его со средой разработки PyCharm или блокнотом Jupyter Notebook
-
Скачать последнюю версию официальной среды IDLE Python
-
Скачать и установить программу Visual Studio Code
-
Зарегистрироваться на сайте Kaggle или Google Collab
Конечно, есть еще множество альтернативных сайтов, где вы также можете упражняться в базовых задачах по Python, однако они менее популярны. Также код на Python можно писать через виртуальное окружение папки, но эта тема подождет до более продвинутых уроков.
Среди всех способов мы выберем самый простой и подходящий для новичков — это дистрибутив Anaconda вместе с интерактивным блокнотом Jupyter Notebook.
Сам процесс установки достаточно простой. Скачав дистрибутив, вы увидите меню Anaconda Navigator и выберете Jupyter Notebook:
Сам Jupyter Notebook выглядит так:
Для начала работы достаточно выбрать в меню пункт New → Python 3:
Ввод и вывод данных
Для начала разберемся с ключевыми терминами.
Вывод данных — это отображение текста и чисел в окне программы. Например, если мы хотим написать фразу “Hello, world”, нам потребуется функция print()
:
Ввод данных — это ситуация, при которой любой пользователь может запустить программу и вручную ввести некие данные. Например, чтобы создать поле для ввода имени, воспользуемся функцией input()
:
Если ввести внутри скобок в кавычках любое сообщение, можно создать подсказку для пользователя. Так он сможет наверняка понять, что именно нужно ввести.
В примере выше обратите внимание на name
. Это наша первая переменная — ячейка, куда мы сохраняем имя пользователя. В целом переменные — это именованные области памяти, в которых во время выполнения программы хранятся данные определенного типа. Переименование переменной или удаление ее названия не удаляет информацию из занимаемой ею ячейки памяти.
Есть два одобренных стиля, в которых называются переменные в Python:
-
CamelCase — каждое новое слово в составном названии переменной начинается с заглавной буквы
-
Underscore_notation — все слова в составных названиях разделяются нижним подчеркиванием
Название переменной в Python должно начинаться с алфавитного символа или со знака подчеркивания. При этом оно может содержать алфавитно-цифровые символы и знак подчеркивания.
Кроме того, название переменной не должно совпадать с названием ключевых слов языка Python. Их нельзя использовать потому, что они уже зарезервированы для системных названий в среде Python. Ключевых слов не так много, их легко запомнить:
False |
await |
else |
import |
pass |
None |
break |
except |
in |
raise |
True |
class |
finally |
is |
return |
and |
continue |
for |
lambda |
try |
as |
def |
from |
nonlocal |
while |
assert |
del |
global |
not |
with |
async |
elif |
if |
or |
yield |
Вернемся к вводу и выводу и попробуем применить новые знания на практике. Напишем программу, которая запрашивает имя пользователя и выводит приветствие:
Как видите, мы можем добавить строку внутри print()
и вывести вместе с ней содержимое переменной name
, в которой хранится введенное имя.
Чтобы сделать вывод более информативным, можно использовать f-строки:
print(f'Имя: {name}, Фамилия: {surname}, Возраст: {age}')
Кроме того, внутри print()
можно поместить разные операции, арифметические и не только:
print(5 + 5) # => 10
Также можно ввести сразу несколько значений в отдельные переменные, а затем вывести их все сразу на экран:
name, surname, age = input(), input(), int(input())
print(name, surname, age)
Вася
Петечкин
32
# => Вася Петечкин 32
Обратите внимание, что у последнего ввода появилась обертка int
(сокращение от integer — целое число). Это прямое указание типа данных. В этом случае мы решили явно указать тип данных, потому что по умолчанию Python воспринимает любой ввод как тип данных string (строка).
Типы данных
Обсудим основные виды данных в Python и посмотрим на примеры:
Название |
Обозначение |
Пример |
Неопределенное значение переменной |
|
|
Логические переменные |
|
|
Целое число |
|
|
Число с плавающей точкой |
|
|
Комплексное число |
|
|
Список |
|
|
Кортеж |
|
|
Диапазон |
|
|
Строка |
|
|
Множество |
|
|
Неизменяемое множество |
|
|
Словарь |
|
|
Байты |
|
|
Массивы байт |
|
|
Объекты для доступа к внутренним данным |
|
|
Последние три типа вы вряд ли будете использовать в ближайшем будущем, а вот на остальные полезно обратить пристальное внимание.
Чтобы узнать тип данных, нужно воспользоваться встроенной функцией type()
:
a = 3.5
type(a) # float
Чтобы задать тип данных, можно прописать его напрямую и обернуть в него переменную. Например, вот так:
-
int(age)
-
float(input())
Среди прочего, тип данных влияет на доступные методы для работы с переменной.
Например, если переменная содержит текстовые данные, мы можем использовать с ней такие методы:
-
Конкатенация —
print('Python''is''cool!')
-
Репликация —
print('Повтори' * 5)
-
Перевод строки в верхний регистр —
upper()
-
Проверка, состоит ли строка только из алфавитных символов —
isalpha()
-
Проверка, состоит ли строка только из символов в нижнем регистре —
islower()
-
Удаление начальных и конечных пробелов из строки —
strip()
-
Замена одной подстроки на другую —
replace(old, new[, num])
-
Объединение нескольких строк в одну строку с разделителем —
join(strs)
В случае численных данных, арсенал доступных методов уже другой:
-
Арифметические действия —
int_1+int_2
-
Округление с плавающей точкой —
round (number, 3)
, где3
обозначает количество знаков после запятой -
Получение модуля —
abs(v)
-
Конвертация типов чисел —
int(5.5)
-
Генерация случайных чисел —
random.randrange(1, 1000)
Условные операторы
Условный оператор – это ключевое слово, которое открывает блок кода с ручным фильтром для ваших данных. Другими словами, это инструмент выбора строк из всех данных, что вы обрабатываете.
Бывают такие условные операторы:
-
Операторы ветвления (
if
,elif
,else
) -
Операторы цикла (
while
,break
,continue
,for
)
Команда if
— это аналог слова «если». Она содержит в себе логическое условие с двумя исходами:
-
Если условие истинно (равно
True
), то блок кода внутри командыif
выполнится -
Если условие ложно (равно
False
), то блок кода внутри командыif
пропускается, а выполнение кода переходит на следующую строчку кода
В коде это выглядит так:
# Если число больше нуля, печатаем сообщение с этой информацией
# Если число не больше нуля, то пропускаем содержимое блока if
# Переходим к следующей команде
number = 1
if number > 0:
print('Число больше нуля')
print('Идем дальше')
# => Число больше нуля
# => Идем дальше
Кроме if
, есть еще две необязательные команды:
-
else
— аналог слова «иначе». Блок кода внутри нее выполняется, если условие в командеif
ложно. При этом в каждой конструкции сif
может быть только одна командаelse
-
elif
— аналог фразы «иначе если». Она позволяет проверить истинность нескольких выражений и выполнить нужный блок кода в зависимости от результата проверки. У одной конструкции сif
может быть любое количество командelif
Чтобы закрепить эти знания, изучите пример кода с этими конструкциями:
if number > 0:
print('Число больше 0')
elif number == 0:
print('Число равно 0')
else:
print('Число меньше 0')
Условные конструкции отрабатывают один раз. А если мы захотим проверить все элементы списка на соответствие заданному условию? Тогда придется проходить один и тот же фрагмент кода множество раз. В таком случае нужны не условные операторы, а циклы.
Циклы
Обычно команды выполняются одна за другой, не возвращаясь на несколько строк выше снова и снова.
Но можно сделать и по-другому с помощью циклов — это набор команд, которые выполняются по очереди с первой до последней. Затем цикл проверяет условие для следующего обрабатываемого значения. Если оно выполняется, цикл начинается снова.
В Python есть два типа цикличных выражений. Первый — это аналог слова «пока»:
while <condition>:
<action>
Второй тип — это аналог слова «для»:
for <item> in <sequence>:
<action>
Разберемся подробнее, в чем разница между ними:
-
Цикл
while
можно использовать для выполнения одной и той же задачи несколько раз. Чтобы код сwhile
работал, нужно добавлять к нему счетчик, который постепенно уменьшается. Иначе программа уйдет в бесконечный цикл -
Циклы
for
можно использовать один раз для работы над данными списка. В этом случае перебор значений в списке будет идти по умолчанию:-
Несколько раз задача запускается с помощью циклов
while
-
С помощью циклов
for
выполняется циклический перебор данных списка
-
Инструкция while
в Python повторяет указанный блок кода до тех пор, пока указанное в цикле условие будет оставаться истинным. Когда условие становится ложным, интерпретатор переводит выполнение программы на строку, следующую за циклом.
С примером использования цикла while
можно ознакомиться ниже:
apples = 5
# Запускаем цикл
while apples > 0:
# Работаем внутри цикла, печатаем сообщение
print('We have ', apples, ' apples')
# Уменьшаем счетчик на 1
apples -= 1
# Вышли из цикла
print('We have no apples any more!')
Цикл for
проходится по любому итерируемому объекту — например, строке или списку. Во время каждого прохода выполняет тело цикла.
Предположим, что мы идем в магазин со списком продуктов, которые нужно купить. Выразим эту задачу на языке Python:
# Перебираем элементы списка
for element in shopping_list:
print(element)
# Результат выполнения:
# => milk
# => bread
# => cucumber
# => butter
Циклы бывают громоздкими. Чтобы их переиспользовать, имеет смысл заворачивать их в функции.
Функции
Функция — это набор инструкций, объединенных для выполнения одной задачи. Блоки кода, однажды оформленные в виде функций, можно использовать в коде многократно. Для этого они и нужны: для решения повторяющейся задачи с помощью одного слова — имени функции.
Синтаксис функции можно увидеть на картинке ниже:
Существуют некоторые правила для создания функций в Python:
-
Блок функции начинается с ключевого слова
def
, после которого следуют название функции и круглые скобки()
-
Любые аргументы, которые принимает функция, должны находиться внутри этих скобок
-
После скобок идет двоеточие
:
-
Затем с новой строки с отступом начинается тело функции
После создания функции ее можно исполнять, вызывая из другой функции или напрямую из оболочки Python. Для вызова функции следует ввести ее имя и добавить скобки.
Выражение return
прекращает выполнение функции и возвращает указанное после выражения значение. Выражение return
без аргументов — это то же самое, что и выражение return None
.
Напишем нашу первую функцию. Ее цель — выводить сумму слагаемых a
и b
:
def calc(a, b):
print(a)
print(b)
return a + b
Пока мы рассмотрели функции только на базовом уровне, но их можно и усложнять в зависимости от стоящих перед вами задач.
Первая задача
Наших знаний уже достаточно, чтобы решать самые простые задачи с помощью Python.
Представим, что нам нужно написать программу. Она должна получать от пользователя два вещественные числа:
-
a
— длина прямоугольника -
b
— ширина прямоугольника
Затем программа выводит периметр и площадь заданного прямоугольника в следующем формате:
Площадь S = 88.0
Периметр P = 38.0
Звучит сложно, но мы уже можем написать такую программу:
a, b = float(input()), float(input())
print('Площадь S =', a * b)
print('Периметр P =', 2 * (a + b))
Выводы
В этом уроке мы освоили основы программирования на языке Python, без которых двигаться дальше будет затруднительно. Выполнив примеры из урока, вы сможете освоить самые базовые возможности Python и с их помощью писать базовые программы.

Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
- Статья «Как учиться и справляться с негативными мыслями»
- Статья «Ловушки обучения»
- Статья «Сложные простые задачи по программированию»
- Урок «Как эффективно учиться на Хекслете»
- Вебинар «Как самостоятельно учиться»