Python – операторы if, содержащие несколько логических условий – как обрабатывается поток? ⇐ Python

Программы на Python
Anonymous
Python – операторы if, содержащие несколько логических условий – как обрабатывается поток?

Сообщение Anonymous »

Мне интересно, как Python обрабатывает операторы «if» с несколькими условиями. Оценивает ли он общее логическое выражение или «оторвется» от выражения с первой ложной оценкой?
Так, например, если у меня есть:

Код: Выделить всё

if (A and B and C):
Do_Something()
Будет ли он оценивать «A, B и C» как True/False (очевидно), а затем применять «if», чтобы либо войти, либо не войти в Do_Something() ?, или он будет оценивать каждый из них последовательно, и если какой-либо из них окажется ложным, он сломается.
Итак, скажем, A — истинно, B — ложно.
Пройдёт: A верно --> продолжайте, B ложно – теперь вырвемся и не будем делать Do_Something()?
Причина, по которой я спрашиваю заключается в том, что в функции, над которой я работаю, я организовал A, B и C как функции увеличения вычислительной нагрузки, и (конечно) было бы пустой тратой времени запускать B и C, если A имеет значение False; и в равной степени C — это A — истинно, а B — ложно). Конечно, я мог бы просто реструктурировать код следующим образом, но я надеялся использовать первое, если это возможно:

Код: Выделить всё

if (A):
if (B):
if (C):
Do_Something()

Конечно, это в равной степени относится и к операторам while.
Любой вклад будет принят с благодарностью.

Подробнее здесь: https://stackoverflow.com/questions/790 ... -flow-hand

Вернуться в «Python»