Сложное ветвление и составные условия
До текущего момента все условия были атомарными. Но мы можем делать составные условия с помощью различных логических операций.
|
Операция |
Синтаксис |
Описание |
Пример |
|
|
Отрицание |
not *условие 1* |
Меняет истинность условия |
not(x%3==0) |
Истинно, если x не кратен трем |
|
Конъюнкция (и) |
*условие 1* and *условие 2* |
Истина, когда оба условия истинны |
(x1>0) and (x2>0) |
Истинно, если и x1, и x2 положительны |
|
Дизъюнкция (или) |
*условие 1* or *условие 2* |
Истина, когда хотя бы одно условие истинно |
(x1>0) or (x2>0) |
Истинно, если хотя бы одно из двух чисел положительно |
|
Исключающее или |
*условие 1* != *условие 2* |
Истина, когда истинность условий не совпадает |
(x1%2==0)!=(x2%2==0) |
Истинно, когда одно число четно, а другое нечетно |
|
Эквивалентность |
*условие 1* == *условие 2* |
Истина, когда истинность условий совпадает |
(x1%2==0)==(x2%2==0) |
Истинно, когда оба числа четны, либо оба числа нечетны (четность чисел совпадает) |
|
Импликация |
*условие 1* <= *условие 2* |
Ложно, когда первое условие истинно, а второе ложно (условие если-то) |
(x1>0)<=(x2>0) |
Ложно, когда первое число положительно, а второе не положительно. В остальных случая истина |
Также стоит отметить, что помимо основного блока if и необязательного блока else, существует еще блок elif.
if *первое условие*:
*действия, которые будут выполняться, если условие истинно*
elif *второе условие*:
*действия, которые будут выполняться, если первое условие не выполнено, но выполнено второе*
elif *третье условие*:
*действия, которые будут выполняться, если ни первое условие, ни второе условие не выполнены, но выполнено третье*
else:
*действия, которые будут выполняться, если ни одно условие не истинно*
Условий может быть любое количество, и также блок else не является обязательным.
Решим следующую задачу. Необходимо вывести в текстовом виде информацию о двух введенных числах, оба четны, четно только одно или же оба нечетны.
#Вводим числа x и y
x=int(input())
y=int(input())
if (x%2==0) and (y%2==0):
#если x и y четны, то выводим информацию об этом
print("Оба введенных числа четны")
elif (x%2==0) or (y%2==0):
#если ложно то, что четны оба, но истина, что четно хотя бы одно
print("Четно только одно число")
else:
#если ложно и то, что оба четны, и то, что четно хотя бы одно
print("Оба числа нечетны")