Что выведет следующий код:
print(3 or 1)
Варианты ответов
1
3
0
True
Выполнение кода завершится ошибкой
False
На консоль будет выведено число 3. Оператор or
возвращает значение первого операнда, если оно равно равно True, иначе возвращается значение второго операнда.
Поскольку в данном случае операнды операции - числа, а не булевые значения, то любое число, которое не равно 0, будет рассматриваться как True.
Что выведет следующий код:
print(0 or -1)
На консоль будет выведено число -1.
Что выведет следующий код:
print(1 and 3)
На консоль будет выведено число 3. Потому что оператор and возвращает значение первого операнда, если оно равно False. Иначе возвращается значение второго операнда.
Что выведет следующий код:
print(0 and 2 and 1)
На консоль будет выведено число 0. Потому что выражение 0 and 2
возвращает 0, соответственно ((0 and 2) and 1)
тоже возвращает 0.
Что выведет следующий код:
print(0 and 2 or 1)
На консоль будет выведено число 1. Потому что выражение 0 and 2
возвращает 0, соответственно ((0 and 2) or 1)
возвращает 1.
Что выведет следующий код:
print(0 and 2 or 1 or 4)
На консоль будет выведено число 1. Потому что выражение 0 and 2
возвращает 0, далее ((0 and 2) or 1)
возвращает 1 и (((0 and 2) or 1) or 4)
возвращает 1
Что выведет следующий код:
print(0 or False and 1)
На консоль будет выведено False. Потому что выражение 0 or False
возвращает второй операнд - False, соответственно ((0 or False) and 1)
тоже
возвращает False
Что выведет следующий код и почему:
print(1 > (0 < 1))
На консоль будет выведено False. Выражение 0 < 1
возвращает True, то есть в итоге мы получаем выражение 1 > True
. В Python класс
bool, а значения True
и False
фактически равны 1 и 0 соответственно. Поэтому выражение 1 > True
можно рассматривать как
выражение 1 > 1
, что естественно возвратить False.
Что выведет следующий код:
print(0 or [])
Варианты ответов
0
[]
False
True
Выполнение кода завершится ошибкой
Так как первое число равно 0, то оно будет трактоваться как False. Поэтому оператор or возвратит второй операнд. И консоль выведет "[]".
Что выведет следующий код:
print([] or 0)
Варианты ответов
0
[]
False
True
Выполнение кода завершится ошибкой
Первый операнд представляет пустой список и соответственно будет трактоваться как False. Поэтому оператор or возвратит второй операнд. И консоль выведет "0".
Что выведет следующий код:
print(bool(" ") + 5)
Варианты ответов
True
False
False5
True5
6
5
Метод bool()
преобразует значение к типу bool
. Если передается значение
False, 0, None, [], {}, то возвращается False. Во всех остальных случаях возвращается True. То есть здесь выражение bool(" ")
возвращает True. А поскольку мы имеем дело с
арифметической операцией True + 5
, то True
будет приводится к числу. Значению True
соответствует 1 (тогда как False соответствует 0),
поэтому в итоге мы получим 1 + 5 = 6
.