Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Diferença visual de o que seria uma sequência de ifs e if com elfis

isso seria uma sequência de ifs

if x<y: 
    print('x é menor do que y')
    if x>y:
        print('x é maior do que y')
        if x==y:
            print('x é igual a y')

Sequência de if

já o elif seria isso:

if x<y: 
    print('x é menor do que y')
    elif x>y:
        print('x é maior do que y')
        elif x==y:
            print('x é igual a y')

Graficamente é possível vermos que o programa para quando uma condição verdadeira é atingida e o processo se encerra:

if + sequência de elif

O processo se encerra quando uma condição verdadeira é atingida.

fonte de onde eu extrai essa informação:

CS50P - Lecture 1 - Conditionals - https://www.youtube.com/watch?v=_b6NgY_pMdw

1 resposta

Olá, Esperidião, como vai?

A sua interpretação dos fluxogramas representa com clareza o comportamento de cada estrutura lógica. Na sequência de blocos independentes, o interpretador avalia cada condição de forma isolada, executando todos os testes do início ao fim. Já na estrutura encadeada, quando uma condição é atendida como verdadeira, o programa executa o bloco correspondente e ignora todas as verificações seguintes, pulando diretamente para o final da estrutura e economizando processamento.

Vale apenas atentar para a indentação do código em Python na prática. No primeiro caso, para que os comandos representem a sequência independente do diagrama e não condições aninhadas, todos os testes condicionais precisam estar alinhados na mesma coluna à esquerda. No segundo caso, as instruções com a palavra-chave alternativa também devem ficar exatamente no mesmo nível de alinhamento do primeiro comando condicional, caso contrário o interpretador acusará um erro de sintaxe.

Pensando nessa lógica de exclusão mútua das comparações entre dois valores numéricos, qual vantagem você enxergaria em trocar a última verificação explícita por uma cláusula padrão else no final da estrutura?

Qualquer dúvida ou consideração a mais, o fórum está à disposição para te ajudar nos estudos.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!