Fluxo de Controle em Python

Fluxo de Controle em Python

Este artigo explica o fluxo de controle em Python.

YouTube Video

Instrução If no Python

A instrução if no Python é uma sintaxe para ramificação condicional. É usada para executar um bloco de código se uma condição específica for avaliada como True (verdadeiro).

Sintaxe Básica

A instrução if no Python segue basicamente a estrutura abaixo.

1x = 10
2
3if x > 5: # Check if the condition(x > 5) is True
4    # If the condition is True, execute this code block
5    print("x is greater than 5")

Neste exemplo, "x é maior que 5" será exibido se a variável x for maior que 5.

Instrução else

Usar else após uma instrução if permite especificar o código a ser executado quando a condição for falsa.

1x = 3
2
3if x > 5:
4    print("x is greater than 5")
5else:
6    print("x is less than or equal to 5")

Neste exemplo, o resultado será "x é menor ou igual a 5".

Instrução elif

Se você precisar verificar várias condições, pode usar elif, que significa "else if".

1x = 5
2
3if x > 5:
4    print("x is greater than 5")
5elif x == 5:
6    print("x is equal to 5")
7else:
8    print("x is less than 5")

Neste exemplo, "x é igual a 5" será exibido.

Notas

  • É necessário um dois-pontos (:) após if, elif ou else.
  • O bloco de código executado quando uma condição é verdadeira precisa ser indentado. No Python, a indentação padrão geralmente é de 4 espaços, mas outros números de espaços também são aceitáveis, desde que você seja consistente.
  • Você pode usar qualquer expressão que seja avaliada como um valor booleano como condição. Isso significa que você pode usar expressões condicionais combinadas com operadores de comparação ou lógicos.

Dominar a instrução if do Python permite controlar o fluxo de execução do programa de forma flexível.

Ramificação Condicional Múltipla no Python

Existem várias maneiras de implementar uma funcionalidade semelhante ao switch em Python, semelhante à de outras linguagens. No Python, é comum usar instruções if-elif-else ou dicionários para criar estruturas semelhantes a uma instrução switch.

Método 1: Declaração if-elif-else

A maneira mais simples é usar a declaração if-elif-else para ramificação condicional.

 1def switch_example(value):
 2    if value == 1:
 3        return "Value is one"
 4    elif value == 2:
 5        return "Value is two"
 6    elif value == 3:
 7        return "Value is three"
 8    else:
 9        return "Unknown value"
10
11print(switch_example(1))  # Output: Value is one
12print(switch_example(4))  # Output: Unknown value

Método 2: Usando Dicionários

Ao associar funções ou valores a um dicionário, é possível criar uma estrutura semelhante a uma declaração switch. Isso é conveniente quando você deseja realizar diferentes operações para valores específicos.

 1def case_one():
 2    return "Value is one"
 3
 4def case_two():
 5    return "Value is two"
 6
 7def case_default():
 8    return "Unknown value"
 9
10def switch_example(value):
11    switch_dict = {
12        1: case_one,
13        2: case_two
14    }
15
16    # Use get() method to retrieve the corresponding function from the dictionary
17    # If the value is not found in the dictionary, use case_default as a fallback
18    return switch_dict.get(value, case_default)()
19
20print(switch_example(1))  # Output: Value is one
21print(switch_example(3))  # Output: Unknown value

Método 3: Declaração match (Python 3.10 e posterior)

A declaração match foi introduzida no Python 3.10. É uma sintaxe de correspondência de padrões que oferece uma funcionalidade semelhante a uma declaração switch.

 1def switch_example(value):
 2    match value:
 3        case 1:
 4            return "Value is one"
 5        case 2:
 6            return "Value is two"
 7        case 3:
 8            return "Value is three"
 9        case _:
10            return "Unknown value"
11
12print(switch_example(1))  # Output: Value is one
13print(switch_example(4))  # Output: Unknown value

Resumo

  • Declaração if-elif-else: Simples e adaptável a muitos casos.
  • Dicionários: Use associações de funções ou valores para permitir ramificações eficientes.
  • Declaração match: Permite ramificações mais intuitivas no Python 3.10 e posterior. Mais próximo de uma declaração switch.

Laços for no Python

