Условная инструкция (оператор) if-elif-else (её также называют оператором ветвления) — основной инструмент выбора в Python. Она выбирает, какое действие следует выполнить, в зависимости от значения переменных в момент проверки условия.
IF
Обязательная часть инструкции, должна предшествовать другим частям. Эта часть проверяет выражение справа от себя на истинность. Например:
if a:
print(u'a — истина')
Мини программа «Сколько тебе лет?». Листинг:
print("*" * 5, "Добро пожаловать!", "*" * 5)
age = int(input("Сколько тебе лет? "))
if age < 18:
print("Извини, тебе нельзя использовать эту программу!")
print("Когда тебе исполнится 18, будем рады тебя видеть!")
input() # пока пользователь не нажмет не выходить из программы
# int необходим т.к. пользователь вводит числовые данные
В данном примере пользователь вводит свой возраст. Далее программа сравнивает возраст (age) c 18. Если возраст меньше 18, то выводим сообщение о том, что использовать эту программу нельзя.
Операторы сравнения в Python:
- < - Меньше
- > - Больше
- <= - Меньше или равно
- >= - Больше или равно
- == - Равно
- != - Не равно
Условные операторы могут сравнивать не только числа, но и строки, например audi < bmw, поскольку audi находится по алфавиту раньше, чем bmw.
elif
Необязательная часть инструкции. Должна следовать за if, либо другой elif. Позволяет указать альтернативное условие, которое требуется проверить.
else
Необязательная заключительная часть инструкции. Должна следовать за if, либо elif.
Позволяет указать ветвь исполнения, которая должна быть активирована, если не подошли условия, указанные в предшествующих if и elif. Например:
if x < 0:
print(u'Отрицательное число')
elif x == 0:
print(u'Нуль')
elif x == 1:
print(u'Единица')
else:
print(u'Другое положительное число')
Отредактируем нашу мини программу "Сколько тебе лет?". Если пользователю есть 18, тогда откроем ему доступ с помощью else. Листинг:
print("*" * 5, "Добро пожаловать!", "*" * 5)
age = int(input("Сколько тебе лет? "))
if age < 18:
print("Извини, тебе нельзя использовать эту программу!")
print("Когда тебе исполнится 18, будем рады тебя видеть!")
else:
print("Доступ открыт!")
input()
Отступы в Python очень важный элемент. Отступ превращает код в блок. Блок - это одна или несколько идущих подряд строк с одинаковым отступом. Блок - единая конструкция.
На языке программирования php код выглядел бы так:
На языке программирования php код выглядел бы так:
$age = 16;
if ($age < 18) {
echo "Извини, тебе нельзя использовать эту программу!";
echo "Когда тебе исполнится 18, будем рады тебя видеть!";
}
else {
echo "Доступ открыт!";
}
В других языках программирования в скобках какие-либо отступы соблюдать не нужно, операторы разделяются точкой с запятой, а написать можно хоть в одну строчку (главное чтобы они были в фигурных скобках).
В Python нужно обязательно следить за отступами.
Общая форма оператора if выглядит так:
В Python нужно обязательно следить за отступами.
Общая форма оператора if выглядит так:
if условие:
блок_который_будет_выполнен_если_условие_истинно
else:
блок_который_будет_выполнен_если_условие_ложно
Несколько условий
Совместим все вышесказанное в одну программу:
a = int(input("Какую оценку ты получил по математике?"))
if a == 5:
print("Молодец!")
elif a == 4:
print("Хорошо!")
elif a == 3:
print("Нужно лучше стараться!")
elif a <= 2:
print("Неудачник!")
else:
print("Такой оценки не существует!")
print("Удачи!")
input("Нажмите Enter для выхода")
В данном коде мы спрашиваем пользователя про его оценку по математике и отвечаем ему, исходя из ответа.
else можно использовать, не смотря на наличие elif. Главное, чтобы else шла последней. Блок после else будет выполнен, только если не сработали другие условия и не были выполнены другие блоки кода.
Проверка истинности
- Любое число, не равное 0, или непустой объект - истина;
- Числа, равные 0, пустые объекты и значение None - ложь;
- Операции сравнения применяются к структурам данных рекурсивно;
- Операции сравнения возвращают True или False;
- Логические операторы and и or возвращают истинный или ложный объект-операнд.
Логические операторы:
X and Y
Истина, если оба значения X и Y истинны.
X or Y
Истина, если хотя бы одно из значений X или Y истинно.
not X
Истина, если X ложно.
Программа "Тесты"
Напишем простую программу с использованием оператора IF. Листинг:
a = 0 # Оценка
# Выводим сообщение пользователю
print("""
Сколько бит в одном байте
1) 8
2) 6
3) 4
4) 2
""")
# Просим дать ответ
b = int(input("Ваш ответ: "))
# Если ответ равен одному, тогда к переменной a прибавить 1
if b == 1:
a = a + 1
print("""
Сколько байт в одном килобайте
1) 1000
2) 1024
3) 1048
4) 256
""")
b = int(input("Ваш ответ: "))
if b == 2:
a = a + 1
print("""
Компания-разработчик Windows
1) Apple
2) Melkosoft
3) Cybersoft
4) Microsoft
""")
b = int(input("Ваш ответ: "))
if b == 4:
a = a + 1
print("""
Компания-разработчик MacOS
1) Apple
2) Microsoft
3) Fredd
4) google
""")
b = int(input("Ваш ответ: "))
if b == 1:
a = a + 1
print("""
Символом какой операционной системы является пингвин
1) Linux
2) FreeBSD
3) MacOS
4) Windows
""")
b = int(input("Ваш ответ: "))
if b == 1:
a = a + 1
# Вывести ответ пользователю из переменной a (максимальное значение 5)
print("Ваша оценка: ", a)
input("Нажмите Enter для выхода")
В программе отсутствует обработка исключение и поэтому если ввести не цифру, а строку, тогда будет ошибка и программа прекратит свою работу.
Вывод программы будет такой:
Вывод программы будет такой:
В комментариях напишите улучшенный вариант данной программы.
Видео по уроку:
Видео по уроку: