Fundamentos Python 04: Estruturas Condicionais e Loops

Entrada e Saída de Dados

A função input() permite ao usuário fornecer dados ao programa, enquanto print() exibe informações na tela.


nome = input("Por favor, digite seu nome: ")
print(f"Olá, {nome}!")
# O programa aguardará o usuário digitar algo antes de continuar

É importante notar que os dados obtidos através do input() são tratados como strings por padrão. Para convertê-los para outros tipos de dados, é necessário fazer uma conversão explícita:


idade = int(input("Digite sua idade: "))
altura = float(input("Digite sua altura em metros: "))

Estruturas Condicionais

Em Python, a indentação define os blocos de código. Geralmente, usamos 4 espaços para cada nível de indentação. Códigos com mesma indentação pertencem ao mesmo bloco de execução.

Estrutura de Ramificação Simples


idade = int(input("Informe sua idade: "))
if idade >= 18:
    print("Você é maior de idade")
else:
    print("Você é menor de idade")

Estrutura de Ramificação Múltipla


nota = int(input("Digite sua nota final: "))

if nota >= 90:
    print("Excelente desempenho!")
elif nota >= 80:
    print("Bom trabalho!")
elif nota >= 70:
    print("Satisfatório!")
elif nota >= 60:
    print("Aprovado por pouco!")
else:
    print("Reprovado. Estude mais!")

Condições Múltiplas


nota_matematica = int(input("Digite sua nota em Matemática: "))
nota_portugues = int(input("Digite sua nota em Português: "))

if nota_matematica >= 70 and nota_portugues >= 70:
    print("Parabéns! Você passou em ambas as disciplinas")
elif nota_matematica < 70 and nota_portugues >= 70:
    print("Você passou em Português, mas precisa melhorar em Matemática")
elif nota_matematica >= 70 and nota_portugues < 70:
    print("Você passou em Matemática, mas precisa melhorar em Português")
else:
    print("Você precisa estudar mais ambas as disciplinas")

Condicais Aninhados


clima = "chuvoso"
dia = "sábado"

if dia == "sábado":
    if clima == "ensolarado":
        print("Dia perfeito para um piquenique!")
    else:
        print("Melhor ficar em casa e ler um livro")
else:
    print("Dia de trabalho normal")

Operador Ternário

O operador ternário permite escrever condições de forma concisa, mas pode tornar o código menos legível em casos complexos:


nota = int(input("Digite sua nota: "))
print("Aprovado") if nota >= 60 else print("Reprovado")

Estruturas de Repetição (Laços)

As estruturas de repetição permitem executar um bloco de código várias vezes. Python oferece dois tipos principais de laços: while e for.

Laco while

O laço while executa repetidamente enquanto uma condição for verdadeira. É útil quando não sabemos o número exato de repetições necessárias.


contador = 0
while contador < 5:
    print("Executando a iteração", contador)
    contador += 1

Laços while Aninhados

Quando um laço está dentro de outro, o laço externo executa uma vez para cada iteração completa do laço interno.


linhas = 3
colunas = 3

linha_atual = 0
while linha_atual < linhas:
    coluna_atual = 0
    while coluna_atual < colunas:
        print(f"({linha_atual}, {coluna_atual})")
        coluna_atual += 1
    linha_atual += 1

Laço for

O laço for é usado quando sabemos o número de repetições ou quando queremos iterar sobre elementos de uma sequência.


frutas = ["maçã", "banana", "cereja"]
for fruta in frutas:
    print(fruta)

Iterando sobre Diferentes Tipos de Dados

Strings:


mensagem = "Python"
for caractere in mensagem:
    print(caractere)

Listas:


numeros = [10, 20, 30, 40, 50]
for numero in numeros:
    print(numero)

Tuplas:


coordenadas = (10, 20, 30)
for ponto in coordenadas:
    print(ponto)

Conjuntos:


cores = {"vermelho", "verde", "azul"}
for cor in cores:
    print(cor)
# Note: conjuntos são não ordenados, então a ordem pode variar

Dicionários:


pessoa = {"nome": "João", "idade": 30, "cidade": "São Paulo"}

# Iterando sobre as chaves
for chave in pessoa:
    print(chave)

# Iterando sobre os valores
for valor in pessoa.values():
    print(valor)

# Iterando sobre pares chave-valor
for chave, valor in pessoa.items():
    print(f"{chave}: {valor}")

A função range()

A função range() gera sequências de números e é muito usada com laços for.

Formas de usar range():

range(n): Gera números de 0 a n-1


for i in range(5):
    print(i)
# Saída: 0, 1, 2, 3, 4

range(início, fim): Gera números do início ao fim-1


for i in range(2, 7):
    print(i)
# Saída: 2, 3, 4, 5, 6

range(início, fim, paso): Gera números do início ao fim-1 com o passo especificado


for i in range(1, 10, 2):
    print(i)
# Saída: 1, 3, 5, 7, 9

Laços for Aninhados

Assim como com os laços while, podemos aninhar laços for. É recomendado manter a aninhagem em no máximo dois níveis para manter o código legível.


for i in range(2):
    for j in range(3):
        print(f"i={i}, j={j}")

Comandos break e continue

break: Interrompe imediatamente o laço atual


for numero in range(10):
    if numero == 5:
        break
    print(numero)
# Saída: 0, 1, 2, 3, 4

continue: Pula para a próxima iteração do laço atual


for numero in range(10):
    if numero == 5:
        continue
    print(numero)
# Saída: 0, 1, 2, 3, 4, 6, 7, 8, 9

Resumo

Estruturas condicionais: Permitem controlar o fluxo do programa, executando diferentes blocos de código com base em condições.


if condição:
    # código a ser executado se a condição for verdadeira
elif outra_condição:
    # código a ser executado se a outra condição for verdadeira
else:
    # código a ser executado se nenhuma condição for verdadeira

Estruturas de repetição: Permitem executar blocos de código múltiplas vezes.

  • while: Repete anquanto uma condição for verdadeira
  • for: Itera sobre elementos de uma sequência ou sobre um intervalo de números

Controle de laços:

  • break: Interrompe o laço imediatamente
  • continue: Pula para a próxima iteração do laço

Tags: Python Condicionais loops controle-de-fluxo while

Publicado em 6-28 02:00