Introdução à programação usando Python – Parte II

Compartilhar

Continuação da introdução à programação usando a linguagem Python.

Continuação da introdução à programação usando a linguagem Python.


📝 Sinopse
Na Parte I desta série, exploramos os fundamentos da programação com Python: algoritmos, variáveis, tipos primitivos, operadores, entrada e saída de dados. Agora, na Parte II, avançamos para um dos pilares mais importantes da programação: o controle de fluxo. Você aprenderá a fazer seu programa tomar decisões com estruturas condicionais (if, elif, else), a repetir tarefas de forma inteligente com laços while e for, a dominar os comandos break, continue e pass, e a depurar seus programas no Google Colab. Com esses recursos, seus programas deixarão de ser sequências lineares e passarão a resolver problemas reais de forma dinâmica e eficiente.
Imagem de capa ilustrando estruturas de controle de fluxo em Python: condicionais, laços e depuração.
Figura 1 — Estruturas de controle de fluxo em Python. Fonte: elaborado pelo autor.
1. O que é Controle de Fluxo?

Nos programas que escrevemos na Parte I, as instruções eram executadas uma após a outra, da primeira à última, em ordem estritamente sequencial. Esse modelo, embora funcional para tarefas simples, é insuficiente para resolver a maioria dos problemas do mundo real. Para que um programa possa tomar decisões e repetir ações, precisamos de mecanismos chamados estruturas de controle de fluxo.

Conforme (MATTHES, 2019), o controle de fluxo é o que permite a um programa responder de forma diferente a situações diferentes, tornando-o dinâmico e adaptável. Existem três estruturas fundamentais de controle de fluxo, presentes em praticamente todas as linguagens de programação:

Estrutura Função Exemplo em Python
Sequência Instruções executadas na ordem em que aparecem Código linear (Parte I)
Seleção (Decisão) Executa blocos diferentes conforme uma condição if, elif, else
Repetição (Iteração) Repete um bloco de instruções enquanto uma condição for verdadeira while, for
💡 Definição
Controle de fluxo é o conjunto de mecanismos que determina a ordem em que as instruções de um programa são executadas. Por meio de condições e laços, o programa pode decidir o que executar e quantas vezes executar, em vez de simplesmente seguir uma sequência fixa (CORMEN et al., 2009).

2. Expressões Booleanas: A Base das Decisões

Antes de estudar as estruturas condicionais, é essencial compreender as expressões booleanas, pois são elas que determinam qual caminho o programa deve seguir. Uma expressão booleana é qualquer expressão que, ao ser avaliada, resulta em um valor True (verdadeiro) ou False (falso) (SWEIGART, 2020).

Na Parte I, conhecemos os operadores relacionais (==, !=, >, <, >=, <=) e os operadores lógicos (and, or, not). Esses operadores são os blocos fundamentais para construir expressões booleanas. Vamos aprofundar seu uso com exemplos mais elaborados:

Python — Expressões Booleanas
# Expressões Booleanas: a base das decisões

idade = 20
tem_carteira = True
saldo = 150.00

# Expressões simples
print(idade >= 18)              # True
print(saldo > 200)              # False

# Expressões compostas com operadores lógicos
pode_dirigir = idade >= 18 and tem_carteira
print("Pode dirigir?", pode_dirigir)  # True

pode_comprar = saldo >= 100 or tem_carteira
print("Pode comprar?", pode_comprar)  # True

# Operador 'in': verifica pertencimento
frutas = ["maçã", "banana", "laranja"]
print("banana" in frutas)        # True
print("uva" not in frutas)       # True

# Valores "truthy" e "falsy" em Python
print(bool(0))       # False (zero é falsy)
print(bool(42))      # True  (qualquer número diferente de zero)
print(bool(""))      # False (string vazia é falsy)
print(bool("Python")) # True  (string não vazia)
print(bool([]))      # False (lista vazia é falsy)
print(bool(None))    # False (None é falsy)
⚠ Truthy e Falsy
Em Python, todo valor pode ser interpretado como booleano. Os valores considerados falsy (equivalentes a False) são: 0, 0.0, "" (string vazia), [] (lista vazia), () (tupla vazia), {} (dicionário vazio) e None. Todos os demais valores são truthy (equivalentes a True). Esse comportamento é muito utilizado em condicionais para verificar se uma variável contém algum valor significativo (MATTHES, 2019).

3. Estruturas Condicionais: if, elif e else

A estrutura condicional é o mecanismo que permite ao programa tomar decisões. Com ela, diferentes blocos de código são executados conforme o resultado de uma expressão booleana. Em Python, a estrutura condicional é construída com as palavras reservadas if (se), elif (senão se) e else (senão) (MENEZES, 2019).

Figura 2 — Fluxograma de uma estrutura condicional if-elif-else. Fonte: elaborado pelo autor.
💡 Indentação obrigatória
Em Python, a indentação (recuo de 4 espaços) não é mera questão estética — ela é obrigatória e define quais instruções pertencem a cada bloco. Um bloco indentado após um if, elif ou else só será executado se a condição correspondente for verdadeira. Esquecer a indentação (ou usar indentação inconsistente) gera um IndentationError (PAIVA, 2021).
3.1 Condicional simples: if

A forma mais básica de decisão. O bloco de código indentado é executado apenas se a condição for verdadeira.

Python — Condicional Simples (if)
# Condicional simples: if
idade = int(input("Digite sua idade: "))

if idade >= 18:
    print("Você é maior de idade.")
    print("Pode acessar o sistema.")

print("Fim do programa.")  # Sempre executado
3.2 Condicional composta: if-else

Quando precisamos executar um bloco caso a condição seja verdadeira e outro bloco caso seja falsa, usamos if-else.

Python — Condicional Composta (if-else)
# Condicional composta: if-else
nota = float(input("Digite sua nota (0 a 10): "))

if nota >= 7.0:
    print("Parabéns! Você foi APROVADO(A).")
else:
    print("Infelizmente, você foi REPROVADO(A).")

print(f"Sua nota foi: {nota:.1f}")
3.3 Condicional encadeada: if-elif-else

Quando há múltiplas condições mutuamente exclusivas, usamos elif (contração de else if) para testar cada uma delas em sequência. O bloco else ao final é opcional e funciona como um "caso contrário" para todas as condições anteriores (SWEIGART, 2020).

Python — Condicional Encadeada (if-elif-else)
# Condicional encadeada: classificação de notas
nota = float(input("Digite sua nota (0 a 10): "))

if nota >= 9.0:
    conceito = "A (Excelente)"
elif nota >= 7.0:
    conceito = "B (Bom)"
elif nota >= 5.0:
    conceito = "C (Regular)"
elif nota >= 3.0:
    conceito = "D (Insuficiente)"
else:
    conceito = "E (Reprovado)"

