В основе любой программы лежат условия. В зависимости от того, выполняются они или не выполняются, программа может пойти по одному или другому пути. Она проверяет какое‑то значение и выполняет соответствующую часть кода.
beer = input('Введите Yes, если есть конфеты, и No, если конфет нет: ')
if beer.lower() == 'yes': result = 'текст'
else: result = 'текст'
print(result)
На английском if значит «если», а else — «иначе». В строчке после if идет условие, которое мы проверяем. Если оно верно, выполняется первый блок кода. Если неверно, то тот, что после else:.
Блоки кода в Python отделаются отступами. Отступ на самом деле может быть любым, например некоторые предпочитают использовать вместо четырех пробелов клавишу Tab. Главное — не смешивать в одной программе отступы разного типа. Если начал использовать четыре пробела, то используй во всей программе, а то Python будет выдавать ошибку.
Еще один важный момент здесь — это знак равенства в условии. Он пишется как двойное «равно» (==) и этим отличается от присвоения — одинарного «равно».
Функция lower(), прежде чем сравнивать условие, делает все буквы в строке маленькими, потому что пользователь может ввести слово YES с горящим Caps Lock, и это надо предусмотреть заранее.
Давайте попробуем сделать условие для проверки логина и пароля, используя оператор И, который пишется как and. Он нужен для того, чтобы проверить одновременно выполнение первого и второго условия.
myname = input('Введите логин: ')
mypass = input('Введите пароль: ')
if myname == 'name' and mypass == 'password123': result = 'Добро пожаловать, name!'
else: result = 'Введен неверный пароль или логин'
print(result)
Оператор в Python — это символ, который выполняет операцию над одной или несколькими переменными или значениями: арифметические («плюс», «минус», «равно» и так далее), сравнения (двойное «равно», «больше», «меньше» и прочее), присваивания (равно и несколько других), логические операторы (and, or, not), операторы членства (in, not in). Еще есть побитовые операторы для сравнения двоичных чисел.
Давайте создадим еще более сложное условие, использовав оператор or, который переводится как ИЛИ.
myname = input('Введите логин: ')
mypass = input('Введите пароль: ')
if(myname == 'ivan' and mypass == 'password123') or (myname == 'anton' and mypass == 'password123'): result = 'Добро пожаловать!'
else: result = 'Введен неверный пароль или логин'
print(result)
Здесь используются скобки — Python не требует скобок для простых условий, но для сложных они применяются, чтобы явно определить порядок действий. Программа приветствует только двух пользователей, ivan или anton. То есть сначала проверяется, не совпали ли логин и пароль с логином и паролем Ивана, а потом после оператора or проверяется то же для Антона.
Когда нужно проверить не одно, а сразу два или три условия, можно заключить каждое из них в скобки, а между ними ставить операторы or или and. В случае or общее условие выполняется, если выполняется хотя бы одно из входящих в него условий. В случае с and, чтобы общее условие выполнилось, должны выполниться оба входящих в него условия.
Цикл — это блок команд, который повторяется определенное количество раз. Циклы можно задавать разными способами. К примеру, цикл for часто используется, когда нужно пройти по всем элементам последовательности вроде списка.
lst = [15,50,60,97,78]
for x in lst:
x = x + 1
print(x)
Здесь изначально имеется список чисел, а далее с помощью конструкции for x in lst проходим по очереди каждый элемент этого списка и совершаем с ним какие‑то действия. Эти действия, как и в случае с условиями, отделяются отступом.
Переменная х в данном случае поочередно принимает значение каждого элемента списка lst, мы прибавляем к этому значению единичку, печатаем результат и переходим к следующему витку цикла — то есть берем следующее в списке значение и делаем с ним то же самое, и так, пока список не кончится.
Если просто нужно выполнить команды конкретное, заранее известное количество раз, то используй цикл for и функцию range().
num = 0
for i in range(5):
num=num + 1
print('у меня ' + str(num) + ' конфет')
Теперь пора узнать о разновидности цикла while. Слово while переводится с английского как «пока». То есть команды внутри цикла будут выполняться до тех пор, пока выполняется условие, обозначенное дальше. Например, вот цикл, который напечатает все четные числа от 1 до 100.
a = 0
while a < 100:
a = a + 1
if (a % 2) == 0:
print(a)
Как мы проверили, что число четное? В этом нам помог оператор %, который возвращает остаток от деления. Если при делении пополам получается ноль, значит, число четное!
В цикле while надо явно указывать изменение переменной, которая отвечает за условие, иначе цикл может стать бесконечным и программа зависнет.