Controle de Fluxo em Python

Classificação das Estruturas de Controle

1.1 Estrutura Sequencial:

Execução linear do código, instrução por enstrução, na ordem em que aparecem.

1.2 Estrutura Condicional:

Permite a tomada de decisão com base em condições booleaans, direcionando o fluxo de execução.

Condicinoal simples (if)

Se a condição for verdadeira, o bloco indentado é executado.

pontuacao = 88
if pontuacao > 80:
    print('Desempenho bom')

Condicional com alternativa (if-else)

Oferece dois caminhos: um para condição verdadeira e outro para falsa.

idade = 17
if idade >= 18:
    print('Maior de idade')
else:
    print('Menor de idade')

Condicional múltipla (if-elif-else)

Permite avaliar várias condições em sequência.

temperatura = int(input('Informe a temperatura em graus Celsius: '))
if temperatura < 0:
    print('Temperatura negativa, muito frio')
elif 0 <= temperatura < 20:
    print('Temperatura amena')
elif 20 <= temperatura < 35:
    print('Temperatura agradável')
else:
    print('Temperatura elevada, muito quente')

Estruturas de Repetição

2.1 Laço While:

Repete um bloco de código enquanto uma condição permanece verdadeira.

while condicao:
    codigo_do_bloco
    # O bloco é executado repetidamente até que a condição se torne falsa.

Uso de continue e break

O comando continue interrompe a iteração atual e avança para a próxima. O comando break encerra completamente o laço.

tentativas = 0
while True:
    usuario = input("Digite seu usuário: ")
    senha = input("Digite sua senha: ")
    if usuario == "admin" and senha == "secure123":
        print("Acesso concedido")
        break
    else:
        print("Credenciais inválidas. Tente novamente.")
        tentativas += 1
        if tentativas >= 3:
            print("Muitas tentativas falhas. Sessão encerrada.")
            break

Uso de Flag (Bandeira)

Uma variável booleana pode controlar a execução do laço.

contador = 0
ativo = True
while ativo:
    if contador == 4:
        print('Ignorando o valor 4')
        contador += 1
    elif contador == 8:
        print('Atingiu o valor 8, encerrando o laço')
        ativo = False
    else:
        print(contador)
        contador += 1

Exercício com While: Jogo de Adivinhação

Dado um número secreto, o usuário deve tentar adivinhar. O programa fornece dicas e limita a 3 tentativas, com opção para reiniciar.

numero_secreto = 42
erros_consecutivos = 0
continuar_jogo = True

while continuar_jogo:
    palpite = int(input('Adivinhe o número entre 1 e 100: '))
    if palpite == numero_secreto:
        print('Parabéns! Você acertou!')
        break
    else:
        if palpite > numero_secreto:
            print('O palpite é alto demais.')
        else:
            print('O palpite é baixo demais.')
        erros_consecutivos += 1
        if erros_consecutivos == 3:
            opcao = input('Você errou 3 vezes. Deseja tentar novamente? (s/n): ')
            if opcao.lower() == 's':
                erros_consecutivos = 0
                print('Novas 3 tentativas disponíveis.')
            else:
                print('Jogo encerrado. O número era:', numero_secreto)
                continuar_jogo = False

2.2 Laço For:

Itera sobre elementos de uma sequência, como listas ou intervalos gerados por range.

Função range:

# Gerando números de 0 a 4
for i in range(5):
    print(i)

# Gerando números de 3 a 7
for j in range(3, 8):
    print(j)

# Gerando números pares de 0 a 8 (passo 2)
for k in range(0, 10, 2):
    print(k)

Ao iterar sobre um dicionário, o for retorna as chaves por padrão.

Expressão Ternária

Uma forma concisa de atribuir valores com base em uma condição.

a = 15
b = 20
# Estrutura condicional tradicional
if a > b:
    resultado = a
else:
    resultado = b
print(resultado)

# Expressão ternária equivalente
resultado = a if a > b else b
print(resultado)

Sintaxe geral: valor_verdadeiro if condicao else valor_falso

Em contextos como tuplas ou dicionários, valores booleanos podem ser mapeados para números ou outros tipos.

# Mapeamento de booleano para número
numero = 1 if True else 0  # Resultado: 1

# Mapeamento de booleano para string
status = "ativo" if True else "inativo"  # Resultado: "ativo"

Tags: Python Conditional Statements While Loops For Loops Ternary Operator

Publicado em 6-12 01:35 por Thomas