Введение в Python. Часть 3
Условия if, elif, else вместе с логическими операторами
В третьей лекции курса «Python для журналистов» мы поговорим об условиях: if, elif, else. И чтобы у этой лекции была практическая польза, мы попробуем решить с помощью условий простейшую задачу по подсчету налога и чистого дохода человека в зависимости от его налогового статуса. Для этой задачи мы возьмем несколько статусов физлиц:
- индивидуальный предприниматель («ИП1») — платит 15 % налогов со своих доходов за вычетом расходов;
- индивидуальный предприниматель («ИП2») — платит 6 % налогов со всех своих доходов;
- самозанятый («СЗ») — тоже платит 6 % со своих доходов;
- в остальных случаях физлица платят 13 % со своих доходов; их мы в задаче называем «ФЛ».
Наша задача будет в том, чтобы, используя условия if, elif, else, посчитать, сколько каждый из налоговых агентов заплатит налогов и какой будет чистый доход. Но прежде чем перейти к ее решению, рассм отрим функцию input, которая позволяет считывать данные от пользователя с клавиатуры.
Input
Например, мы хотим, чтобы пользователь мог сам вводить свое имя в нашей программе. Для этого введем переменную name и присвоим ей значение input(): name = input().
В появившемся окне можно ввести любое имя. Чтобы его распечатать, можно использовать функцию print: print(name).
Теперь, чтобы узнать налоговый статус человека, введем еще одну переменную business_type и тоже присвоим ей значение input(). Здесь нужно ввести один из четырех статусов нашей задачи — «ИП1», «ИП2», «СЗ», или «ФЛ».
Теперь введем третью, последнюю, переменную, которую мы будем считывать с клавиатуры — income: income = input().
В ее значение мы введем доход человека. И здесь важно помнить, что те значения, которые мы передаем input(), эта функция переводит в строки (тип str в Python). Для эксперимента попробуйте ввести цифру 100 в input для переменной income. А затем проверьте тип этого объекта: type(income) — будет тип str. Но нам это не подходит: со строками нельзя производить арифметические операции, которые нам необходимы для подсчета налогов и чистого дохода. Чтобы перевести тип income в int (это тип для целых чисел в Python), нам нужно немного изменить операцию присваивания: income = int(input()).
Если проверить теперь тип income с помощью type(income), то мы увидим int, что нам и нужно.
Условие if
If на английском означает «если». Соответственно, наш блок кода будет выполняться, только если будет выполнено какое-то условие. В общем виде синтаксис конструкции if выглядит следующим образом:
if условие:
делай что-то
Для простой практики попробуйте в новой ячейке Jupyter Notebook ввести новую тестовую переменную и присвойте ей какое-то значение: например, x = 10. А в следующей ячейке напишите простейшее условие:
if x == 10:
print(True)
True будет напечатано, потому что имя x действительно ссылается на объект 10.
Теперь давайте применим это знание, чтобы посчитать налоги для первого человека. Напишем такое условие:
if business_type == 'ИП1':
tax = income * 0.15
net_income = income - tax
В этом блоке кода мы говорим: «Если человек зарегистрирован как ИП1, то его налог будет равен 15 % от доходов (income * 0.15), а чистый доход будет равняться общему доходу минус сумма налогов (net_income = income - tax)».
Чтобы проверить наши вычисления, можно их напечатать: print(tax, net_income).