print(f"Nota: {nota:.1f} → Conceito: {conceito}")
🔢 Como funciona a avaliação
Python avalia as condições de cima para baixo. Assim que encontra a primeira condição verdadeira, executa o bloco correspondente e pula todas as demais. Por isso, na estrutura acima, não é necessário escrever nota >= 7.0 and nota < 9.0 — se o programa chegou ao elif nota >= 7.0, é porque a nota já é menor que 9.0.

4. Condicionais Aninhadas e Compostas
4.1 Condicionais aninhadas

É possível colocar uma estrutura condicional dentro de outra. Isso é chamado de aninhamento (ou nesting). Embora seja uma técnica válida, o excesso de aninhamento torna o código difícil de ler e manter. De modo geral, recomenda-se não ultrapassar dois ou três níveis de profundidade (MENEZES, 2019).

Python — Condicionais Aninhadas
# Condicionais aninhadas: sistema de login simplificado
usuario = input("Usuário: ")
senha = input("Senha: ")

if usuario == "admin":
    if senha == "1234":
        print("Acesso concedido! Bem-vindo, administrador.")
    else:
        print("Senha incorreta.")
else:
    print("Usuário não encontrado.")
4.2 Condicionais compostas com operadores lógicos

Uma alternativa mais elegante ao aninhamento é combinar condições usando operadores lógicos (and, or, not). O exemplo anterior poderia ser reescrito de forma mais concisa:

Python — Condicionais Compostas
# Versão com operador lógico (mais concisa)
usuario = input("Usuário: ")
senha = input("Senha: ")

if usuario == "admin" and senha == "1234":
    print("Acesso concedido! Bem-vindo, administrador.")
elif usuario == "admin":
    print("Senha incorreta.")
else:
    print("Usuário não encontrado.")
4.3 Expressão condicional ternária

Python oferece uma sintaxe compacta para atribuições condicionais simples, conhecida como expressão ternária. Ela é útil quando o objetivo é atribuir um valor com base em uma única condição (PYTHON SOFTWARE FOUNDATION, 2024).

Python — Expressão Ternária
# Expressão condicional ternária
# Sintaxe: valor_se_verdadeiro if condição else valor_se_falso

idade = int(input("Idade: "))
status = "Maior de idade" if idade >= 18 else "Menor de idade"
print(status)

# Outro exemplo: par ou ímpar
numero = int(input("Número: "))
paridade = "par" if numero % 2 == 0 else "ímpar"
print(f"O número {numero} é {paridade}.")
🔢 Exemplo Prático: Calculadora Simples
Problema: Criar uma calculadora que lê dois números e uma operação (+, -, *, /) e exibe o resultado.
Python — Calculadora com if-elif-else
# Calculadora simples com condicionais
n1 = float(input("Primeiro número: "))
op = input("Operação (+, -, *, /): ")
n2 = float(input("Segundo número: "))

if op == "+":
    resultado = n1 + n2
elif op == "-":
    resultado = n1 - n2
elif op == "*":
    resultado = n1 * n2
elif op == "/":
    if n2 != 0:
        resultado = n1 / n2
    else:
        resultado = "ERRO: divisão por zero!"
else:
    resultado = "Operação inválida!"

print(f"Resultado: {resultado}")

5. Laço while: Repetição Indeterminada

O laço while (enquanto) é uma estrutura de repetição que executa um bloco de código enquanto uma condição for verdadeira. Ele é chamado de laço indeterminado porque, ao contrário do for, não sabemos necessariamente de antemão quantas vezes o bloco será repetido — a repetição depende de uma condição que é avaliada a cada iteração (MATTHES, 2019).

Fluxograma mostrando o funcionamento do laço while: teste de condição, execução do bloco e retorno ao teste.
Figura 3 — Fluxograma do laço de repetição while. Fonte: elaborado pelo autor.
Python — Laço while (básico)
# Laço while: contagem regressiva
contador = 5

while contador > 0:
    print(f"Contagem: {contador}")
    contador -= 1   # ESSENCIAL: atualizar a variável de controle

print("Lançar! 🚀")
▶ Saída esperada
Contagem: 5
Contagem: 4
Contagem: 3
Contagem: 2
Contagem: 1
Lançar! 🚀
⚠ Cuidado: Laço Infinito!
Se a condição do while nunca se tornar falsa, o programa entra em um laço infinito e nunca para de executar. Isso geralmente acontece quando o programador esquece de atualizar a variável de controle dentro do laço. No Google Colab, você pode interromper a execução clicando no botão ⬜ Parar (ou pressionando Ctrl + M + I) (SWEIGART, 2020).
Padrões comuns com while
Python — Padrões Comuns com while
# Padrão 1: Acumulador — somar números até o usuário digitar 0
soma = 0
numero = int(input("Digite um número (0 para sair): "))

while numero != 0:
    soma += numero
    numero = int(input("Digite um número (0 para sair): "))

print(f"Soma total: {soma}")

# ------------------------------------------------

# Padrão 2: Validação de entrada — garantir dado correto
idade = int(input("Digite sua idade (0 a 150): "))

while idade < 0 or idade > 150:
    print("Valor inválido! Tente novamente.")
    idade = int(input("Digite sua idade (0 a 150): "))

print(f"Idade registrada: {idade} anos.")

# ------------------------------------------------

# Padrão 3: Sentinela — repetir até uma condição de parada
print("=== Menu ===")
opcao = ""

while opcao != "3":
    print("1 - Jogar")
    print("2 - Configurações")
    print("3 - Sair")
    opcao = input("Escolha: ")

    if opcao == "1":
        print("Iniciando jogo...\n")
    elif opcao == "2":
        print("Abrindo configurações...\n")
    elif opcao == "3":
        print("Até logo!")
    else:
        print("Opção inválida!\n")

6. while e Depuração Inicial: Encontrando Erros

Os laços de repetição são uma das fontes mais comuns de erros em programas de iniciantes. Erros como laços infinitos, execução a mais ou a menos (erro off-by-one) e condições de parada incorretas são frequentes. Nesta seção, aprenderemos a identificar e corrigir esses erros por meio de técnicas simples de depuração — um tema que será expandido na seção 10 (SWEIGART, 2020).

6.1 Depuração com print() — o "print debugging"

A técnica mais simples (e surpreendentemente eficaz) de depuração é inserir chamadas print() dentro do laço para inspecionar o valor das variáveis a cada iteração.

Python — Depuração com print()
# Programa com BUG: deveria somar de 1 a 5, mas há um erro
soma = 0
i = 1

while i <= 5:
    soma += i
    print(f"[DEBUG] i={i}, soma={soma}")  # linha de depuração
    # ERRO: esquecemos de incrementar i!
    # i += 1   ← esta linha está faltando!

# Ao executar, o print de depuração mostraria:
# [DEBUG] i=1, soma=1
# [DEBUG] i=1, soma=2
# [DEBUG] i=1, soma=3   ← i nunca muda → laço infinito!

# --- Versão corrigida ---
soma = 0
i = 1

while i <= 5:
    soma += i
    print(f"[DEBUG] i={i}, soma={soma}")
    i += 1  # Agora i é incrementado corretamente

