3
respostas

Não entendi o WHILE utilizado na aula GAME LOOP

Olá, tenho uma dúvida.. Não entendi muito bem a lógica do While que foi mostrado na aula "GAME LOOP" segunda a explicação do professor not enforcou = TRUE assim como o not acertou, dando a entender que os valores em parantes no WHILE é o valor TRUE. Mas não entendi o motivo da função ficar repetindo a mensagem "Jogando".

Gostaria de uma explicação um pouco mais detalhada disso, no meu entendimento aquele while feito nesta aula iria printar a mensagem caso as variáveis "acertou" e "enforcou" tivessem o valor TRUE, entretanto como foi definido nas linhas 8 e 9, ela tinha o valor FALSE.

Aguardo auxilio, obrigado !

3 respostas

Boa noite Gabriel, o operador not inverte o valor da expressão, isso é, se a expressão tem o valor TRUE, o resultado final será FALSE, e se a expressão tem o valor FALSE o resultado final será TRUE.

Se você tentar ler a expressão levando em consideração esses conceitos vai chegar a conclusão de que a mensagem "Jogando" vai ser impressa enquanto você não tenha se enforcado, ou seja, enforcou = false e não tenha acertado, acertou = false. A partir do momento que você é "enforcado" ou acerta a palavra chave, o resultado da variável correspondente será alterado para verdadeiro.

Por exemplo, digamos que você está jogando, incialmente as váriaveis enforcou e acertou têm o valor false, isso quer dizer que a linha "Jogando" será escrita na tela pois o operador not inverte o valor de ambas a váriaveis, tornando-as true dentro da expressão. Na próxima jogada você acerta a palavra secreta, tornando o valor da váriavel acertou como true, quando a expressão not enforcou and not acertou for verificada vai acontecer aquela inversão que citei, então se trocarmos o nome das váriaveis por seus valores, a expressão final seria assim: not false and not true, o trecho not false (not enforcou) se torna true e o trecho not true (not acertou) se torna false, ao final ficamos com true and false o que vai resultar em um false no final, por isso o código dentro do if não é executado, parando de imprimir o texto "Jogando".

Espero que tenha ajudado, se tiver mais dúvidas estou à disposição!

Boa Noite Helvio, com sua explicação ficou um pouco mais claro para mim.. Eu achava que o NOT teria a mesma função que o != Então quando eu fazia o seguinte código eu entedia a lógica mas no código NOT não ficava mto claro..

 enforcou = False
  acertou = False

    while enforcou != True and acertou 1= True :
        print("bom dia")

Obrigado !

Isso ai Gabriel, para ficar mais fácil se lembrar de como funciona os operadores, você pode ler o not como não e o != como diferente, por exemplo:

not enforcou = não enforcou

enforcou != true = enforcou diferente de true