2
respostas

Atribuição de Variável - Teste Lógico

Galera, Uma ponderação interessante, o pyhton faz o teste lógico diretamente na atribuição de valor na variável? Uma espécie de teste "intrínseco" na declaração?

Abaixo tem o código em questão

acertou = chute == numerosecreto maior = chute > numerosecreto menor = chute < numerosecreto

if (acertou): print("Você acertou!") else: if (maior): print("Você errou! O seu chute foi maior que o número secreto.") elif (menor): print("Você errou! O seu chute foi menor que o número secreto.")

2 respostas

É comum que as execuções das linhas de código ocorram de trás para frente em diversas linguagens, por exemplo logo na linha de código

acertou = chute == numerosecreto

O interpretador irá comparar o valor contido em "numerosecreto" com o valor contido em "chute", e o resultado booleano dessa comparação (True ou False) é armazenado na variável chute. Tudo feito de trás para frente, repare.

Porém quando ocorre um erro nesse processo, o padrão é aparecer no console o erro na ordem do código, para que de alguma forma facilite a identificação do erro no código pelo programador, por exemplo:

maior = 1 > 0  # maior passa a receber o valor True

maior = '1' > 0  
# TypeError: '>' not supported between instances of 'str' and 'int'
# Repare que no erro ele mostrou primeiro STR e depois INT

maior = 1 > '0'
#TypeError: '>' not supported between instances of 'int' and 'str'
# Repare que ele mostrou INT primeiro e depois STR no erro

Pela lógica de execução do segundo exemplo, ele compara um INT com um STR (de trás para frente, lembre-se), o erro acontece quando ele chega nesse segundo tipo que é INT, mas ao imprimir o erro ele mostra na ordem que está no código: STR e INT, para facilitar sua leitura do código e você identificar com mais facilidade...

Acho que não deixei muito confuso rs

Em geral essa tecnica é boa pois a alternativa dela demanda algumas linhas de código fazendo algo como:

if 1 > 0:
    maior = True
else:
    maior = False

Ou utilizando outra facilidade do Python

maior = True if 1 > 0 else False

Thiago Matos,

Foi fantástica sua explicação!!! Muito obrigado, espero um dia poder retribuir tamanha dica!!!

Muito Obrigado