Для указанного Lua результаты: 'Some Value', 0, 24, 'Some Value'. В Lua ноль истинен; если подразумевался Python, второе и четвёртое значения будут 24 и 0.
Определение результата присваивания с логическими операторами or и and
Для указанного Lua результаты: 'Some Value', 0, 24, 'Some Value'. В Lua ноль истинен; если подразумевался Python, второе и четвёртое значения будут 24 и 0.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Укажите, какие значения будет принимать переменная t после выполнения каждой из перечисленных ниже строк кода.
x = 'Some Value'
y = 24
z = 0
t = x or y
t = z or y
t = x and y
t = z and x
Ответ
Для указанного Lua результаты: 'Some Value', 0, 24, 'Some Value'. В Lua ноль истинен; если подразумевался Python, второе и четвёртое значения будут 24 и 0.
В блоке кода указан язык Lua. В нём ложными являются только false и nil; число 0 считается истинным. or возвращает первый операнд, если он истинен, иначе второй. and возвращает первый ложный операнд, иначе второй.
| Выражение | Lua | Python |
|---|---|---|
x or y |
'Some Value' |
'Some Value' |
z or y |
0 |
24 |
x and y |
24 |
24 |
z and x |
'Some Value' |
0 |
Это короткозамкнутые операции: второй операнд вычисляется только при необходимости. Они возвращают значения операндов, не обязательно булевы.
Источник: www.lua.org.