Ветвление

Ветвления это способ изменить поведение программы в завивимости от каких-либо условий. Например, если пользователь ввёл логин и пароль, мы можем пустить его дальше, иначе мы просим ввести его данные заново:

login = input("Логин: ")
password = input("Пароль: ")

if len(login) > 6 and len(password) > 8:
    print("Приветствуем!")
else:
    print("Введите данные полностью")

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

Здесь есть сразу несколько новых вещей, во первых это len, во вторых это главное за чем мы здесь собрались - конструкция ветвления.

len(s)

Возвращает длину переданной строки:

word = "Condition"
word_length = len(word)

print(word_length)

Условный оператор

Условный оператор позволяет выполнить какое-либо действие если выполняется условие. В результате проверки порождается особый тип данных bool булевый. Данный тип способен принимать всего 2 значения - истина и ложь.

>>> 20 > 15
True
>>> 20 < 15
False

Оператор if проверяет условие и если оно истинно, выполняет действие:

price = 32.5
cash = 50

if cash > price:
    print("Вам хватит денег для покупки")

Блок else выполняется в том случае, если результат проверки оказался ложным:

your_age = int(input("Введите ваш возраст: "))
required_age = 18

if your_age < required_age:
    print("Вы слишком юны для вождения автомобиля")
else:
    print("Вы можете водить автомобиль")

Блок elif выполняется если предыдущая проверка не увенчалась успехом, но есть ещё другие варианты проверок. В данной программе предлагается ввести имеющееся у вас количество денег чтобы узнать что стоит покупать:

cash = int(input("Введите имеющееся количество денег: "))
if cash > 100:
    print("Купить шоколадку")
elif cash > 50:
    print("Купить чипсы")
else:
    print("Не брать ничего")

Здесь программа просит вас ввести ваш возраст возраст и говорит, можно ли вам водить автомобиль. Когда введёте число, будет произведена проверка - если ваш возраст меньше 18, результат будет истина и тогда выполнится код, написанный внутри блока if. Если же вы ввели число 18 или больше, то в результате проверки получится ложь и тогда выполнится код внутри блока else.

Объединение проверок

Если мы с вами хотим проверить несколько вещей и на их основе выполнить действие, то нам придётся использовать 2 ключевых слова: and и or. Они позволяют объединить результаты нескольких проверок вместе. Например, если пользователь вводит или свою почту или номер телефона, он будет получать уведомления с новостями:

email = input("Введите электронную почту: ")
phone = input("Введите номер телефона:")

if len(email) > 8 or len(phone) > 10:
    print("Мы уведомим вас о наших обновлениях")
else:
    print("Мы не сможем уведомить вас, поскольку не знаем ваших данных")

Логическое «И» (конъюнкция, логическое умножение)

A

B

A and B

0

0

0

0

1

0

1

0

0

1

1

1

Логическое «ИЛИ» (дизъюнкция, логическое сложение)

A

B

A or B

0

0

0

0

1

1

1

0

1

1

1

1

Логическое «НЕ» (инверсия, отрицание)

A

not A

0

1

1

0

Задачи

  1. Получить от пользователя число и сообщить является оно положительным, отрицательным или нулём.

  2. Фирма набирает сотрудников и ей нужны молодые кадры со стажем. Возраст от 20 лет, стаж от трёх. Приложение запрашивает у пользователя его возраст и стаж и говорит, подходит ли тот под требования фирмы.

  3. Написать программу, которая будет запрашивать у пользователя 6 раз направление движения и передвигать черепашку в указанном направлении. Должны поддерживаться команды “вверх”, “вниз”, “влево”, “вправо”. Для реализации движения в заданных направлениях предлагается создать соответствующие функции. Для установки нужного угла использовать функцию seth(angle).

  4. Пользователь вводит номер месяца, приложение сообщает, какое это время года. Весна (3,4,5), лето (6,7,8), осень (9,10,11) зима (12,1,2)).

    Пример:

    Номер месяца: 6
    Лето
    
    Номер месяца: 12
    Зима
    
    Номер месяца: 13
    Такого месяца нет