Hoje veremos estruturas de controle e repetição
O que é uma estrutura de controle
As estruturas de controle alteram o fluxo de execução do programa com base em condições ou repetições. Elas permitem que o código tome decisões, repita ações ou defina condições que determinam o comportamento do programa. Além disso, essas estruturas são essenciais para tornar o código mais dinâmico e adaptável a diferentes cenários. Existem três tipos principais de estruturas de controle: condicionais, de repetição e de controle de fluxo. Cada uma delas desempenha um papel específico, dependendo do tipo de situação que o programador deseja controlar. Portanto, ao entender essas estruturas, podemos criar programas mais flexíveis e eficientes.
Estruturas Condicionais
As estruturas condicionais são usadas para tomar decisões com base em condições verdadeiras ou falsas.
If, Elif e Else
1 2 3 4 5 6 7 8 9 10 11 12 |
sinal_atual = "amarelo" if sinal_atual == "verde": print("Siga !") elif sinal_atual == "amarelo": print("Atenção !") else: print("Pare !") """ Resultado: Atenção ! """ |
If, Else
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
limite_radar = 40 velocidade_veiculo = 60 if velocidade_veiculo > limite_radar: print(f"veiculo multado andando a {velocidade_veiculo} km/h quando o limite máximo é {limite_radar} km/h") print("foto realizada pelo pardal número 545") print("enviado para o servidor") print("fim") else: print(f"Veículo está no dentro do limite de {limite_radar} km/h") """ Resultado: veiculo multado andando a 60 km/h quando o limite máximo é 40 km/h foto realizada pelo pardal número 545 enviado para o servidor fim """ |
Atenção para a estrutura definida no alinhamento
O alinhamento no Python, também conhecido como indentação, desempenha um papel fundamental na sintaxe da linguagem, pois organiza e estrutura o código de forma clara. Em Python, a indentação é obrigatória e substitui as chaves ({}
), utilizadas em outras linguagens como C, C++ ou Java, para definir blocos de código. Assim, ao invés de usar chaves, a indentação indica visualmente quais linhas de código pertencem a determinado bloco. Consequentemente, isso torna o código mais legível e intuitivo, além de evitar confusão na definição de blocos de controle.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
opcao_1 = True opcao_2 = False opcao_3 = True print("=============================") print("Exemplo 1") print("=============================") if opcao_1: print("Opção 1 é Verdadeira !") if opcao_2: print("Opção 2 é Verdadeira !") if opcao_3: print("Opção 3 é Verdadeira !") print("nn") print("=============================") print("Exemplo 2") print("=============================") if opcao_1: print("Opção 1 é Verdadeira !") if opcao_2: print("Opção 2 é Verdadeira !") # Só vai ser perguntado se opcao_2 for verdadeira if opcao_3: print("Opção 3 é Verdadeira !") """ Resultado: ============================= Exemplo 1 ============================= Opção 1 é Verdadeira ! Opção 3 é Verdadeira ! ============================= Exemplo 2 ============================= Opção 1 é Verdadeira ! """ |
Estruturas de repetição
While
Quando não sabemos quantas vezes repetiremos um procedimento, utilizamos o while
. Nesse caso, o loop while
continuará executando até que uma condição específica se torne verdadeira ou até encontrar a palavra reservada break
. Assim, o while
oferece maior flexibilidade no controle de repetições, pois a condição de parada pode ser definida durante a execução. Além disso, o uso do break
é útil quando precisamos interromper o loop antes que a condição de parada natural seja atingida. Portanto, o while
permite um controle dinâmico e eficiente sobre o fluxo de execução.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
continuar = True hortifruti = ['banana', 'morango', 'abacate','pera'] while continuar: opcao = input("""================== menu ================== opções: print("1 - Verificar se existe fruta") print("2 - Sair")""") if(opcao == '1'): fruta = input("Qual fruta você procura ?") if(fruta in hortifruti): print(f'tem {fruta} no hortifruti') else: print(f'não tem {fruta} no hortifruti') elif(opcao == '2'): continuar = False else: break #Caso selecione uma oção inválida pare |
For
Quando usamos o for
, sabemos exatamente o número de vezes que o loop será repetido. Entretanto, se o loop encontrar o break
, ele pode sair antes de completar todas as repetições. Por exemplo, nos exemplos abaixo, percorremos todas as letras da string e as imprimimos. Dessa forma, conseguimos controlar a iteração de maneira mais previsível, mas ainda com a flexibilidade de interromper a execução sempre que necessário. Portanto, o for
nos oferece tanto previsibilidade quanto controle dinâmico sobre o fluxo de execução.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
frase='Repetição' for letra in frase: print(letra) """ Resultado: R e p e t i ç ã o """ |
For , Else
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
frase='Repetição' for letra in frase: print(letra) else: print("fim") """ Resultado: R e p e t i ç ã o fim """ |
Agora de forma resumida em uma linha.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
frase='Repetição' for letra in frase: print(letra) """ Resultado: R e p e t i ç ã o """ |
Percorrendo uma lista e fazendo uma pergunta
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
frutas = ["abacaxi","abacate","amora","banana","bacuri","buriti","caju","carambola","cacau", "damasco","durião","embaúba","figo","framboesa","goiaba","graviola","groselha","heisteria"] #quais frutas possuem mais de 5 caracteres resultado = [x for x in frutas if len(x)>5] descartadas = [x for x in frutas if len(x)<=5] print(resultado) print(descartadas) """ Resultado: ['abacaxi', 'abacate', 'banana', 'bacuri', 'buriti', 'carambola', 'damasco', 'durião', 'embaúba', 'framboesa', 'goiaba', 'graviola', 'groselha', 'heisteria'] ['amora', 'caju', 'cacau', 'figo'] """ |
Comando Continue
1 2 3 4 5 6 7 8 9 10 11 |
frutas = ["maçã", "banana", "laranja", "uva"] for fruta in frutas: if fruta == "banana": continue # Pula a impressão da banana print(fruta) """ Resultado: maçã laranja uva """ |
Comando Pass
1 2 3 4 5 6 7 8 9 10 11 12 13 |
for i in range(10): if i % 2 == 0: pass # Faz nada se o número for par else: print(i) """ Resultado: 1 3 5 7 9 """ |
Usamos o comando pass
quando sabemos que vamos desenvolver uma função, mas ainda não implementamos seu conteúdo. Nesse caso, declaramos a função e, para evitar erros, colocamos pass
no corpo dela. Assim, garantimos que o código seja executado sem problemas, mesmo com a função incompleta. Dessa forma, conseguimos continuar o desenvolvimento sem interrupções, permitindo que voltemos à função mais tarde para adicionar sua lógica. Portanto, o pass
é uma solução prática enquanto o código ainda está em desenvolvimento.