A declaração for do Python é usada para iterar sobre cada elemento de um objeto iterável, como uma lista, string ou dicionário. A sintaxe básica de uma declaração for é a seguinte:.

1# Loop through each item in the iterable
2for variable in iterable:
3    # Execute this block of code for each item in the iterable
4    code_to_execute

Aqui estão alguns exemplos específicos:.

Exemplo Usando uma Lista

1fruits = ["apple", "banana", "cherry"]
2for fruit in fruits:
3    print(fruit)

Este código chama a função print para cada elemento da lista fruits, exibindo o nome de cada fruta.

Exemplo Usando range()

A função range() gera números inteiros dentro de um intervalo especificado, sendo útil para iterações numéricas.

1for i in range(5):
2    print(i)

range(5) gera números inteiros de 0 a 4. Neste caso, 0, 1, 2, 3, 4 será exibido sequencialmente.

Exemplo Usando um Dicionário

No caso de dicionários, as chaves são iteradas por padrão, mas você também pode recuperar pares chave-valor.

1person = {"name": "Alice", "age": 25}
2for key in person:
3    print(key, person[key])

Alternativamente, use o método items() para recuperar simultaneamente as chaves e os valores.

1person = {"name": "Alice", "age": 25}
2for key, value in person.items():
3    print(key, value)

Laço for Aninhado

Também é possível aninhar laços for para realizar processos de iteração complexos.

1matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
2for row in matrix:
3    for num in row:
4        print(num)

Este código itera por cada linha da lista matrix e exibe sequencialmente os números de cada linha.

continue para pular uma iteração e break para terminar um laço

Usar o continue dentro de um laço for irá pular a iteração atual e passar para a próxima. Além disso, usar break encerrará completamente o laço.

1for i in range(10):
2    if i == 5:
3        continue
4    if i == 8:
5        break
6    print(i)

Neste exemplo, o laço é pulado quando i é 5 e termina quando i é 8. Assim, a saída será 0, 1, 2, 3, 4, 6, 7.

O loop for do Python é altamente flexível e pode ser usado em uma variedade de cenários. Dependendo do tipo de processamento iterativo que você deseja realizar, ele pode ser usado em combinação com listas, dicionários, strings e range().

Laço while no Python

No Python, o laço while é uma estrutura de controle usada para executar repetidamente o código dentro do bloco enquanto a condição permanecer como True. A sintaxe básica do laço while é a seguinte:.

1while condition:
2    # This block of code will be executed repeatedly as long as the condition is true
3    statement1
4    statement2
5    ...

Exemplo:

No exemplo a seguir, um laço while é usado para exibir os números de 1 a 5.

1i = 1
2while i <= 5:
3    print(i)
4    i += 1

Este código funciona da seguinte maneira.

  • Comece com i igual a 1, imprima i enquanto for menor ou igual a 5 e incremente i em 1 a cada vez.

Nota:

Você precisa ter em mente os seguintes pontos ao usar a declaração while.

  1. Cuidado com loops infinitos

    • Se a condição em um loop while for sempre True, isso resultará em um loop infinito. Operações apropriadas devem ser realizadas para alterar a condição; caso contrário, o programa não será interrompido.
  2. Usando break e continue:

    • break é usado quando você quer sair do loop antes do final.
    • continue pula a iteração atual e inicia a próxima. Tenha cuidado, pois condições inadequadas de loop podem resultar em um loop infinito.

Exemplo de break:

1i = 1
2while i <= 5:
3    if i == 3:
4        break  # Exit the loop when i becomes 3
5    print(i)
6    i += 1
  • Neste caso, após a saída de 1 e 2, o loop termina quando i se torna 3.

Exemplo de continue:

1i = 0
2while i < 5:
3    i += 1
4    if i == 3:
5        # Skip the print statement and move to the next loop iteration when i is 3
6        continue
7    print(i)
  • Neste caso, a saída é pulada apenas para 3, resultando em 1, 2, 4, 5.
  • Ao incrementar o valor de i no início do loop, o contador avança mesmo se continue for executado, evitando um loop infinito.

Você pode acompanhar o artigo acima usando o Visual Studio Code em nosso canal do YouTube. Por favor, confira também o canal do YouTube.

YouTube Video