2
respostas

Dúvida na condição not dentro da estrutura de repetição

Não entendi o propósito e a função do operador 'not' dentro da estrutura de repetição 'while', pois se o 'not' inverte o valor bolleano atual da variável, pela lógica nem se deveria entrar no loop, pois a condição ficaria "while(enforcou == True and acertou== True):" já que o not inverte o "False para True".

2 respostas

Thiago. acho que você não entendeu o while, o while repete algum código emquanto alguma condição for verdadeira, ele não repete até que uma condição seja verdadeira. um exemplo que acontece no curso: while(not enforcou and not acerto): ou seja ele vai repetir o processo de perguntar a letra até que você não tenha acertado e não tenha morrido. Algumas linguagems tem a "repeat until" que essa sim repete até que uma condição seja verdadeira, mais não é o caso do python os loops do python são o for e o while. Deu para entender?

Como o amigo disse acima, creio que falte um pouco sua compreensão do While portanto:

O Loop While é diferente do For, devido que: No for, o loop é executado com uma extensão definida:

For numero in range(0, 11):
    print(numero)

Nesse código, o for faz uma iteração dez (10) vezes, de acordo com o range (alcance) definido.

O while é diferente, ele vai realizar a iteração "enquanto" a condição for verdadeira, ou seja:

acertou = False
enforcou = False

while (not enforcou and not acertou):
    print('Iterando...')

Com esse código, o while vai entrar em um loop infinito, pois ambas as condições são verdadeiras, devido ao not inverter os valores, como você mesmo disse, portanto, o while é utilizado quando você não tem uma ideia exata de quantas vezes você vai ter que executar determinada ação.

Espero que tenha entendido.