Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

[Dúvida] Como o Python sabe que o acabou virou "True"?

Executamos o código do exercício:

total = 0
palavra = "pyth"
acabou = False
while (not acabou):
    acabou = ( total == len(palavra) )
    total = total + 1
print(total - 1)

Resultado: 4

Porém a minha dúvida é na forma do while e dentro dele acabou = ( total == len(palavra) ), como que o Python ele entende que quando o total for igual o tamanho da letra o acabou vira true para poder sair do while e mostrar o valor?

total = 0
palavra = "pyth"
acabou = False
while (not acabou):
    acabou = ( total == len(palavra) )
    total = total + 1
print(total - 1)
print(acabou)

Resultado: 4 True

4 respostas
solução!

acabou = False e o while tá negando isso, ou seja no while acabou é True dentro dos ( ), então vai chegar um momento dentro do while que a condição total == len(palavra) vai retornar True ou seja, quando a condição (total == len(palavra) retornar True o while vai negar com o not ai vai ser False e o loop encerra.

not False = True not True = False

while (not acabou): acabou = ( total == len(palavra) ) total = total + 1

na primeira vez que esse laço executar acabou = false, pois total é igual a 0 e len(palavra) igual a 4. na segunda vez que executar total vai ser 1, 0 = 0 + 1 -> total = total + 1 e acabou ainda continua sendo false, pois 1 não é igual a 4. na terceira vez que executar total vai ser 2 e acabou ainda vai ser false, pois 2 não é igual a 4. na quarta vez que executar total vai ser 3 e acabou ainda vai ser false, pois 3 não é igual a 4. agora na quinta vez que executar total vai ser 4 e acabou vai ser true, pois 4 é igual a 4 ai o loop encerra.

Muito obrigado Anderson!!

Nada cara, espero ter ajudado com a dúvida. :)