Основы Python на пальцах

Рассказываю основы Python на пальцах. Этот урок дополняет видео на Youtube - я еще раз подробно разбираю код. Смотрите видео и набирайте код, он представлен в статье с подробными комментариями.

Об алгоритмах в жизни

Алгоритм - это последовательность действий, ориентированная на решение определенной задачи. При этом термин «алгоритм» употребляется очень часто и в быту, и в рамках профессиональной деятельности теми, кто с программированием никак не связан. Это - житейский термин. Например, вы хотите поехать в торговый центр. Чтобы это сделать, вы вырабатываете алгоритм у себя в голове и следуете ему:

✅ если на улице дождь, то я возьму зонт, в противном случае поеду без зонта;

✅ если я хочу поехать на личном автомобиле, то нужно взять ключи и документы, дойти до автомобиля, завести его и поехать;

✅ если нужно обогнать грузовик и на встречной полосе едет машина, то откажусь от маневра;

✅ чтобы найти вещь в большом шкафу, перебираем все вещи, сравниваем глазами каждую вещь с искомой, при совпадении (нашли нужное) шкаф закрываем.

Вышеперечисленное - это алгоритмы , т.е. последовательность неких действий, сделанных не просто так, а для какой-то определенной цели.

Об алгоритмах в программировании

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

✅ Как и в быту в написании программ работает условная логика: если условие выполняется, то делаем одно, если нет - другое;

✅ Как и в обычной жизни мы делаем что-то несколько раз, если условие выполнилось - выходим из программы/последовательности действий;

✅ На работе мы записываем задачи в список дел, в Python храним данные в списках (lists);

✅ В электронном словаре мы получаем перевод английского слова на русский. А в Python мы получаем значение по ключу из словаря (dict) ,специальной структуры, которая хранит данные в формате "ключ-значение".

Светофор

Представим себе ситуацию, мы на перекрестке в автомобиле. Каковы наши действия в зависимости от сигнала светофора?

🚀 Если красный, то мы остановимся;

🚀 Если желтый, то мы готовимся, скоро загорится зеленый свет;

🚀 Если зеленый - жмем на газ.

Эту логику можно трансформировать в код на Python:

light = "красный"
if light == "красный": # оператор == сравнивает левую и правую часть
    print("Стоп")
if light == "зеленый": # если условие равенства истинно, то печатаем Поехали
    print("Поехали")
else:
    print("Стоп или приготовиться")    
if light == "желтый":
    print("Приготовиться")

Что мы видим в этом коде:

✅ В начале скрипта мы создаем переменную light и инициализируем ее значением "красный", это - строка;

✅ Оператор условия задается инструкцией if ;

✅ После if идет логическое выражение light == красный ;

✅ Если логическое выражение после if будет истинным, то Python выполнит инструкции вложенного кодового блока. Вложенность кодового блока в Python задается отступами - смотрим, видим отступы - значит код вложен в другой;

if a == b:
    print("Это вложенный блок 1 для a==b")
    print("Опять сложенный блок 1 для a==b")
    if c == d:
        print("Более вложенный для c == d")
else:
    print("Вложенный в else блок 1")
    print("Вложенный в else блок 2")

✅ Функция print печатает строку в командной строке, вы увидите ее внизу в редакторе кода.

Командная строка (или терминал, консоль) - это, грубо говоря, современный аналог древней операционной системы MS DOS, но внутри отдельного окна в Windows или MacOS. Это довольно приблизительная аналогия, но для понимания она вполне подойдет.

✅ Терминал - это не анахронизм, а очень часто используемый инструмент в программировании. Почему? Да потому что терминал универсален - он в неизменном виде присутствует во всех операционных системах. Таким образом, однажды написав программу (а Python запускается на Windows/Linux/macOs), работающую в терминале, мы можем запустить ее без изменений где угодно.

Составное условие в логическом выражении

В предыдущем разделе мы программировали простые условия. Сейчас рассмотрим более сложные.

Постановка задачи:

✅ есть бюджет и предпочтения - хотим купить рамный внедорожник не более чем за 7 млн рублей;

✅ если такой автомобиль есть, выполняем два очевидных действия - едем в салон и покупаем.

budget = 7000000
car_price = 5850000
offered_car_type = "внедорожник"
if car_price < budget and offered_car_type == "внедорожник":
    print("Едем в автосалон")
    print("Покупаем")
else:
    print("Отказываемся")

В коде тоже самое:

✅ Объявляем несколько переменных: budget, car_price и offered_car_type. Инициализировав их начальными значениями, мы создаем эти переменные;

✅ Записываем оператор условия, все как в жизни: если цена меньше бюджета и нам предлагают внедорожник (а мы же такую машину хотим), то покупаем;

✅ Единственно отличие кода от повседневной логики - код записывается по-английски с определенным строгим оформлением. Но, тем не менее, код на Python очень близок к английскому тексту.

Пассажиры в аэропорту

Знакомая для многих ситуация - очередь. Например, на посадку в аэропорту. Как работает логика сотрудника, приглашающего пассажиров на борт?

✅ Для каждого пассажира в очереди определяем: если он/она в списке пассажиров бизнес-класса, то приглашаем пройти первым😎 ;

✅ В противном случае - просим подождать и пройти самостоятельно в менее премиальную часть самолета😉.

all_passengers = ["Иван", "Мария", "Александр", "Сергей"]
business_class = ["Мария", "Сергей"]
for p in all_passengers:
    if p in business_class:
        print("Sit in business class")
    else:
        print("Goto econom class")

В коде мы пишем почти тоже самое, только по английски:

✅ Создаем два списка: all_passengers и business_class. Содержимое списка записывается в квадратных скобках;

✅ Записываем цикл for для каждого пассажира в списке и внутри тела цикла запускаем оператор условия;

✅ В условии используется оператор in , который вернет True (истину), если элемент будет в списке;

✅ Как мы знаем, оператор if выполнит иструкцию print("Sit in business class") если условие после if истинно.

Видео

Я продублировал видео с Youtube на VK, чтобы вы могли смотреть с компьютера без проблем:

Выводы

Python, как и любой язык программирования - это все лишь надстройка над повседневной логикой , которую вы сотню раз встречали в жизни. Логика, реализованная на языке программирования, записывается в соответствии со строгими правилами этого языка.

Что дальше?

Попробуйте самостоятельно запустить код, который я писал в рамках этого урока. Для этого вам нужен редактор кода - он обсуждается в рамках следующего урока.