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

Meu código funciona sem o Break

#Meu código funciona sem o (break) por que?

print('*********************************')
print('Bem-Vindo no jogo de Adivinhação!')
print('*********************************')

numero_secreto = 42
total_de_tentativas = 3

for rodada in range(1, total_de_tentativas + 1):
    print("Tentativa {} de {}".format(rodada, total_de_tentativas))
    chute_str = input("Digite um número entre 1 e 100: ")
    print("Você digitou: ", chute_str)
    chute = int(chute_str)

    if(chute < 1 or chute > 100):
        print('Voce deve digitar um número entre 1 e 100!')
        continue # continuar com a proxima rodada

acertou = chute == numero_secreto 
maior = chute > numero_secreto
menor = chute < numero_secreto

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

rodada = rodada + 1

print('Fim de Jogo')
3 respostas

O for funciona, tem como você acertar, mas ele não para na hora certa. Se você tentar acertar na primeira digitando 42 vai pedir pra você digitar outro numero até acabar as tentativas:

*********************************
Bem-Vindo no jogo de Adivinhação!
*********************************
Tentativa 1 de 3
Digite um número entre 1 e 100: 42
Você digitou:  42
Tentativa 2 de 3
Digite um número entre 1 e 100: 42
Você digitou:  42
Tentativa 3 de 3
Digite um número entre 1 e 100: 42
Você digitou:  42
Voce acertou!
Fim de Jogo

Process finished with exit code 0

O motivo disso é que você não indentou corretamente, era pra todo o código antes do print('Fim de Jogo') estar dentro do for, ficando assim:

print('*********************************')
print('Bem-Vindo no jogo de Adivinhação!')
print('*********************************')

numero_secreto = 42
total_de_tentativas = 3

for rodada in range(1, total_de_tentativas + 1):
    print("Tentativa {} de {}".format(rodada, total_de_tentativas))
    chute_str = input("Digite um número entre 1 e 100: ")
    print("Você digitou: ", chute_str)
    chute = int(chute_str)

    if(chute < 1 or chute > 100):
        print('Voce deve digitar um número entre 1 e 100!')
        continue # continuar com a proxima rodada

    acertou = chute == numero_secreto
    maior = chute > numero_secreto
    menor = chute < numero_secreto

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

    rodada = rodada + 1

print('Fim de Jogo')

Assim eu posso acertar de primeira:

*********************************
Bem-Vindo no jogo de Adivinhação!
*********************************
Tentativa 1 de 3
Digite um número entre 1 e 100: 42
Você digitou:  42
Voce acertou!
Fim de Jogo

Process finished with exit code 0

Ou receber dicas:

*********************************
Bem-Vindo no jogo de Adivinhação!
*********************************
Tentativa 1 de 3
Digite um número entre 1 e 100: 41
Você digitou:  41
Voce errou! O seu chute foi menor do que o número secreto.
Tentativa 2 de 3
Digite um número entre 1 e 100: 43
Você digitou:  43
Voce errou! O seu chute foi maior do que o número secreto.
Tentativa 3 de 3
Digite um número entre 1 e 100: 42
Você digitou:  42
Voce acertou!
Fim de Jogo

Process finished with exit code 0

*Nossa! Não me atentei com os recuo em questão de alinhar dentro do For, muito obrigada mesmo, eu realmente eu estou me encontrando vários erros em questão de atentar com o recuo, depois que ajeitei os recuos pra ficar dentro do For, deu pra encaixar o Break sem erro. Obrigada mesmo! *

solução!

Nada, normal isso no começo, o python força você a indentar certinho pra padronizar o código de todo mundo e facilitar a leitura e compreensão. Com a prática você começa a fazer essas indentações automaticamente. Se não tiver mais nenhuma dúvida marca a resposta como solução pra fechar esse tópico. Se ainda esta com dúvida em algo pode perguntar que estamos aqui pra ajudar :)