Начинаем программировать на Python

Рассказываем, зачем учить Python и как это поможет при работе в Data Science. Идём пошагово: от установки дистрибутива до первых практических опытов.


Мария Грегуш

В бэкграунде — программирование, французский язык, академическое рисование, капоэйра. Сейчас учит финский. Любит путешествия и Балтийское море.


Python — высокоуровневый язык программирования, названный так в честь британского комедийного телешоу «Летающий цирк Монти Пайтона».

Зачем учить Python, где и кому он нужен

Почему именно Python? Причин много:

  • благодаря простой структуре и синтаксису это один из лучших языков для начинающих;
  • он быстро развивается;
  • в Python простой и хорошо читаемый синтаксис;
  • высокая востребованность разработчиков Python;
  • язык широко используется в веб-разработке, автоматизации и Data Science.

Data Science, или наука о данных, сочетает в себе математику, статистику, IT и знания о бизнесе. Python фактически стал отраслевым стандартом в Data Science: чаще всего разработка ведётся именно на нём. Специалисты в этой области занимаются анализом данных и работают над их визуализацией. Data Science сейчас быстро развивается, поэтому разработчики нужны компаниям всё чаще.

Особенности Python

Плюсы:

  • минималистичный синтаксис;
  • динамическая типизация (не надо писать тип переменной);
  • большое количество библиотек.

Минусы:

  • низкая скорость в базовом варианте;
  • неточности в работе с числами.

Важная особенность: в Python не указывается тип переменных. Это даёт большую гибкость, потому что в одну переменную можно записать сначала int (целое число), а потом float (число с плавающей точкой) или str (строка, текст), и тип поменяется сам. За эту гибкость, к сожалению, приходится расплачиваться скоростью.

По Python много мануалов как на английском, так и на русском языке. Однако знание английского вам сильно поможет: во-первых, большинство команд переводится с английского буквально (если вы знаете язык, вам не придётся их зубрить), а во-вторых, подсказки к командам и описания ошибок выводятся тоже на английском.

Начало работы в Python

Чтобы начать программировать, нужно скачать и установить дистрибутив. Для новичков хорошо подойдёт Anaconda.

Чем он хорош: в нём есть всё, что понадобится в работе.

В Anaconda уже встроены:

  • все библиотеки машинного обучения и библиотеки для работы с данными (например, NumPy и Pandas);
  • библиотека для визуализации (Matplotlib);
  • надстройка Jupyter, чтобы программировать прямо в браузере.

После того как вы установили и открыли Anaconda, у вас появится вот такое окно:

Кнопкой Launch запустим «тетрадку» Jupyter, которая откроет ваш дефолтный браузер. После этого ваше рабочее пространство будет выглядеть так:

Или так:

По функциональности они абсолютно одинаковые.

Важная особенность: комментарии в Python делаются с помощью решетки, вот так:

#комментарий

Комментарии — это часть кода, которая не будет выполняться. Для чего используется комментирование?

Во-первых, чтобы написать небольшое пояснение (например, к какой-то функции).

Во-вторых, можно закомментировать часть кода, чтобы посмотреть, как остальной код работает без этой части.

Выполнение кода. Для этого используется Shift+Enter, Ctrl+Enter или значок «Пуск».

В чём разница?

Если нажать Shift+Enter, то курсор перескочит на следующую ячейку.

Если нажать Ctrl+Enter — останется в той, где вы работали.

Если ячейка выполнилась, это значит, что выполнились все действия, которые были в ней записаны.

Работа с базовыми функциями

Разберём, как устроены базовые функции в Python.

Чтобы записать в переменную V сумму 1 и 1, мы напишем так:

V = 1+1

Если мы захотим напечатать переменную V, мы используем функцию:

print(V)

Напоминаем, что в Python мы не пишем тип переменных.

При спуске этот код выведет нам 2.

Если вы забыли, что делает функция, или нашли новую, вам поможет команда help (): она выпишет основную информацию о функции. Если мы используем ее на функцию print (), это будет выглядеть так:

В программировании мы будем много работать с числами. Все основные математические операции записываются в Python привычным образом, примерно как в калькуляторе:

A+B	#А плюс В
A-B 	#А минус В
A*B 	#А умножить на В
A/B 	#А разделить на В

Есть и операции поинтереснее, менее очевидные:

A**B	#А в степени В
A//B	#Деление без остатка
A%B	#Остаток при делении

Иногда в Python можно встретить артефакты вроде такого:

11.3 = -0.30000000004.

В конце получившегося числа мы неожиданно видим 4. Это просто особенность компьютерного представления данных, и бояться этого не стоит, в большинстве случаев это не имеет значения. Но не забывайте об этой особенности, если вам важны точные числа (как, например, в астрофизике).

Вывод текста. Уже сложилась традиция, что первые слова, которые человек выписывает кодом, это «Hello, World!». Сделаем это и мы.

Мы уже выводили выше переменную, теперь выведем текст. Сделать это в Python очень просто:

print(“Hello, World!”)

Иногда (например, в цикле) надо выводить одно и то же с небольшим изменением. Для этого используется форматированный вывод. Это делается так: заменим часть, которая будет меняться, фигурными скобками, а за фразой напишем .format (). В скобки вставим переменную с нужным значением. Вот как это выглядит:

name = “Valentin”
print(“Hello, {}!”.format(name))
>>> Hello, Valentin!

В некоторых версиях Python можно сделать то же самое и другим способом:

print(f“Hello, {name}!”)

Результат будет один и тот же. Если у вас работают обе версии, то делайте так, как вам больше нравится.