print(f"Soma final: {soma}")  # 15
6.2 O while-else

Python possui uma sintaxe exclusiva: o bloco else após um while. Esse bloco é executado apenas se o laço terminar normalmente (sem ser interrompido por break). É útil para detectar se uma busca foi bem-sucedida (PYTHON SOFTWARE FOUNDATION, 2024).

Python — while-else
# while-else: verificar se um número é primo
numero = int(input("Digite um número inteiro positivo: "))
divisor = 2

while divisor < numero:
    if numero % divisor == 0:
        print(f"{numero} NÃO é primo (divisível por {divisor}).")
        break
    divisor += 1
else:
    # Executado apenas se o while terminou sem break
    print(f"{numero} é primo!")

7. Laço for e range(): Repetição Determinada

O laço for em Python é uma estrutura de repetição determinada, projetada para iterar (percorrer) sobre os elementos de uma sequência — como uma lista, uma string, um intervalo numérico ou qualquer outro objeto iterável. Diferentemente do while, o for é ideal quando sabemos de antemão quantas vezes a repetição deve ocorrer ou quando queremos processar cada item de uma coleção (MATTHES, 2019).

7.1 Sintaxe básica do for
Python — Laço for (básico)
# Iterando sobre uma lista
frutas = ["maçã", "banana", "laranja", "uva"]

for fruta in frutas:
    print(f"Eu gosto de {fruta}!")

# Iterando sobre uma string (caractere por caractere)
palavra = "Python"

for letra in palavra:
    print(letra, end=" ")  # P y t h o n
print()  # Quebra de linha
7.2 A função range()

A função range() gera uma sequência de números inteiros e é a companheira mais frequente do for. Ela aceita até três argumentos: range(início, fim, passo) (PAIVA, 2021).

Forma Descrição Exemplo Sequência gerada
range(n) De 0 até n-1, passo 1 range(5) 0, 1, 2, 3, 4
range(a, b) De a até b-1, passo 1 range(2, 7) 2, 3, 4, 5, 6
range(a, b, p) De a até b-1, passo p range(0, 10, 2) 0, 2, 4, 6, 8
range(a, b, -p) De a até b+1, passo -p (decrescente) range(10, 0, -2) 10, 8, 6, 4, 2
⚠ Atenção: o limite superior é exclusivo!
O valor final informado no range() não é incluído na sequência. Assim, range(1, 6) gera os números 1, 2, 3, 4, 5 — mas não o 6. Esse é outro erro frequente entre iniciantes e é análogo ao conceito matemático de intervalo semiaberto [a, b).
Python — for com range()
# Repetir 5 vezes (range com 1 argumento)
for i in range(5):
    print(f"Iteração {i}")
# Saída: Iteração 0, Iteração 1, ..., Iteração 4

# Tabuada de um número (range com 2 argumentos)
n = int(input("Tabuada de: "))
for i in range(1, 11):
    print(f"{n} x {i} = {n * i}")

# Números pares de 0 a 20 (range com 3 argumentos)
print("Números pares de 0 a 20:")
for par in range(0, 21, 2):
    print(par, end=" ")  # 0 2 4 6 8 10 12 14 16 18 20
print()

# Contagem regressiva (passo negativo)
print("Contagem regressiva:")
for i in range(10, 0, -1):
    print(i, end=" ")
print("Lançar! 🚀")

8. Técnicas com for: enumerate, acumuladores e for-else
8.1 enumerate(): índice + valor

Quando precisamos do índice de cada elemento durante a iteração, usamos enumerate(). Essa função retorna pares (índice, valor) a cada iteração, eliminando a necessidade de manter um contador manualmente (PYTHON SOFTWARE FOUNDATION, 2024).

Python — enumerate()
# enumerate(): iterando com índice e valor
linguagens = ["Python", "Java", "C++", "JavaScript"]

for indice, nome in enumerate(linguagens):
    print(f"{indice + 1}. {nome}")

# Saída:
# 1. Python
# 2. Java
# 3. C++
# 4. JavaScript

# Também pode especificar o valor inicial do índice:
for i, nome in enumerate(linguagens, start=1):
    print(f"{i}. {nome}")
8.2 Padrões de acumulação com for
Python — Acumuladores com for
# Padrão: Acumulador — somar N números digitados pelo usuário
n = int(input("Quantos números deseja somar? "))
soma = 0

for i in range(1, n + 1):
    valor = float(input(f"Número {i}: "))
    soma += valor

print(f"Soma: {soma:.2f}")
print(f"Média: {soma / n:.2f}")

# ------------------------------------------------

# Padrão: Contador — contar pares em uma faixa
pares = 0
impares = 0

for num in range(1, 21):
    if num % 2 == 0:
        pares += 1
    else:
        impares += 1

print(f"De 1 a 20: {pares} pares e {impares} ímpares.")

# ------------------------------------------------

# Padrão: Maior e menor valor
n = int(input("Quantos números? "))
maior = None
menor = None

for i in range(n):
    valor = float(input(f"Valor {i + 1}: "))
    if maior is None or valor > maior:
        maior = valor
    if menor is None or valor < menor:
        menor = valor

print(f"Maior: {maior} | Menor: {menor}")
8.3 O for-else

Assim como o while, o for também pode ter um bloco else. Ele é executado quando o laço termina normalmente (sem break).

Python — for-else
# for-else: buscar um elemento em uma lista
nomes = ["Ana", "Bruno", "Carla", "Daniel"]
busca = input("Buscar nome: ")

for nome in nomes:
    if nome.lower() == busca.lower():
        print(f"'{nome}' encontrado na lista!")
        break
else:
    # Executado somente se o break NÃO foi acionado
    print(f"'{busca}' não foi encontrado.")

9. Controles de Fluxo: break, continue e pass

Python oferece três instruções especiais que alteram o comportamento normal de laços de repetição: break, continue e pass. Cada uma tem uma finalidade distinta e deve ser utilizada com critério (SWEIGART, 2020).

Infográfico comparativo entre break (interrompe o laço), continue (pula para a próxima iteração) e pass (não faz nada, apenas placeholder).
Figura 4 — Comparação entre break, continue e pass. Fonte: elaborado pelo autor.
Instrução Efeito Funciona em
break Interrompe o laço imediatamente e segue para a próxima instrução após o laço for, while
continue Pula o restante da iteração atual e volta ao início do laço para a próxima iteração for, while
pass Não faz absolutamente nada; serve como placeholder sintático Qualquer bloco
9.1 break — interrompendo o laço
Python — break
# break: encontrar o primeiro múltiplo de 7 entre 50 e 100
for num in range(50, 101):
    if num % 7 == 0:
        print(f"Primeiro múltiplo de 7: {num}")
        break  # Encerra o laço assim que encontra
# Saída: Primeiro múltiplo de 7: 56

# break com while: jogo de adivinhação
import random
secreto = random.randint(1, 20)
tentativas = 0

