Вопрос по python, boolean, boolean-logic – Что возвращает Python, когда мы возвращаемся с логическим оператором?

2

Я читал чужой код, и у него было что-то вроде этого:

return val1 and val2 

Я попробовал это в интерпретаторе Python, и он дал мне последнее значение на AND, а OR дает мне предыдущее значение.

Итак, мой вопрос: что именно происходит в этом заявлении?

Благодарю.

Это фактически возвращает значение из переменной, а не логическое значение. Но спасибо, хотя. shriek
Хорошо. Удачи в изучении Python. Tadeck
Только один комментарий от моего конца: если вы ожидали логическое значение, то сделайтеreturn bool(val1 and val2) вместоreturn val1 and val2. Tadeck

Ваш Ответ

2   ответа
3

если первое значение истинно. В противном случае оно равно первому значению.

Оператор OR равен первому значению, если оно истинно, в противном случае оно равно второму значению.

Обратите внимание, что в Python объект может быть оценен как логическое значение. Так"bla" and False будет оцениваться до второго значения, потому что первое значение истинно (это непустая строка иbool("string") = True).

Вот как булевы выражения оцениваются в Python (и во многих других языках программирования). Например:

True and False = False (equal to second value because the first value is true) False and True = False (equal to the first value because the first value is not true) True and True = True (equal to the second value because the first value is true) True or False = True (equal to the first value because it is true) False or True = True (equal to the second value)
Я вроде уже знал это, но в моем случае val1 и val2 содержат значение вместо логических значений, таких как val1 = & quot; hello & quot; val2 = "мир" если верно, то еще " Но я вижу, что вызывает это. Благодарю. shriek
11

and или жеor Короткие замыкания, когда он может определить, что выражение не будет оцениваться в True или False на основе первого операнда, и возвращает последнее оцененное значение:

>>> 0 and 'string'
0
>>> 1 and 'string'
'string'
>>> 'string' or 10
'string'
>>> '' or 10
10

Этот «побочный эффект» часто используется в коде Python. Обратите внимание, чтоnot does вернуть логическое значение. УвидетьPython документация по булевым операторам для деталей.

Похожие вопросы