Страницы

Поиск по вопросам

суббота, 22 сентября 2018 г.

Условия в Python. Инструкция if-elif-else, проверка истинности, трехместное выражение if/else

Условная инструкция if-elif-else (её ещё иногда называют оператором ветвления) - основной инструмент выбора в Python. Проще говоря, она выбирает, какое действие следует выполнить, в зависимости от значения переменных в момент проверки условия.

Синтаксис инструкции if

Сначала записывается часть if с условным выражением, далее могут следовать одна или более необязательных частей elif, и, наконец, необязательная часть else. Общая форма записи условной инструкции if выглядит следующим образом:
if test1:
    state1
elif test2:
    state2
else:
    state3
Простой пример (напечатает 'true', так как 1 - истина):
>>> if 1:
...     print('true')
... else:
...     print('false')
...
true
Чуть более сложный пример (его результат будет зависеть от того, что ввёл пользователь):
a = int(input())
if a < -5:
    print('Low')
elif -5 <= a <= 5:
    print('Mid')
else:
    print('High')
Конструкция с несколькими elif может также служить отличной заменой конструкции switch - case в других языках программирования.

Проверка истинности в Python

  • Любое число, не равное 0, или непустой объект - истина.
  • Числа, равные 0, пустые объекты и значение None - ложь
  • Операции сравнения применяются к структурам данных рекурсивно
  • Операции сравнения возвращают True или False
  • Логические операторы and и or возвращают истинный или ложный объект-операнд
Логические операторы:
X and Y
Истина, если оба значения X и Y истинны.
X or Y
Истина, если хотя бы одно из значений X или Y истинно.
not X
Истина, если X ложно.

Трехместное выражение if/else

Следующая инструкция:
if X:
    A = Y
else:
    A = Z
довольно короткая, но, тем не менее, занимает целых 4 строки. Специально для таких случаев и было придумано выражение if/else:
A = Y if X else Z
В данной инструкции интерпретатор выполнит выражение Y, если X истинно, в противном случае выполнится выражение Z.
>>>
>>> A = 't' if 'spam' else 'f'
>>> A
't'

Комментариев нет:

Отправить комментарий