while True:  # Laço "infinito" controlado por break
    palpite = int(input("Adivinhe o número (1-20): "))
    tentativas += 1

    if palpite == secreto:
        print(f"Acertou em {tentativas} tentativa(s)!")
        break
    elif palpite < secreto:
        print("Muito baixo!")
    else:
        print("Muito alto!")
9.2 continue — pulando a iteração
Python — continue
# continue: imprimir apenas números ímpares de 1 a 10
for i in range(1, 11):
    if i % 2 == 0:
        continue  # Pula os pares
    print(i, end=" ")
# Saída: 1 3 5 7 9

print()

# continue: processar notas válidas e ignorar inválidas
total = 0
validas = 0

for i in range(5):
    entrada = input(f"Nota {i + 1}: ")

    if not entrada.replace(".", "", 1).isdigit():
        print("  → Ignorada (não é número).")
        continue

    nota = float(entrada)
    if nota < 0 or nota > 10:
        print("  → Ignorada (fora do intervalo 0-10).")
        continue

    total += nota
    validas += 1

if validas > 0:
    print(f"Média das notas válidas: {total / validas:.2f}")
else:
    print("Nenhuma nota válida foi digitada.")
9.3 pass — o placeholder silencioso

A instrução pass não executa nenhuma ação. Ela existe para servir como placeholder em blocos que ainda não foram implementados (por exemplo, durante o planejamento do código). Em Python, um bloco vazio gera erro de sintaxe; o pass resolve esse problema (MENEZES, 2019).

Python — pass
# pass: esqueleto de um programa (planejamento)
nota = float(input("Nota: "))

if nota >= 7:
    print("Aprovado!")
elif nota >= 5:
    pass  # TODO: implementar lógica de recuperação
else:
    pass  # TODO: implementar lógica de reprovação

# pass em um laço: ignorar certos valores silenciosamente
for i in range(10):
    if i % 3 == 0:
        pass  # Nenhuma ação especial para múltiplos de 3 (por enquanto)
    else:
        print(i, end=" ")
# Saída: 1 2 4 5 7 8
🐍 Resumo Visual
break → "Saia do laço agora!"
continue → "Pule esta iteração e vá para a próxima!"
pass → "Não faça nada aqui (por enquanto)."

10. Técnicas de Depuração no Google Colab

Depuração (ou debugging) é o processo de identificar, localizar e corrigir erros em um programa. O nome remonta à década de 1940, quando Grace Hopper encontrou uma mariposa (bug) causando problemas em um computador. Saber depurar é tão importante quanto saber programar — programadores experientes dedicam uma parcela significativa do seu tempo a essa atividade (SWEIGART, 2020).

10.1 Tipos de erro em Python

Antes de depurar, é essencial distinguir os três tipos de erro que podem ocorrer:

Tipo de Erro Quando Ocorre Exemplo
Erro de Sintaxe
SyntaxError
O código viola as regras gramaticais do Python; detectado antes da execução if x == 5 (falta :)
Erro de Execução
(Exceção)
O código está sintaticamente correto, mas falha durante a execução 10 / 0ZeroDivisionError
Erro de Lógica O programa executa sem erro, mas produz resultado incorreto Calcular média com n1 + n2 / 2 em vez de (n1 + n2) / 2
⚠ Nota sobre erros de lógica
Erros de lógica são os mais difíceis de encontrar porque o programa executa normalmente, sem mensagens de erro. O resultado simplesmente está errado. A depuração é a ferramenta principal para localizar esses erros (MATTHES, 2019).
10.2 Lendo mensagens de erro (traceback)

Quando ocorre uma exceção, Python exibe uma mensagem chamada traceback, que indica o arquivo, a linha e o tipo de erro. Aprender a ler o traceback é a habilidade mais importante de depuração (PAIVA, 2021).

Python — Lendo um Traceback
# Código com erro proposital
nome = "Maria"
idade = "25"  # Deveria ser int, mas é str

# A linha abaixo causará erro:
ano_nascimento = 2026 - idade

# Python exibirá algo como:
# ---------------------------------------------------------------------------
# TypeError                    Traceback (most recent call last)
# <ipython-input-1-...> in <cell line: 4>()
#       2 idade = "25"
# ----> 4 ano_nascimento = 2026 - idade  ← LINHA DO ERRO
#
# TypeError: unsupported operand type(s) for -: 'int' and 'str'
#            ↑ TIPO DO ERRO              ↑ DESCRIÇÃO DO PROBLEMA
💡 Como ler um traceback
1. Vá até a última linha — ali está o tipo de erro e uma descrição.
2. Suba até a seta (---->) — ela indica a linha exata que causou o erro.
3. Analise as variáveis e expressões naquela linha para entender o problema.
10.3 Exceções mais comuns
Exceção Causa Comum Exemplo
SyntaxError Código escrito incorretamente Falta de :, parênteses não fechados
IndentationError Indentação inconsistente ou ausente Mistura de tabs e espaços
NameError Variável usada antes de ser definida print(x) sem declarar x
TypeError Operação entre tipos incompatíveis "5" + 3
ValueError Valor inadequado para a operação int("abc")
ZeroDivisionError Divisão por zero 10 / 0
IndexError Índice fora dos limites de uma lista lista[10] quando a lista tem 3 itens
10.4 Técnicas de depuração no Colab

O Google Colab, por ser baseado em Jupyter Notebooks, oferece um ambiente interativo que facilita a depuração. A seguir, apresentamos as técnicas mais úteis para iniciantes (PYTHON SOFTWARE FOUNDATION, 2024):

Técnica 1: Print debugging (depuração com print)

Já vimos esta técnica na seção 6. Consiste em inserir chamadas print() estratégicas para exibir o valor de variáveis em pontos-chave do programa. Apesar de simples, é a técnica mais utilizada mesmo por programadores experientes.

Python — Print Debugging Avançado
# Dica: use f-strings com rótulos descritivos
# para tornar a saída de depuração mais legível

x = 10
y = 3
resultado = x ** y + 2 * x

# Depuração com f-string "auto-documentada" (Python 3.8+)
print(f"{x = }")          # x = 10
print(f"{y = }")          # y = 3
print(f"{resultado = }")  # resultado = 1020

# Verificando tipos durante a depuração
print(f"{type(x) = }")    # type(x) = <class 'int'>
Técnica 2: Execução célula a célula

O Colab permite dividir o código em células independentes. Isso é uma vantagem enorme para depuração: você pode executar cada parte do programa separadamente, verificando os resultados intermediários antes de prosseguir.

🔢 Estratégia recomendada
1. Divida o programa em células lógicas (entrada de dados, processamento, saída).
2. Execute uma célula de cada vez com Shift + Enter.
3. Após cada célula, verifique os valores das variáveis digitando o nome da variável em uma nova célula e executando-a (o Colab exibe o valor automaticamente).
4. Quando encontrar a célula problemática, isole a linha do erro.
Técnica 3: O depurador interativo (%debug e pdb)

