Estruturas de Condição – 3 ou mais vias em Python

1. Respostas Diretas

  • Do que se trata o conteúdo? Explicação e demonstração das estruturas de decisão de múltiplas vias (if, elif, else) em Python.
  • Principais assuntos
    • Sintaxe de if, elif e else (ex.: if cond1:elif cond2:else: …).
    • Fluxo de execução – apenas um bloco indentado é executado e o bloco não indentado sempre ocorre.
    • Exemplo prático: programa que lê três lados, verifica se formam triângulo e classifica‑o (equilátero, isósceles ou escaleno).
    • Uso de input + eval e da função max para encontrar o maior lado.
    • Importância da ordem das condições (ex.: exemplo da temperatura).
  • Ponto de maior atenção A ordem das condições em cadeias if/elif/else. Uma condição mais geral colocada antes de uma mais específica pode impedir a execução correta do elif desejado.
  • Conclusão As estruturas de múltiplas vias permitem decisões complexas, mas exigem atenção à ordem lógica e ao fato de que apenas um bloco será executado.

2. Resumo dos Tópicos

  1. Introdução às Estruturas de Condição de 3+ vias

    Apresentação do conceito de decisões com mais de duas possibilidades usando if, elif e else em Python.

    1. Sintaxe Básica

      Primeiro if verifica a condição 1; elif verifica a condição 2 dentro do else do if anterior; podem existir quantos elif forem necessários; else final trata o caso “nenhuma condição verdadeira”.

    2. Fluxo de Execução

      Se uma condição for verdadeira, seu bloco é executado e o fluxo salta para o código fora da estrutura. Apenas um bloco indentado pode ser executado por passagem.

  2. Exemplo Prático – Triângulo

    Programa que lê três valores (A, B, C) e determina se formam um triângulo e, caso positivo, seu tipo.

    1. Leitura de Dados

      Uso de input + eval para converter a string digitada em número.

    2. Determinação do Maior Lado

      Dois métodos: (a) inicializar maior_lado = 0 e atualizar com if sequenciais; (b) usar max(a, b, c).

    3. Verificação da Existência do Triângulo

      Condição correta: maior_lado < (a + b + c) - maior_lado (ou maior_lado < soma_dos_outros).

    4. Classificação do Triângulo
      • Equilátero: a == b == c
      • Escaleno: a != b and b != c and a != c
      • Isósceles: restante (dois lados iguais).
  3. Armadiilhas – Ordem das Condições

    Exemplo da temperatura: colocar if t > 86 antes de elif t > 32 evita que valores > 86 sejam classificados como “frio”.

3. Mapa Mental

mindmap root((Estruturas de Condição – 3+ vias)) sub1(Sintaxe Python) sub1a(if) sub1b(elif) sub1c(else) sub2(Fluxo de Execução) sub2a(Apenas um bloco indentado) sub2b(Bloco não indentado sempre executa) sub3(Exemplo Prático) sub3a(Entrada de dados – input + eval) sub3b(Encontrar maior lado – if ou max) sub3c(Verificar triângulo – maior < soma dos outros) sub3d(Classificação – equilátero, isósceles, escaleno) sub4(Dicas/Armadiilhas) sub4a(Ordem das condições – exemplo temperatura)

4. Questões sobre o assunto

1. Qual palavra‑chave do Python é a abreviação de “else if”?
1.50 ponto Média

Resposta correta: B) elif

O elif é a forma abreviada de “else if” e permite testar novas condições dentro do mesmo bloco de decisão.

2. No programa que verifica a existência de um triângulo, qual expressão abaixo está correta?
2.50 pontos Difícil

Resposta correta: B) maior < (a + b + c) - maior

Para que três lados formem um triângulo, o maior lado deve ser menor que a soma dos dois menores, ou seja, maior < (a + b + c) - maior.

3. Por que o exemplo da temperatura com a ordem “if t > 32 … elif t > 86 …” produz resultado incorreto?
2.50 pontos Difícil

Resposta correta: B) Porque a primeira condição captura todos os valores > 32, impedindo o elif de ser avaliado

Ao colocar a condição mais genérica primeiro, valores maiores que 86 já satisfazem t > 32 e nunca chegam ao elif.

4. Considerando o programa apresentado, quais serão as mensagens exibidas para os lados a = 5, b = 5 e c = 8?
3.50 pontos Extrema

