Во время этой лекции мы рассмотрим, как работает функция «ЕСЛИ» в Экселе (Excel), а также поговорим об операторе ветвления в Питоне (Python). Мы проиллюстрируем эти концепции на примере из игры Транспортный Магнат (Transport Tycoon), также известной как OpenTTD.
Видеозапись лекции:
Автобус или поезд?
Представьте, что у нас есть два растущих города в Транспортном Магнате, которые мы хотим соединить для перевозки пассажиров. Наша цель — выбрать оптимальное транспортное средство в зависимости от количества пассажиров, желающих путешествовать между этими двумя городами. Сначала мы организуем автобусное сообщение между городами. В нашей игре каждый автобус может перевозить максимум 35 пассажиров.
Однако что в случае, если спрос увеличится? Автобусы больше не смогут удовлетворять потребности. Поэтому мы строим железнодорожное сообщение. У поезда 3 вагона, каждый из которых вмещает 40 пассажиров, и суммарно это 120 пассажиров за рейс. Такая схема идеально подходит для среднего количества пассажиров.
Эксель: функция ЕСЛИ
Переведём этот сценарий в Эксель, чтобы решить, какой вид транспорта использовать в зависимости от количества пассажиров. Допустим, у нас есть ячейка A2, в которую мы вводим число пассажиров. Мы хотим, чтобы Эксель выбирал «Автобус», если число пассажиров меньше или равно 35, и «Поезд» во всех остальных случаях.
Формула, которую мы будем использовать:
=ЕСЛИ(A2<=35; "Автобус"; "Поезд")
Эта формула вводится в ячейку, и результат отображается в зависимости от разных входных значений. Простая функция ЕСЛИ проверяет условие A2<=35. Если оно выполняется, возвращается «Автобус», иначе — «Поезд».
Питон: оператор if-else
Ту же логику мы реализуем на Питоне. Вот код:
passazhiry = int(input("Введите количество пассажиров: ")) if passazhiry <= 35: print("Выберите Автобус для поездки.") else: print("Выберите Поезд для поездки.")
Этот скрипт запрашивает количество пассажиров, а затем использует оператор if-else, чтобы принять решение о виде транспорта.
Исходный код также доступен на ГитХабе.
Автобус, поезд или самолёт?
По мере роста городов спрос может превысить вместимость поездов. Поэтому мы добавляем авиасообщение. Самолёты в нашей игре могут перевозить до 300 пассажиров.
Эксель: вложенная функция ЕСЛИ
С добавлением варианта самолёта нам нужно обновить формулу в Экселе, чтобы учесть третий вариант.
Расширенная формула выглядит так:
=ЕСЛИ(A2<=35; "Автобус"; ЕСЛИ(A2<=120; "Поезд"; "Самолёт"))
Как это работает:
- Если значение в ячейке A2 меньше или равно 35, то возвращается «Автобус».
- В противном случае проверяется, меньше или равно 120 значение в ячейке A2. Если да, то возвращается «Поезд».
- Если ни одно из этих условий не выполняется, по умолчанию выбирается «Самолёт».
Питон: оператор if-elif-else
Теперь обновим наш скрипт на Питоне, чтобы учесть вариант с самолётом.
Вот обновлённый код:
passazhiry = int(input("Введите количество пассажиров: ")) if passazhiry <= 35: print("Выберите Автобус для поездки.") elif passazhiry <= 120: print("Выберите Поезд для поездки.") else: print("Выберите Самолёт для поездки.")
Теперь скрипт использует оператор elif (else if) для проверки нескольких условий:
- Если число пассажиров меньше или равно 35, выбрать «Автобус».
- В противном случае, если число пассажиров меньше или равно 120, выбрать «Поезд».
- В остальных случаях выбрать «Самолёт».
Исходный код также доступен на ГитХабе.
Итоги
Мы увидели, как использовать функцию ЕСЛИ в Экселе и операторы ветвления в Питоне для принятия решений на основе данных — в нашем случае это было количество пассажиров. Попробуйте поэкспериментировать с этими концепциями в своих проектах или даже в играх, таких как OpenTTD.
Эта лекция доступна также на других языках.