Quando um erro ocorre em uma célula do Colab, você pode ativar o depurador interativo digitando %debug na célula seguinte. Isso abre uma sessão interativa onde é possível inspecionar variáveis, executar comandos e navegar pela pilha de execução (PYTHON SOFTWARE FOUNDATION, 2024).

Python — Depurador Interativo no Colab
# Célula 1: código com erro
numeros = [10, 20, 0, 5]
resultados = []

for n in numeros:
    resultados.append(100 / n)  # ZeroDivisionError quando n=0

# ------------------------------------------------
# Célula 2: ativar o depurador após o erro
%debug

# No prompt do depurador (ipdb>), digite:
#   p n         → mostra o valor de n (será 0)
#   p numeros   → mostra a lista completa
#   p resultados → mostra os resultados até o erro
#   q           → sai do depurador
Técnica 4: Depuração com breakpoints (pdb.set_trace)

Para inspecionar o programa em um ponto específico antes que o erro ocorra, use breakpoint() (Python 3.7+) ou import pdb; pdb.set_trace(). Quando a execução chegar nessa linha, o programa pausa e abre o depurador interativo.

Python — Breakpoints no Colab
# Usando breakpoint() para pausar a execução
def calcular_media(notas):
    soma = 0
    for nota in notas:
        soma += nota
        breakpoint()  # Pausa aqui a cada iteração
    return soma / len(notas)

notas = [8.5, 7.0, 9.2]
media = calcular_media(notas)

# No prompt do depurador (Pdb), comandos úteis:
#   n    → executa a próxima linha (next)
#   c    → continua a execução até o próximo breakpoint (continue)
#   p x  → exibe o valor da variável x (print)
#   l    → mostra o código ao redor da linha atual (list)
#   q    → encerra o depurador (quit)
Técnica 5: try-except — tratamento preventivo de exceções

Embora o tratamento completo de exceções seja tema para um próximo artigo, a estrutura try-except é uma ferramenta básica de depuração que todo iniciante deve conhecer. Ela permite capturar um erro e executar um bloco alternativo em vez de interromper o programa (MATTHES, 2019).

Python — try-except (introdução)
# try-except: capturando erros de forma elegante

# Sem try-except: o programa para se o usuário digitar texto
# idade = int(input("Idade: "))  # ValueError se digitar "abc"

# Com try-except: o programa trata o erro e continua
try:
    idade = int(input("Idade: "))
    print(f"Sua idade é {idade}.")
except ValueError:
    print("Erro: digite um número inteiro válido!")

# Combinando try-except com while para validação robusta
while True:
    try:
        nota = float(input("Digite sua nota (0-10): "))
        if 0 <= nota <= 10:
            break
        print("A nota deve estar entre 0 e 10.")
    except ValueError:
        print("Entrada inválida! Digite um número.")

print(f"Nota registrada: {nota}")
10.5 Atalhos úteis do Google Colab
Atalho Função
Shift + Enter Executar célula atual e avançar para a próxima
Ctrl + Enter Executar célula atual sem avançar
Ctrl + M + I Interromper execução (útil para laços infinitos)
Ctrl + M + . Reiniciar o runtime (limpa todas as variáveis)
Ctrl + M + A Inserir célula de código acima
Ctrl + M + B Inserir célula de código abaixo
Ctrl + Shift + H Abrir histórico de versões do notebook
🐍 Dica profissional
Quando estiver depurando no Colab, crie uma célula de rascunho ao lado do código problemático. Nela, teste expressões isoladas, verifique valores de variáveis e experimente soluções antes de modificar o código principal. Essa abordagem incremental é muito mais eficiente do que tentar corrigir tudo de uma vez.

Exemplo Integrador: Jogo de Adivinhação Completo

Para consolidar todos os conceitos desta Parte II — condicionais, laços while e for, break, continue e tratamento de exceções —, vamos construir um jogo de adivinhação mais robusto:

Python — Jogo de Adivinhação (Exemplo Integrador)
# ================================================
# Jogo de Adivinhação - Exemplo Integrador
# Conceitos: if/elif/else, while, for, break,
#            continue, try-except, f-strings
# ================================================
import random

# Configuração
MINIMO = 1
MAXIMO = 50
MAX_TENTATIVAS = 7

secreto = random.randint(MINIMO, MAXIMO)
tentativas = []
acertou = False

print(f"🎯 Adivinhe o número entre {MINIMO} e {MAXIMO}!")
print(f"Você tem {MAX_TENTATIVAS} tentativas.\n")

# Laço principal do jogo
for rodada in range(1, MAX_TENTATIVAS + 1):
    restantes = MAX_TENTATIVAS - rodada + 1
    print(f"--- Tentativa {rodada}/{MAX_TENTATIVAS} ---")

    # Validação de entrada com try-except e while
    while True:
        try:
            palpite = int(input(f"Seu palpite ({MINIMO}-{MAXIMO}): "))
            if palpite < MINIMO or palpite > MAXIMO:
                print(f"Fora do intervalo! Digite entre {MINIMO} e {MAXIMO}.")
                continue
            if palpite in tentativas:
                print("Você já tentou esse número! Tente outro.")
                continue
            break  # Entrada válida e não repetida
        except ValueError:
            print("Digite um número inteiro válido!")

    tentativas.append(palpite)

    # Verificar o palpite
    if palpite == secreto:
        acertou = True
        print(f"\n🎉 PARABÉNS! O número era {secreto}!")
        print(f"Você acertou em {rodada} tentativa(s)!")
        break
    elif palpite < secreto:
        dica = "⬆ Muito baixo!"
    else:
        dica = "⬇ Muito alto!"

    # Dica extra de proximidade
    diferenca = abs(palpite - secreto)
    if diferenca <= 3:
        temperatura = "🔥 Quente!"
    elif diferenca <= 10:
        temperatura = "😐 Morno."
    else:
        temperatura = "🧊 Frio!"

    print(f"{dica} {temperatura} (restam {restantes - 1})\n")

# Mensagem final (for-else)
if not acertou:
    print(f"\n😞 Suas tentativas acabaram! O número era {secreto}.")

# Histórico
print(f"\nHistórico de palpites: {tentativas}")

Conclusão

Nesta Parte II, avançamos de forma significativa no aprendizado de Python. Partimos das expressões booleanas — a base lógica de toda decisão computacional — e exploramos as estruturas condicionais (if, elif, else), que permitem ao programa reagir de maneira diferente a cada situação. Em seguida, dominamos os laços de repetição: o while, para repetições indeterminadas controladas por condição, e o for, para iterações determinadas sobre sequências e intervalos numéricos com range().

Aprendemos também os comandos break, continue e pass, que oferecem controle fino sobre o comportamento dos laços. Por fim, mergulhamos nas técnicas de depuração — desde o simples print() estratégico até o uso do depurador interativo (%debug) e do try-except — ferramentas indispensáveis para encontrar e corrigir erros no Google Colab.

