Условные выражения

Последнее обновление: 13.01.2023
Вопрос 1

Что выведет следующий код:

print(3 or 1)

Варианты ответов

  • 1

  • 3

  • 0

  • True

  • Выполнение кода завершится ошибкой

  • False

Ответ

На консоль будет выведено число 3. Оператор or возвращает значение первого операнда, если оно равно равно True, иначе возвращается значение второго операнда. Поскольку в данном случае операнды операции - числа, а не булевые значения, то любое число, которое не равно 0, будет рассматриваться как True.

Вопрос 2

Что выведет следующий код:

print(0 or -1)
Ответ

На консоль будет выведено число -1.

Вопрос 3

Что выведет следующий код:

print(1 and 3)
Ответ

На консоль будет выведено число 3. Потому что оператор and возвращает значение первого операнда, если оно равно False. Иначе возвращается значение второго операнда.

Вопрос 4

Что выведет следующий код:

print(0 and 2 and 1)
Ответ

На консоль будет выведено число 0. Потому что выражение 0 and 2 возвращает 0, соответственно ((0 and 2) and 1) тоже возвращает 0.

Вопрос 5

Что выведет следующий код:

print(0 and 2 or 1)
Ответ

На консоль будет выведено число 1. Потому что выражение 0 and 2 возвращает 0, соответственно ((0 and 2) or 1) возвращает 1.

Вопрос 6

Что выведет следующий код:

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

Вопрос 7

Что выведет следующий код:

print(0 or False and 1)
Ответ

На консоль будет выведено False. Потому что выражение 0 or False возвращает второй операнд - False, соответственно ((0 or False) and 1) тоже возвращает False

Вопрос 8

Что выведет следующий код и почему:

print(1 > (0 < 1))
Ответ

На консоль будет выведено False. Выражение 0 < 1 возвращает True, то есть в итоге мы получаем выражение 1 > True. В Python класс bool, а значения True и False фактически равны 1 и 0 соответственно. Поэтому выражение 1 > True можно рассматривать как выражение 1 > 1, что естественно возвратить False.

Вопрос 9

Что выведет следующий код:

print(0 or [])

Варианты ответов

  • 0

  • []

  • False

  • True

  • Выполнение кода завершится ошибкой

Ответ

Так как первое число равно 0, то оно будет трактоваться как False. Поэтому оператор or возвратит второй операнд. И консоль выведет "[]".

Вопрос 10

Что выведет следующий код:

print([] or 0)

Варианты ответов

  • 0

  • []

  • False

  • True

  • Выполнение кода завершится ошибкой

Ответ

Первый операнд представляет пустой список и соответственно будет трактоваться как False. Поэтому оператор or возвратит второй операнд. И консоль выведет "0".

Вопрос 11

Что выведет следующий код:

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.

Дополнительные материалы
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850