Как устроены операции сравнения в Python

  1. Операции сравнения будут возвращать ответ в виде правда/неправда: True/False.
  2. Для проверки на равенство используются два знака «равно».
  3. Для проверки на неравенство используется восклицательный знак (знак отрицания) со знаком «равно».

Например:

A = 5
B = 10
A > B
>>>False
A < B
>>>True
A == B
>>>False
A != B
>>>True
A == 5
>>>True

Работа с циклами и условиями

Теперь посмотрим, как в Python устроены условия и циклы, которые позволяют направить вычисления в ту или иную сторону.

Для условий используются классические структуры if — else. Давайте с их помощью проверим число на чётность:

num = 13
if num % 2 == 0:
	print(“Чётное”)
else:
	print(“Нечётное”)

Важная особенность синтаксиса (хорошо видна в примере выше): для создания иерархии в Python используется отступ, а не фигурные скобки, как в некоторых других языках. Сначала это непривычно, но не пугайтесь: вы быстро привыкнете.

Циклы позволяют выполнять какое-то действие больше чем один раз. Виды циклов:

  • while: действие будет выполняться до тех пор, пока выполняется условие;
  • for: действие будет выполнено определённое количество раз.

Посмотрим на примерах, как это работает.

ПРИМЕР 1

i = 10
while i >= 0:
	print(i)
	i = i – 1

Такой код выведет нам последовательность чисел от 10 до 0, а потом остановится.

ПРИМЕР 2

i = 10
while i >= 0:
	if i == 0:
print(“Hurray!”)
	else:
		print(i)
	i = i – 1

Здесь мы получим последовательность от 10 до 1 и напечатанное «Hurray!» в конце.

Перед работой с For-циклом надо узнать, что такое массив.

Массив — это набор информации, который представляется так:

array = [1, 2.4, -4.2, “5”]

В одном массиве можно хранить переменные разных типов. Например, в нашем массиве array хранится один int, два float и один str. Индексы в Python начинаются с нуля, поэтому чтобы получить информацию с первого места (в нашем случае цифру 1), напишем вот так:

array[0]

С элементом массива можно работать как с обычным числом, то есть если написать array[0] +1, мы получим 2.

Напишем простенький цикл:

for v in array:
	print(v)

Он выведет нам все элементы нашего массива и остановится. В каждом витке цикла переменная v получает значение соответствующего элемента.

Как создавать новые функции в Python

Дефолтных функций бывает недостаточно, и часто случается, что один и тот же набор операций надо выполнить много раз, причём с разными переменными. Чтобы сохранить время и избежать огромного кода, который сложно понять, мы можем создавать собственные функции.

Давайте напишем функцию, которая увеличит значение числа, которое мы ей передадим, на единицу:

def increase_by_1(x):
	return x + 1

Команда def (от англ. define — определить) означает, что мы определяем собственную функцию, increase_by_ 1 — это её название, а x — это переменная, с которой она работает.

increase_by_1(11)
>>> 12
increase_by_1(0)
>>>1

Иногда функция уже существует, но её нет в базовой версии Python. Тогда её можно импортировать из библиотеки. Например, чтобы работать с более сложными математическими функциями, чем те, о которых мы говорили, нам понадобится библиотека math. Подключить можно всю библиотеку или только одну-две команды, в зависимости от того, что вам нужно. Для этого используется функция import. Это выглядит так:

import math		#вся библиотека
from math import sin	#только функция синус

Внимание!

Будьте осторожны с названиями функций! Если вы напишете свою функцию, а потом импортируете функцию с таким же названием, вы сможете использовать только импортированную.


Практика: делаем график курса доллара

Приступим к последнему заданию — сделаем в Python график курса доллара с начала 2019 года.

Для начала импортируем библиотеки Numpy (в ней удобно работать с массивами и матрицами), Pandas (работа с CSV-файлами) и Matplotlib (визуализация).

Вы можете дать библиотеке имя, которое будете использовать вместо настоящего названия, — это часто делается для экономии времени.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

На сайте Центрального Банка РФ скачаем CSV-файл с курсом от начала года.

Записываем скачанный файл в переменную money:

money = pd.read_csv(“название файла.csv”, sep = “;”)
#часть sep = “;” нужна, потому что вместо запятых в этом файле использованы знаки «;», у обычного csv это делать не нужно

Теперь если мы выведем money, то увидим таблицу с курсом.

Вот такую:

В России принято отделять десятичную часть запятой, поэтому перед созданием графика мы напишем маленькую функцию, которая заменит запятые точками.

def convert(str_money):
	return float(str_money.replace(“,”, “.”))
money[“curs”] = money[“curs”].apply(convert)

Теперь осталось только показать график командой:

plt.plot(money[“curs”])

Если вы всё сделали правильно, то сейчас вы видите график курса доллара США, у нас получилось вот так:

Заключение

Вы узнали, как создавать условия и циклы, писать новые функции и работать с библиотеками. Это базовые вещи, с которых начинается работа с Python. Если вы хотите глубже погрузиться в тему и научиться уверенно программировать на этом языке, вам поможет наш курс «Профессия Python-разработчик».

Курс

Профессия
Python-разработчик


Научитесь писать программы под руководством личного наставника за 7 месяцев и станьте востребованным разработчиком. Python, как язык общего назначения, применим почти в любой сфере, будь то сайты, приложения, базы данных, игры, системы жизнеобеспечения, научные проекты или даже создание искусственного интеллекта.

Хочешь получать крутые статьи по программированию?
Подпишись на рассылку Skillbox