Com o domínio das estruturas de controle de fluxo e das técnicas de depuração, seus programas agora podem tomar decisões, repetir tarefas, validar entradas e lidar com erros de forma elegante. O próximo passo natural é explorar as funções, que permitirão organizar o código em blocos reutilizáveis, e as estruturas de dados (listas, tuplas, dicionários), que ampliarão enormemente o repertório de problemas que você poderá resolver.

🚀 Continue Aprendendo!
Desafie-se: modifique o jogo de adivinhação para adicionar níveis de dificuldade, crie um programa que calcule o fatorial usando while e for, ou construa um validador de CPF. Quanto mais você pratica, mais natural a programação se torna. Como reforça (SWEIGART, 2020), a melhor forma de aprender a programar é programando!

Referências
CORMEN, T. H. et al. Introduction to algorithms. 3. ed. Cambridge: MIT Press, 2009. (Tradução brasileira: Algoritmos: Teoria e Prática. 3. ed. Rio de Janeiro: Elsevier, 2012.)
MATTHES, E. Curso Intensivo de Python: Uma Introdução Prática e Baseada em Projetos à Programação. 2. ed. São Paulo: Novatec, 2019.
MENEZES, N. N. C. Introdução à Programação com Python: Algoritmos e Lógica de Programação para Iniciantes. 3. ed. São Paulo: Novatec, 2019.
PAIVA, F. Introdução a Python. Natal: Editora IFRN, 2021. Disponível em: <https://memoria.ifrn.edu.br/bitstream/handle/1044/2090/EBOOK%20-%20INTRODU%C3%87%C3%83O%20A%20PYTHON%20%28EDITORA%20IFRN%29.pdf>. Acesso em: 12 mar. 2026.
PYTHON SOFTWARE FOUNDATION. Python Documentation. Disponível em: <https://docs.python.org/3/>. Acesso em: 12 mar. 2026.
SWEIGART, A. Automatize Tarefas Maçantes com Python: Programação Prática para Verdadeiros Iniciantes. 2. ed. São Paulo: Novatec, 2020.
Fonte:
Visto no Brasil Acadêmico

Comentários

BLOGGER

$show=mobile

Nuvem de Categorias


Coluna Gastroturismo
Nome

