1
resposta

esle if não funcionou

meu codigo só funcionou depois que eu coloquei o elif no lugar do:

else:
        if():

ai ficou assim:

 if  (acertou):
    print('correto')

elif(errou_cima):
    print('errado! seu chute foi maior que o numero')
elif(errou_baixo):
    print('errado! seu chute foi menor que o numero')
1 resposta

Olá João,

Existe uma diferença do aninhamento das condições nas duas formas de se fazer, mas neste algoritmo ambos possuem a mesma funcionalidade e ambas deveriam funcionar corretamente. No seu caso, não sei qual o erro foi apresentado, mas muito provavelmente esteja relacionado com a indentação do código.

O python utiliza a indentação(espaçamento inicial) para criar os blocos de código a serem executados, assim, após uma estrutura condicional (if, else, elif) ou de repetição (for, while) ele executará as linhas de código que possuírem a MESMA indentação dentro da estrutura utilizada.

para exemplificar:

Exemplo da aula (correto):

idade_str = input("Digite sua idade: ")
idade = int(idade_str)

if (idade > 18):
    print("Você é maior de idade.")
else:
    if (idade < 12):
        print("Você é uma criança.")
    elif (idade > 12):
        print("Você é um adolescente.")

Exemplo com erro de indentação:

idade_str = input("Digite sua idade: ")
idade = int(idade_str)

if (idade > 18):
    print("Você é maior de idade.")
else:
if (idade < 12):
        print("Você é uma criança.")
    elif (idade > 12):
        print("Você é um adolescente.")

Podemos ver que no segundo caso deixamos o if na mesma indentação do else, assim o código não irá rodar devido ao erro de indentação:

File "<string>", line 7
    if (idade < 12):
    ^
IndentationError: expected an indented block
> 

Para resumir, quando iniciar uma estrutura condicional, lembre-se sempre de adicionar uma tabulação para as linhas que serão executadas dentro do código, o mesmo vale caso tenha uma estrutura dentro de outra. Não sei se foi esse exatamente o seu problema, mas caso não for, deixe a mensagem de erro, ou coloque o código para conseguirmos analisar

vlw tmj!