Motivação

Em Python, assim como na maioria das linguagens de programação, o programa deve ser capaz de tomar decisões com base em valores e resultados gerados durante sua execução, ou seja, deve ser capaz de decidir se determinada instrução deve ou não ser executada de acordo com uma condição. Para atender a esse tipo de situação, podemos utilizar instruções especiais denominadas estruturas condicionais.

Além dessas, as linguagens de programação normalmente também suportam os chamados laços de repetição, estruturas que permitem a execução de instruções repetidas vezes, até que uma condição seja atingida.

Neste artigo, veremos como funcionam e como utilizar as estruturas de controle em Python: IF, FOR e WHILE.

exclamação Saiba mais sobre Python com o curso de introdução ao Python

Estruturas de condição com o IF

O IF é uma estrutura de condição que permite avaliar uma expressão e, de acordo com seu resultado, executar uma determinada ação.

No código a seguir, temos um exemplo de uso do IF no qual verificamos se a variável idade é menor que 20. Em caso positivo, imprimimos uma mensagem na tela, e em caso negativo, o código seguirá normalmente, desconsiderando a linha 3.

  1 idade = 18
  2 if idade < 20:
  3     print(‘Você é jovem!’)
  

Como podemos notar, essa estrutura é formada pela palavra reservada if, seguida por uma condição e por dois pontos (:). As linhas abaixo dela formam o bloco de instruções que serão executadas se a condição for atendida. Para isso, elas devem ser identadas corretamente, respeitando a especificação do Python. Nesse código, apenas a instrução da linha 3 é executada, e por isso ela está mais avançada. Se fosse necessária a execução de outras linhas no caso da idade ser menor que 20, elas também deveriam estar no mesmo nível de identação da linha 3.

Operadores de comparação

Um assunto diretamente relacionado às estruturas de condição e repetição são os operadores de comparação. Como o nome sugere, eles são usados para avaliar o valor de duas ou mais expressões/variáveis e compará-las. Na linha 2 do código que vimos anteriormente, por exemplo, comparamos a variável idade com o valor 20, por meio do operador menor que (<).

Na Tabela 1 podemos ver todos os operadores de comparação da linguagem Python e seu significado/aplicação.

Símbolo

Definição

==

Igual

!=

Diferente

>

Maior que

<

Menor que

>=

Maior ou igual que

<=

Menor ou igual que

Tabela 1. Operadores de comparação em Python

É importante observar que o operador de comparação de igualdade é formado por dois sinais de igual (==), enquanto um único sinal corresponde ao operador de atribuição.

Estrutura de condição IF-ELIF-ELSE

Vimos anteriormente como utilizar o IF para executar uma ação caso uma condição seja atendida. No entanto, nenhum comportamento específico foi definido para o caso de a condição não ser satisfeita. Quando isso é necessário, precisamos utilizar a palavra reservada else. Adicionalmente, se existir mais de uma condição alternativa que precisa ser verificada, devemos utilizar o elif para avaliar as expressões intermediárias antes de usar o else.

A Listagem 1 apresenta uma demonstração dessas instruções.

  1 idade = int(input('Digite sua idade: '))
  2 if idade >= 10 and idade < 20:
  3    print('Você é adoslecente')
  4 elif idade >= 20 and idade < 30:
  5    print('Você é jovem')
  6 elif idade >= 30 and idade <= 100:
  7    print('Você é adulto')
  8 else:
  9    print('Valor não encontrado!')
  
Listagem 1. Estrutura condicional completa com if-elif-else

Na linha 2, verificamos se o valor informado está dentro de uma faixa de valores específica. Caso a condição seja satisfeita, o programa executará a linha 3. Por outro lado, caso o resultado não seja o esperado, então o programa verificará o próximo condicional, na linha 4 e, caso ele seja verdadeiro, a linha 5 será executada. O mesmo ocorre para a verificação da linha 6. Por fim, se nenhuma das condições foi satisfeita, o programa executará o que é especificado no bloco else.

Loops com FOR e WHILE

Em algumas situações, é comum que uma mesma instrução (ou conjunto delas) precise ser executada várias vezes seguidas. Nesses casos, normalmente utilizamos um loop (ou laço de repetição), que permite executar um bloco de código repetidas vezes, enquanto uma dada condição é atendida.

Em Python, os loops são codificados por meio dos comandos for e while. O primeiro nos permite percorrer os itens de uma coleção e, para cada um deles, executar um bloco de código. Já o while, executa um conjunto de instruções várias vezes enquanto uma condição é atendida.

Na Listagem 2 temos um exemplo de uso do comando for.

  1 nomes = ['Pedro', 'João', 'Leticia']
  2 for n in nomes:
  3    print(n)
  4 >>> 
  5 Pedro
  6 João
  7 Leticia
  
Listagem 2.Comando for

A variável definida na linha 1 é uma lista inicializada com uma sequência de valores do tipo string. A instrução for percorre todos esses elementos, um por vez e, em cada caso, atribui o valor do item à variável n, que é impressa em seguida. O resultado, então, é a impressão de todos os nomes contidos na lista, como vemos nas linhas 5 a 7.

O comando while, por sua vez, faz com que um conjunto de instruções seja executado enquanto uma condição for atendida. Quando o resultado passa a ser falso, a execução é interrompida, saindo do loop, e passa para o próximo bloco.

No código a seguir, vemos um exemplo de uso do laço while, onde definimos a variável contador, iniciando com 0, e enquanto seu valor for menor que 5, executamos as instruções das linhas 3 e 4.

  01 contador = 0
  02 while contador < 5:
  03     print(contador)
  04     contador = contador + 1
  

Observe que na linha 4 incrementamos a variável contador, de forma que em algum momento seu valor ultrapasse 5. Quando isso for verificado na linha 2, o laço será interrompido. Caso a condição de parada nunca seja atingida, o loop será executado infinitamente, gerando problemas no programa.

Estruturas de controle, condicionais e de repetição, estão presentes na maioria das linguagens de programação e representam uma parte fundamental de cada uma delas. Sendo assim, é muito importante conhecer a sintaxe e o funcionamento dessas estruturas.

Clique aqui e veja mais exemplos criados pela comunidade DevMedia :)