#existepesquisanobrasil,2,Abelha,3,Acessibilidade,25,Acessórios,2,Acidente,52,Acústica,16,Adestramento,5,Administração,45,Aerodinâmica,4,Aeronáutica,9,África,7,Agência Bori,1,Agência Brasil,25,Agência FAPESP,5,Agência Fiocruz,6,Agência Porvir,1,Agência Senado,2,Agência USP,5,Agnotologia,1,Agricultura,7,Agropecuária,4,AirBNB,1,Albert Einstein,1,Alcoolismo,9,Alemanha,10,Alemão,4,Alerta,2,Algoritmo,8,Alimento,1,Alzheimer,4,Amazon,5,Amazônia,5,América Latina,1,Análise Combinatória,1,Análise de Texto,2,Anatomia,8,Android,3,Angola,1,Animação,52,Animais de Estimação,6,Animal,2,Antropologia,14,Apicultura,9,App,9,Apple,5,Apresentação,4,aquário,1,Argentina,4,Armamento,1,Arqueologia,6,arquitetura,33,Arte,173,Astrobiologia,3,Astrofísica,4,Astronomia,36,Ativismo,35,Áudio,3,Audio FX,2,Áustria,1,Autismo,2,Auto-ajuda,10,Automobilismo,16,Automóvel,22,aventura,3,Aviação,5,Aviônica,8,Bahia,2,Balonismo,3,Banco Central,1,Banco de Dados,5,Beber e Dirigir,1,biblioteconomia,6,Bicicleta,1,Biografia,18,Biologia,176,Biologia Marinha,15,bioquímica,7,Biotecnologia,25,Bitcoin,2,Blog,29,Blogger,33,Boato,6,Bomba,1,Botânica,6,BRASA,1,BRASA Leads,1,Brasil,41,Brasília,17,BRIC,1,Browser,11,Bugs,3,CAD,3,Calor,2,Caltech,1,Câmera lenta,1,Campanha,47,Canadá,1,cardiologia,16,Carnaval,2,carreira,3,Cartografia,3,Casemods,1,Caso Isabella Nardoni,1,Caso Snowden,1,Ceará,1,Celebridades,6,celular,24,Células-Tronco,5,Cérebro,2,Charge,22,ChatGPT,2,China,23,Cibercultura,3,Ciclovia,1,Cidadania,40,Ciência,225,Cinema,70,Climatologia,3,Clip,1,Cliparts,1,Cloud computing,4,Coaching,12,Comédia,2,competência,2,Complemento de dois,1,Comportamento,277,Computação,95,Computação em grade,5,Computação forense,3,Computação Gráfica,140,Computação Móvel,1,Computação Quântica,1,Comunicação e Marketing,153,Concurso,2,Concurso Cultural de Natal,1,Concursos Público,2,Concursos Públicos,4,Conectômica,1,Conferência,1,Congresso em Foco,1,Conspiração,2,Consumidor,7,Consumismo,3,contabilidade,2,Contos,55,Copa do Mundo,26,Cordel,3,Coreia do Norte,1,Coreia do Sul,1,Corpo,2,Coruja,1,cosmética,3,Cosmologia,21,Covid-19,99,Crash Course,1,Criança,1,Criatividade,4,Crime,49,Crime Digital,9,crise,11,crise econômica,8,Croácia,1,crônica,6,crônicas,5,Cronologia,1,CSS,3,Cuba,4,Culinária,8,Cultura,18,Curiosidades,113,custos fixo,1,custos variáveis,1,Dale Dougherty,2,Dança,6,DAO,1,Darwin,12,Davos,1,Debate,3,Decoração,1,demência,1,Demografia,3,Denúncia,12,Dermatologia,6,Desastre Natural,14,Descoberta,2,Desenho instrucional,19,Desenvolvimento de jogos,17,Desenvolvimento Pessoal,1,Design,33,Design Instrucional,19,Destaque,9,Dia das Mães,1,Dia do professor,1,diabetes,6,Dicas,66,Didática,1,Dieta,4,Dinamarca,1,diplomacia,3,Direito,188,Direito Eleitoral,2,Direito Internacional,30,Direito Militar,1,Direito Trabalhista,1,Direito Tributário,2,Direitos Autorais,4,Direitos Humanos,39,Disney,8,Distrito Federal,4,Documentário,72,Doutorado,1,download,3,Drogas,7,Drone,3,Dubai,1,e-Book,2,e-governo,2,EBC,1,Ecologia,89,Economia,119,Editoração Eletrônica,1,Educação,423,Educação a Distância,189,Educação Corporativa,6,educação física,19,Educação sexual,6,Efeitos Sonoros,4,Egiptologia,2,Eleições,30,Eleições 2014,12,Eleições 2018,5,Eleições 2020,2,Eleições 2022,1,Eletricidade,10,eletrônica,4,Elon Musk,1,Em Operários,1,Embrapa,4,empreendedorismo,7,enciclopédia,1,endocrinologia,6,Enem,3,Energia,17,Energia Alternativa,18,Energia Nuclear,12,Enfermagem,1,Engenharia,70,Engenharia Agrícola,1,Engenharia Civil,6,Engenharia de materiais,18,Engenharia de Software,11,Engenharia Genética,32,Engenharia Mecânica,2,Enretenimento,1,Ensino a Distância,11,Ensino Superior,5,Entomologia,7,Entretenimento,47,Entrevista,91,Entrevista.,1,Epidemiologia,70,Epistemologia,1,Equador,1,Escândalo,6,Escritório,1,ESMPU,1,Espaço,74,Espanha,1,Espanhol,2,Espeleologia,1,Espetáculo,8,Espionagem,20,Esporte,44,Estação,1,Estágio,2,Estatísticas,40,Estética,1,estrutura de dados,1,Ética,32,EUA,20,Europa,2,Evento,59,Evolução,5,Exercícios físicos,2,Exobiologia,3,experiência,43,fábulas,3,Facebook,20,Família,1,Farmacologia,25,Favo,1,Feminismo,2,Férias,1,Ferramentas,15,FIFA,2,Filantropia,4,Filmes,20,Filosofia,50,Finep,2,Finlândia,3,Fintech,1,Firefox,1,Física,119,Física Quântica,4,Fisiologia,10,Fisioterapia,6,Flagrante,2,Flamengo,1,Folclore,3,Fome,1,Fomento,1,Fonética,1,Fonoaudiologia,7,Fotografia,46,Fotos em 360 graus,6,França,10,Francês,4,Frase,3,Fraude,5,Freeware,75,Futebol,38,Futurologia,95,gadget,87,gadgets,1,Gafe,2,Gamificação,8,Gastroenterologia,5,Gastronomia,9,Gastroturismo,7,Geek,2,Genética,46,Geofísica,1,Geografia,57,Geologia,12,Geometria,6,geopolítica,22,Gerenciamento do Tempo,2,Geriatria,13,Gestão de Competências,3,Gestão de Configuração,2,Gestão de Pessoas,11,Gestão de Projetos,23,Gestão do conhecimento,7,Ginecologia,3,Glass,1,Golpe de Estado,1,Google,81,Governo,4,GPS,1,Gradiente,1,gramática,15,Gravidez,1,Grécia,1,Grécia Antiga,2,Guerra,43,Guerra Civil,2,Guinness,1,H2,2,Haiti,3,hardware,39,Henry Ford,1,História,217,HIV,1,Hololens,2,homenagem,46,Horologia,1,HPV,1,HTML,6,Humor,213,Humor Negro,9,IBGE,3,IBM,4,ICIJ,2,Idioma,57,IESB,2,IHC,8,ilo,29,ilusão,36,ilusionismo,5,Imagem 3D,16,Imagens,7,Imagine Cup,1,Império Romano,8,Imprensa,34,Impressora 3D,22,Imunologia,8,Incêndio,2,Inclusão digital,8,Índia,4,Índios,1,Infectologia,36,Infográfico,57,Informática,38,Inglaterra,4,Inglês,26,Inovação,206,Inspiração,1,Inteligência Artificial,168,intercâmbio,1,Interface,205,Interfaces Hápticas,24,Internacional,23,Internacionalização da Amazônia,3,Internet,166,Internet das Coisas,2,Inundação,2,Invenção,20,Inventos,6,iPad,1,IPEA,1,iphone,3,Irã,3,Iraque,1,Israel,7,Itália,2,Japão,5,Java,2,Java.,2,jogos,12,Jogos de Tabuleiro,5,Jogos educativos,20,Jogos Olímpicos,10,Jornalismo,72,José Saramago,1,Justiça,4,Ken Robinson,1,Kinect,10,Le Monde Diplomatique Brasil,9,Le Monde Diplomatique Brasil,1,Letras,2,Lexicografia,5,Liderança,4,Life Hacking,20,línguas estrangeiras,3,Linguística,11,Literatura,58,Livro,73,Lógica,26,Logística,4,Loterias,4,Lua,1,Maçonaria,4,Malásia,2,Malvinas,2,Malware,1,Mapa,96,Mário Sérgio Conti,1,Marte,4,Mastologia,1,Matemática,84,Matemática Financeira,1,maternidade,1,MEC,1,Mecânica,8,Mecânica dos Fluidos,2,Mecatrônica,47,Medalha Fields,1,Medicina,568,Medicina Esportiva,2,Medicina Veterinária,4,Meio Ambiente,131,Mel,1,melanoma,1,Memória,5,memorização,4,Mente,4,Mercado de Trabalho,85,mercosul,1,Mestrado,4,Metaverso,2,meteorologia,12,Metodologia Científica,60,México,1,Microbiologia,4,Microsoft,16,Mídia Social,61,Militar,16,Mineralogia,1,Mistério,3,MIT,15,Mitologia,2,Mobilidade,1,Mobilidade Urbana,9,Moçambique,1,Moda,1,MonaVie,1,Montanhismo,1,Moodle,7,Mossad,1,Motivação,1,Movimento Maker,3,MSF,1,Mudança Climática,30,Mulher,4,Multimídia,14,museu,16,Música,90,MVC,1,Nanotecnologia,37,Nasa,19,Natação,2,Natal,17,Natureza,2,Nefrologia,1,Negócios,31,Netflix,1,Neurociência,97,Neurologia,81,Nicolelis,1,Nordeste,2,Noruega,2,notícias,8,Novidades,18,Novo Enem,2,Números,2,Nutrição,75,Obama,1,Obesidade,11,Observatório da Imprensa,27,Obstetrícia,4,OCDE,1,Oceanografia,7,odontologia,10,Offshore Leaks,2,oftalmologia,11,Olimpíadas,9,oncologia,50,ONU,10,OpenAI,1,Opinião,107,Óptica,17,Oracle,1,Oriente Médio,5,Orkut,2,Ornitologia,1,ortografia,3,Ortopedia,4,Ótica,9,Otorrinolaringologia,2,Oxfam,3,Pacifismo,1,Paginadores,1,paleontologia,4,Palestina,1,Paquistão,1,Pará,2,Paraguai,2,parkinson,2,Passeio virtual,1,Patinação,1,Paulo Freire,1,Pedagogia,8,Pediatria,6,Pensamentos,3,performance,3,Periférico,1,Pesca,2,Pesquisa,267,Petição,1,Petrobrás,10,Petróleo,13,Photoshop,5,Pirataria,7,planilha de custo,1,Playstation 3,2,Plebiscito,3,Pneumologia,1,Podcast,7,Poesia,29,Política,323,Polônia,1,Portugal,9,português,20,Pós-graduação,2,Pré-sal,5,Prêmio Nobel,7,primatologia,1,Primeira Guerra Mundial,2,privacidade,25,produtividade,8,professor Hamilton Alves,2,Programa Gratuito,4,Programação,66,Projeção Mapeada,1,Projeto Truco,2,Promoção,1,Propaganda,5,Psicanálise,1,Psicologia,286,Psicologia Animal,26,Psiquiatria,17,Pública,14,publicidade,19,Publieditorial,6,PUC Minas,1,Quadrinhos,11,Quads,5,Qualidade,3,Qualidade de Vida,12,química,34,REA,2,realidade aumentada,47,realidade diminuída,2,Realidade Misturada,5,Realidade Virtual,50,Reconhecimento de imagem,12,Reconhecimento de voz,3,Recorde,1,Recoverit,1,Recuperar vídeos,1,Redação,1,redes,12,Referência,5,Referendo,1,Reforma Política,3,Reino Unido,2,Relacionamento,2,Relações Internacionais,41,Religião,44,Responsabilidade Social,4,Retrospectiva,1,Review,15,Rio 2016,6,Rio de Janeiro,3,Rio Grande do Norte,1,Rio Grande do Sul,1,Robert Oppenheimer,3,Robô,49,robótica,52,Roda Viva,49,Roma,6,roteiro,1,RSA,1,RTP,1,Rússia,6,Samsung,1,Sanitarismo,5,Santa Catarina,1,São Paulo,5,Saúde,625,Savant,1,Segunda Guerra Mundial,26,Segurança,128,Segurança da Informação,69,Seleção Natural,3,Séries,2,serviço,1,Serviço Online,1,Sexologia,2,sexualidade,5,Show,7,SIGGRAPH,1,Simulação,37,Singularity University,1,Síria,3,Sismologia,2,Sistema operacional,4,Sistemas de Numeração,1,Sites de Busca,22,Sociedade,5,Sociologia,55,Software,34,Software Livre,24,Sol,2,Sono,4,Sony,3,SOPA,2,Star Wars,1,Startup,2,Steve Cutts,1,Steve Jobs,1,Suécia,3,Sugestão de presentes,67,Sun,1,supercomputadores,2,Sustentabilidade,5,Tabagismo,6,Taiwan,1,Talento precoce,1,Taxas Equivalentes,1,Taxidermia,1,Teatro,27,Técnicas de Estudo,3,Tecnologia,601,Tecnologia da Informação,30,TED,448,TED-Ed,48,TedMed,2,TEDx,5,TEDx Rio+20,1,TEDxAmazônia,1,TEDxAsaSul,1,Telefonia,61,Televisão,45,Temas,1,Tempo,2,Tendência,1,Tendências,13,Teologia,6,teoria das supercordas,1,Teoria dos Jogos,1,Terremoto,9,Terrorismo,15,Tesla,1,Testes,17,Thaís Victer,2,ticker,2,TikTok,1,Tipologia,8,Tomada de Decisão,1,tradução,5,Trânsito,12,transporte,59,Tributo,3,Trigonometria,1,Tubarão,2,Tunísia,1,Turismo,30,Tutorial,23,Twitter,10,Uber,7,Ucrânia,11,UFC,1,UFES,1,UFG,2,UFMG,1,ufologia,5,UFRJ,3,UFSC,1,UNB,1,UNESCO,1,Unicamp,4,UNIFESP,1,UNIP,1,universidade,6,Universidade Corporativa,1,Universidade da Califórnica,1,Universidade da Geórgia,1,Universidade da Pensilvânia,1,Universidade de Brasília,1,Universidade de Cambridge,2,Universidade de Chicago,1,Universidade de Columbia,1,Universidade de Michigan,1,Universidade de Princeton,1,Universidade de Rochester,1,Universidade de Washington,3,University College London,1,Urbanismo,26,Urologia,2,URSS,1,User Experience,1,USP,11,Utilidade Pública,4,Utilitário,3,Vale,1,Vaticano,1,Veículo Autônomo,9,Venezuela,1,Ventriloquismo,2,Verão,1,vestibular,3,Vestimenta,1,Vida Digital,7,Vida Moderna,18,Vida Selvagem,10,Videogame,119,Vídeos,990,Vídeos 360,1,Vietnã,1,Violência,5,Vírus,18,Visão Computacional,10,Vôlei,1,Vulcanologia,8,Watergate Política,1,WCIT 2016,2,WCIT 2017,1,Web,1,Web 2.0,29,Web Application,161,Web Semântica,2,Web Seminar,1,webdesign,13,Webinar,2,widget,2,WikiLeaks,37,Wikipedia,4,Windows,5,Xadrez,2,YouTube,6,Zika,1,Zimbábue,1,Zoologia,59,
ltr
item
Brasil Acadêmico: Introdução à programação usando Python – Parte II
Introdução à programação usando Python – Parte II
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlcfftw0L9ihmmZR2eUHjBZtQW5nT5OcjakoXmjv0Biqn7j3ZWEviphnFXptJmzmmv9yc5I-s7UN0WdJEDaCZTuQgMPzcJKLHN-ISFSEIyulzMTF1tHwixFRZpTCiaCbMzt02oQ2PoEr_nW6jyeztTGhK396tLMUWnhxTO0YuYhyphenhyphenGWO92traI_DhVzQ2Q/w640-h360/PythonFluxo00.jpg
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlcfftw0L9ihmmZR2eUHjBZtQW5nT5OcjakoXmjv0Biqn7j3ZWEviphnFXptJmzmmv9yc5I-s7UN0WdJEDaCZTuQgMPzcJKLHN-ISFSEIyulzMTF1tHwixFRZpTCiaCbMzt02oQ2PoEr_nW6jyeztTGhK396tLMUWnhxTO0YuYhyphenhyphenGWO92traI_DhVzQ2Q/s72-w640-c-h360/PythonFluxo00.jpg
Brasil Acadêmico
http://blog.brasilacademico.com/2026/03/introducao-programacao-usando-python_26.html
http://blog.brasilacademico.com/
http://blog.brasilacademico.com/
http://blog.brasilacademico.com/2026/03/introducao-programacao-usando-python_26.html
true
3049085869098582068
UTF-8
Todos os posts carregados Nenhum post encontrado Ver todos Saiba mais Responder Cancelar resposta Apagar Por Início Páginas POSTS Ver todos Especialmente para você Categoria Arquivo Busca Todos os posts Nenhum post coincide com sua busca Início Domingo Segunda Terça Quarta Quinta Sexta Sábado Dom Seg Ter Qua Qui Sex Sáb Janeiro Fevereiro Março Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro Jan Fev Mar Abr Maio Jun Jul Ago Set Out Nov Dez Agora 1 minuto atrás $$1$$ minutos atrás 1 hora atrás $$1$$ horas atrás Ontem $$1$$ dias atrás $$1$$ semanas atrás Mais de 5 semanas atrás Seguidores Seguir Conteúdo PREMIUM fechado Passo 1: Compartilhar com a rede social Passo 2: Clique no link da sua rede social Copiar todo código Selecionar todo código Todos os código copiados para a memória Não posso copiar o código / textos, favor teclar [CTRL]+[C] (ou CMD+C no Mac) para copiar Tabela de Conteúdo