2
respostas

Ausência das chaves nos loops e Ifs

Tenho dúvidas em relação ao que fecha um loop. Fazendo os testes, vi que o que difere

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.")
        rodada = rodada + 1

de

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.")
rodada = rodada + 1

é apenas o número de espaços antes do (rodada = rodada + 1), diferente das outras linguagens que tem as chaves. É realmente esse o caso? Se for, não gera nenhuma confusão no meio do código, podendo gerar erros que não são identificados como erros?

2 respostas

Olá Gabriel tudo bem ?

No python a situação da iodentação é muito importante, deste modo considerando o que você está fazendo no primeiro caso:

O "rodada" será apenas somado, dentro do elif pois ao identar( dar um "tab") você inclui ele no bloco do "elif"

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.")
        rodada = rodada + 1

Já no segundo caso que acredito que seja sua intenção, somar a rodada toda vez, ou seja ele deveria estar fora do "elif", e para deixa-lo fora deveria esta identado na mesma linha do "else"

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.")
rodada = rodada + 1

Caso a diferença ainda não esteja clara faça um teste assim :


if(False):
    print("Bloco 1 : Dentro do if")
print("Mesma linha do else e do if, ou seja um bloco novo")

Deste modo o if sempre falha porém o que está "fora" dele será sempre executado, e então fica claro ver que a identação é o que marca o que você quer executar dentro de cada bloco. Espero ter ajudado.

Indentação é uma forma de arrumar o código, fazendo com que algumas linhas fiquem mais à direita que outras, à medida que adicionamos espaços em seu início. ... A indentação é uma característica importante no Python, pois além de promover a legibilidade é essencial para o bom funcionamento do código.