Определить результат работы кода
На степике есть задача: https://stepik.org/lesson/23899/step/1?adaptive=true&unit=6425
Не могу понять, почему именно такой ответ:
true
false
false
true
t or f
false
true
f or t
Можно в онлайн режиме увидеть последовательность выполнения? Или ознакомиться на какой ветке, почему именно такие значения печатаются?
Ответы (1 шт):
Автор решения: BlueScreen
→ Ссылка
def t():
print('true')
return True
def f():
print('false')
return False
if t() and f():
print('t and f')
if f() and t():
print('f and t')
if t() or f():
print('t or f')
if f() or t():
print('f or t')
Вот код.
if t() and f():
print('t and f')
Вот на этом шаге выводится true false. Но так как f = false, то внутренность if не выполняеьтся. Аналогично:
if f() and t():
print('f and t')
Но здесь выведется только False. Т.к компилятор не будет проверять второе условие and если первое ложно
А вот в этих блоках
if t() or f():
print('t or f')
if f() or t():
print('f or t')
выполняется и функции и "внутренности", это выводит:
true
t or f - в 1-ом блоке
false
true
f or t - во втором
По той - же причине. Зачем проверять второе условие or, если первое истина