Como 1 == 2 == 2 é avaliado? [duplicado]
Aug 22 2020
Executar isso no REPL me dá
>>> 1 == 2 == 2
False
O que me surpreendeu, em C isso seria avaliado como 1. Eu esperava que o lado direito fosse avaliado Truee 1 == Trueestá Trueem Python. Por exemplo, isso é avaliado como eu esperaria:
>>> 1 == (2 == 2)
True
Como o Python está analisando e avaliando a primeira expressão? Isso avalia da mesma forma, mas é o que eu esperaria porque ==é associativo à direita e seria avaliado como 0 em C
>>> 2 == 2 == 1
False
Respostas
7 Noname Aug 22 2020 at 00:22
Isso se deve ao fenômeno de encadeamento de operadores
Um exemplo :
>>> 1==2
=> False
>>> 2!=3
=> True
>>> (1==2) and (2!=3)
# False and True
=> False
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
George Harrison ficou chateado por suas letras de 'Hurdy Gurdy Man' de Donovan não terem sido usadas