Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Tudo que está dentro do if...

Boa noite. Deixa eu ver se entendi:

Tudo o que está dentro do IF é como se fosse uma "fase" pela qual o código tem que passar, certo? Ex, primeiro pede para digitar um número entre 1 e 100. O primeiro IF alerta a pessoa caso ela digite menor que 0 e maior que 100. O próximo IF dá continuidade ao restante do jogo, onde, se a pessoa acertasse logo de cara, o primeiro IF não rodaria. Então se eu vir a fazer um código mais complexo futuramente, posso ter inúmeras situações variáveis em que serão colocadas dentro do IF, e não necessariamente ela será rodada, dependendo da situação em que se encontra o jogo. Seria mais ou menos esse o raciocínio, certo?

1 resposta
solução!

Oi Israel.

Seu raciocino me parece correto sim, certas partes do código que estão dento de ifs podem ou não rodar dependendo da situação.

Para entender bem o raciocínio, gosto de montar um passo a passo de cada linha:

Primeiro vamos analisar o for, ele é onde o nosso jogo 'vive', o jogo começa quando entramos nele e termina somente quando saímos.

for rodada in range(1, total_de_tentativas + 1):

Esse range diz que nosso jogador terá terá três tentativas [1,2,3] e depois disso o jogo vai ser encerrado, o for vai acabar.

Agora o nosso primeiro if, ele verifica se o chute do nosso jogador respeito o intervalo de 1 até 100 e se não respeito ele informa o nosso usuário e encerra essa rodada do for.

 if(chute < 1 or chute > 100):
        print("Você deve digitar um número entre 1 e 100!")
        continue

Ele encerra a rodada atreves do comando continue que faz com que o for vá para o próximo valor do range [1, 2, 3] e não executa as linhas restantes dentro do for nessa rodada.

Por exemplo se o jogador estivesse na rodada 1 e seu chute fosse 0, iriamos direto para a rodada 2 sem passar pelos ifs que verificam se o jogador acertou ou se o jogador fez um chute maior ou menor.

Pronta agora que já passamos pelo for e pelo primeiro if, vamos verificar os próximos.

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

Somente chegamos nesse if caso o chute respeite o intervalo de 1 até 100. Nesse if(acertou): validamos se o chute do jogador está correto, se tiver correto encerramos o jogo e o for através do comando break, que diferente do continue vai terminar com o for independente se tivermos mais rodadas no range.

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

Agora caso o jogador não tenha acertado entramos no else, nele vamos verificar se o chute do jogador foi maior ou menor que numero_secreto e fazemos isso através de um if e um elif.

Encerrando esse bloco nosso jogo vai para a próxima rodada do for, a não ser que seja a ultima ai o nosso for e jogo vão acabar.

Acredito que você está no caminho certo para entender como o código funciona, mas qualquer duvida não hesite em perguntar.

Bons Estudos.