Resposta correta: C) Forma triângulo – Isósceles

Os lados 5, 5 e 8 satisfazem a condição de existência (8 < 5+5) e, como dois lados são iguais, o programa classifica‑o como isósceles.

Pontuação Total
0.00

Texto original

O texto original pode conter falhas de gramática ou de concordância, isso ocorre porque ele foi obtido por um processo de extração de texto automático.
Texto extraído do video Algoritmos e Programação de Computadores I - Estruturas de condição de três ou mais vias

O Lá pessoal, bem-vindos novamente na Satsipina de Alburítimos, programação de computadores 1.
Essa é a nossa videoaula de número 16, onde a gente vai dar continuidade ao assunto de estruturas de condição.
E particularmente, a gente vai ver hoje as estruturas de condição de 3 ou mais vias.
Então, na aula passada, a gente viu de 1 ou 2 vias, e hoje a gente vai ver de 3 ou mais vias.
Bom, então, essas decisões de 3 ou mais vias podem se implementadas na linguagem Python, seguindo este formato que está aí.
Então, a gente tem a primeira condição, que é essa daqui, que é simplesmente um if, que vai verificar essa condição 1 é verdadeira.
Se for verdadeira, ele vai executar esse bloco de instruções em denta a d 1.
Mas, se aparem que agora a gente tem uma outra palavra chave que está sendo usada aí, que é o elif, o elif, pessoal, é uma abreviação para else if.
Então, a gente usa a elif para indicar que você tem uma condição if, que está dentro de um else de um if, que foi previamente colocado lá.
Então, como se eu tivesse aqui, nesse primeiro elif, um else referente a esse primeiro if, que vai fazer uma nova, vai testar uma nova condição, que é a condição 2.
Então, se a condição for falsa, ele vai entrar nesse if, quer dizer, é o senão da condição 1, e ali, ele vai verificar se a condição 2 é verdadeira.
Então, é como se eu tivesse ali um outro if, que está dentro do else, que vai verificar se a condição 2 é verdadeira.
Se for verdadeira, ele executa esse bloco 2 aqui de instruções.
E eu posso colocar quantos elifes eu quiser.
Então, eu coloquei 3, aí, mas eu poderia ter colocado 4, 5 ou quantos eu quiser.
E eu tenho ali, no final de tudo, eu tenho um else.
Esse else aqui está aqui, é referente a oif, ao último if, que eu tenho, que é o que está dentro do else da do if anterior.
Então, se a condição 3 for falsa, ele executa o else, que está aqui embaixo, que é a última condição, que é se caso, nenhuma das condições anteriores for em verdadeiras, ele executa esse último bloco de instruções indentado, que é esse daqui.
Muito bem.
Então, reparem o fluxo aqui.
Então, se a condição for verdadeira, ele executa o bloco de instruções 1 e acabando esse bloco, ele pula para o bloco de instruções não indentado.
Tá bom.
Se a condição for falsa, masa a condição 2 for verdadeira, ele vai executar o bloco 2 e terminando o bloco 2, ele também pula para que ele bloco não indentado.
Se a condição 1 e a condição 2 for em falsas, ele verifica se a condição 3 é verdadeira.
Se a condição 3 for verdadeira, ele executa o bloco 3, terminando o bloco 3, ele também pula para o bloco não indentado de instruções.
Supondo que a condição 1, a condição 2 e a condição 3 sejam falsas, ele vai executar o último bloco indentado, que é esse cara que está aqui e terminando esse bloco, ele também pula para o bloco não indentado.
Então, reparem que esse bloco aqui vai se sempre executado, independente das condições.
E aí, nesse caso, ele vai escolher entre executar o bloco 1, o bloco 2, o bloco 3 ou o último bloco, dependendo de cada uma dessas condições.
E algo interessante aqui, ele nunca vai executar mais do que um bloco indentado.
Ele vai executar apenas 1 bloco, dependendo da condição.
Esse eo se aqui está aqui, pode ser excluído.
Se você quiser não colocar esse eo se final, você pode também não colocar.
E aí, se as 3 condições anteriores forem falsas, todo esse bloco, essa estrutura, não vai ser executada.
Então, nenhum bloco indentado vai ser executado.
Ele vai parte direto aqui pro bloco, não indentado de instruções.
Está certo? Bom, aqui eu tenho uma explicação do que eu acabei de falar.
Então, vocês podem dar uma lida melhor aí, novamente, como é o funcionamento dessa estrutura do slide anterior.
E a gente vai fazer um exemplo aqui na esta videoaula que é verificar se 3 valores que o usuário digitor, que eu estou chamando de ABC, se eles formam um triângulo ou não.
E só lembrando, para formar um triângulo, você tem um triângulo, supondo que eu tenho lá o lado A, o lado B e o lado C.
Então, o maior lado, ele tem que ser menor do que a soma dos outros dois lados.
Então, o lado A, ele tem que ser menor do que B mais C.
Está supondo que o A é o maior lado aqui desse triângulo.
Então, a gente tem que verificar se a primeira coisa que a gente tem que fazer aqui é encontrar o maior lado, dados os 3 valores que o usuário digitor, porque ele pode, por exemplo, ter dita o valor o lado B como maior.
Então, você tem que analisar isso.
E informar se forma um triângulo ou não, e se formar tem a segunda parte do exemplo, que é imprimir o tipo desse triângulo, que é equilátero, isóceles ou escaleno.
Lembrando novamente, um triângulo equilátero, os 3 lados são iguais, os isóceles, dois lados são iguais, e o terceiro não é, né? E o escaleno, os 3 lados do triângulo são diferentes entre si.
Então, a ideia é que o programa possa informar o usuário que tipo de triângulo é isso.
Isso, loxamente, se os lados formarem um triângulo, se não formar, se não formar, aí a gente tem que dizer que os lados não formam um triângulo.
Tá bom? Então, vamos fazer esse exemplo aqui com vocês.
Então, eu tenho aqui, pessoal, o meu arquivo.
pi, onde eu vou colocar as instruções aí desse programa.
Primeira coisa que a gente vai fazer é pedir para o usuário digitar os 3 lados desse triângulo, e eu vou armazenar aqui nas variáveis a, b e c, né? Então, primeira coisa é usar o comando input para pedir para o usuário digitar os lados, né? Então, o lado 1, aqui, pessoal, lembrando da nossa última videoaula, eu falei que o comando input retorna uma string, então, a gente tem que usar o comando o eval para poder transformar isso num tipo num mérico.
Eu estou colocando esse eval já dentro ali do input, tá? Então, o resultado do input já é inserido no eval para ser executado.
Mesma coisa para o lado b e a mesma coisa também para o lado c, tá? Muito bem, a gente já tem os 3 lados desse triângulo.
Agora, a gente vai verificar qual é o maior lado.
Então, eu vou fazer assim, ó, eu vou colocar uma, criar uma nova variável chamada de maior lado.
Vou inicializar essa variável como zero inicialmente, tá? E aí, eu vou verificar se o primeiro lado é maior do que maior lado.
Provavelmente vai ser, né? Porque maior lado a gente inicializou com zero e o a, a variável a, foi um valor que o usuário ditou que também provavelmente vai ser maior do que zero.
Então, ele vai entrar nesse primeiro if e aí, aqui, a gente vai inicializar o maior lado com a variável a.
E a gente vai fazer a mesma coisa com os outros lados, tá? Então, pro lado b, a gente vai verificar novamente e aqui, se b for maior do que maior lado, a gente atualiza esse maior lado para a variável b.
E a mesma coisa para a variável c, tá? Então, com isso, pessoal, supondo que o a seja o maior lado, o variável maior lado vai ser inicializado com a.
E aí, depois, esses dois ifs aqui de baixo não vão ser, não vão entrar.
Então, o maior lado vai permanecer com o valor do lado a.
Se o maior lado for b, ele, primeiro, inicializa maior lado com a, mas depois, ele vai atualizar aqui nesse segundo if com o valor de b.
E aí, o sério não vai entrar, porque b é o maior lado, tá? Então, é a mesma coisa aqui para a variável c.
E, no final das contas, a gente tem a variável maior lado, tendo o valor de a ou de b ou de c, que vai ser o maior dentro esses três.
Uma outra alternativa, seria você fazer isso daqui, então, eu vou comentar aqui, eu poderia fazer assim, estou comentando tudo aqui.
Seria fazer maior lado, recebe o máximo entre a b e c.
Então, com essa função max, a gente também obtém o maior lado.
E aqui, a gente não precisaria nem inicializar a variável aqui em cima.
Então, são duas alternativas aí, caso vocês querem implementar esse programa numa outra linguagem que não tenha essa função max, que o Python oferece, aí faria algo nesse sentido aqui de cima, tá bom? Muito bem, temos o maior lado, agora, o que a gente vai fazer? A gente vai verificar se forma um triângulo ou não.
A gente vai fazer assim, se o maior lado for menor do que a mais b mais c, mas aqui, o jeito que está aqui está errado, porque a mais b mais c é o soma dos três lados.
A gente tem que subtrair aquele maior lado que está do lado de k.
Tá certo? Então, eu faço uma subtração de maior lado.
Com isso, supondo que maior lado é a variável a, então vai ser a é menor do que a mais b mais c, menos a, então a vai cortar com o outro, e aí vai me sobrar b mais c, que é exatamente a ideia de verificar se forma um triângulo ou não.
E isso vai acontecer para variável b ou para variável c.
Então, supondo que se, e seja verdadeiro, a gente vai já informar o usuário que os lados formam um triângulo.
Caso o contrário, a gente vai informar que os lados não formam um triângulo.
Bom, então, essa aqui é a primeira parte do nosso exercício, que é verificar, então, se os lados formam um triângulo ou não.
Agora, pessoal, a gente pode dentro desse if aqui, que é, no caso de formar um triângulo, fazer as demais verificações para dizer o tipo do triângulo, que é formado por esses três valores, que é que lateral, isósenis ou escalêm.
Então, a gente pode começar pelo equilátero, quer dizer, o equilátero é três lados iguais, então, vamos verificar, a é igual a b e b é igual a c e a é igual a c, então, isso daqui é uma expressão relacional que está dentro de uma expressão lógica, e o resultado disso tudo vai ser verdadeiro, se a foi igual a b, b foi igual a c e a é igual a c.
Então, nesse caso, o triângulo forma um tipo triângulo equilátero.
Vamos colocar agora um elif, então, quer dizer, isso daqui for falso, a gente vai verificar agora, num elif, se a é diferente de b e b é diferente de c e a é diferente de c.
Então, quer dizer, se todo mundo for diferente entre c, o triângulo vai ser do tipo escaleno.
E aqui, eu vou colocar um elci, quer dizer, se os três lados não forem iguais, e os três lados forem, não forem diferente entre c, então, só resta a última opção que é dois lados, serem iguais e outros, serem diferente.
Então, nesse caso, a gente já pode imprimir, sempre se a fazer nenhuma outra verificação, que o triângulo é esóssas.
Então, está aí o nosso programa, então, então, agitou aqui os três lados, obtemos o maior lado, verificamos se o maior lado é menor do que a soma dos dois outros lados, e depois verificamos aqui o tipo do triângulo.
Só vou rodar aqui rapidinho, então, um lado um, vou colocar, por exemplo, três, lado dois, dois, e o lado três, três.
Então, forma um triângulo, esse triângulo é esósseles.
Vamos rodar novamente agora, supondo que eu tenho três, três, três e três, triângulo e equilátero.
E vamos testar mais uma última vez, supondo que eu tenho o lado 10, e o outro lado é três, o outro lado é dois.
Então, quer dizer, três mais dois não é maior do que 10, os lados não vão formar um triângulo.
Então, pessoal, uma outra coisa que é interessante que a gente vê é a ordem das condições.
Reparei nesse exemplo que eu estou colocando um primeiro eixo aqui, se o T de temperatura é maior do que 32, ele vai imprimir, que é um valor frio.
Se não, ele vai verificar se esse T é maior do que 86, e aí ele vai imprimir que a temperatura é quente.
Qual que é o problema desse exemplo? O problema, pessoal, é que se a temperatura for já maior do que 86, ele já vai entrar nesse primeiro eixo aqui e vai imprimir frio.
Então, sobregitar, por exemplo, a temperatura sem graus, sem graus é maior do que 32, e ele imprimi frio, sendo que era para ele ter entrado nesse elif que está aqui.
Então, um exercício para vocês é como corrigir.
Então, só uma dica, é necessário você fazer uma troca aqui de da ordem dessas condições para poder funcionar esse programa corretamente.
Tá bom? Então, é isso, pessoal, essa aqui foi a nossa videoaula de estruturas de condição, de três ou mais vias.
Espero que vocês possam ter aproveitado essa videoaula e a gente se vê, então, numa próxima.
Até lá, obrigado.