🐍 O que é Python e por que aprender?
Python é uma linguagem de programação de alto nível, interpretada, multiparadigma e de sintaxe limpa e altamente legível. Criada por Guido van Rossum em 1991, tornou-se a ferramenta padrão da indústria para automação corporativa, análise de dados, inteligência artificial, engenharia de software e desenvolvimento web.
💡 A Filosofia do Python (The Zen of Python)
Diferente de linguagens legadas que exigem códigos verbosos e complexos, o Python preza pela clareza: "Belo é melhor que feio. Explícito é melhor que implícito. Simples é melhor que complexo."
🛠️ Ambientes de Execução
- Google Colab / Jupyter Notebook: Ambiente em nuvem ideal para aprendizado rápido sem necessidade de instalação local.
- VS Code + Python 3: O ambiente profissional padrão para escrita de scripts, automações e projetos corporativos.
- REPL (Terminal Interativo): Modo rápido acionado ao digitar
pythonno terminal do sistema.
✍️ Regras Fundamentais de Sintaxe
- Indentação Obrigatória: Em Python, os blocos de código (como funções e loops) são definidos pelo recuo de 4 espaços (ou 1 Tab), e não por chaves
{}. - Case-Sensitive: A linguagem diferencia maiúsculas de minúsculas.
Nome,nomeeNOMEsão identificadores distintos. - Comentários: Linhas iniciadas com
#são ignoradas pelo interpretador. Blocos de documentação utilizam aspas triplas""".
💻 O Primeiro Script: Saída de Dados com print()
A função print() exibe informações no console ou terminal. Ela aceita múltiplos argumentos, separadores e formatações de fim de linha:
# Script de Boas-Vindas - CAPACITAR CODEMAR
print("==========================================")
print(" SISTEMA DE CAPACITAÇÃO E AUTOMAÇÃO")
print("==========================================")
print("Status:", "Ambiente Python 3 Configurado!", sep=" ")
print("Bem-vindo(a) ao treinamento oficial CODEMAR.")
🎯 Desafio Prático da Aula 01
Abra seu ambiente Python ou Colab e crie um script chamado boas_vindas_codemar.py que imprima um cabeçalho formatado com o nome da sua diretoria, o ano atual e a mensagem: "Iniciando jornada de automação em Python!".
🔢 Armazenando Dados em Memória (Variáveis)
Uma variável é um espaço na memória do computador nomeado para armazenar valores que podem ser lidos e alterados durante a execução do programa. Em Python, a alocação é dinâmica e não exige declaração explícita do tipo.
📦 Tipos de Dados Primitivos
str(String / Texto): Sequências de caracteres entre aspas simples ou duplas. Ex:nome = "Maricá"int(Inteiro): Números inteiros sem casas decimais. Ex:colaboradores = 150float(Ponto Flutuante): Números reais com casas decimais (utilizando ponto). Ex:orcamento = 4500.75bool(Booleano): Valores lógicosTrue(Verdadeiro) ouFalse(Falso). Ex:ativo = True
➕ Operadores Aritméticos
Python suporta todas as operações matemáticas fundamentais com sintaxe intuitiva:
- Adição (
+) · Subtração (-) · Multiplicação (*) · Divisão real (/) - Divisão Inteira (
//): Descarta as casas decimais. Ex:10 // 3resulta em3 - Módulo (
%): Retorna o resto da divisão. Ex:10 % 3resulta em1 - Potenciação (
**): Eleva a uma potência. Ex:2 ** 3resulta em8
📥 Entrada de Dados (input) e Conversão de Tipos (Casting)
A função input() sempre captura o dado como texto (str). Para efetuar cálculos com valores digitados pelo usuário, é obrigatório realizar a conversão (casting):
# Captura de dados de projeto corporativo
nome_projeto = input("Digite o nome do projeto: ")
horas_estimadas = int(input("Digite as horas estimadas: "))
custo_hora = float(input("Digite o custo por hora (R$): "))
# Processamento
custo_total = horas_estimadas * custo_hora
# Exibição com f-String (interpolação moderna)
print(f"\n--- Resumo do Projeto: {nome_projeto} ---")
print(f"Custo Total Estimado: R$ {custo_total:,.2f}")
🎯 Desafio Prático da Aula 02
Desenvolva um programa que solicite a taxa de conclusão de 3 módulos de um curso e calcule a média aritmética final do aluno, exibindo o resultado formatado com 1 casa decimal.
🔀 Tomada de Decisão no Código
As estruturas condicionais permitem que o programa tome caminhos de execução alternativos com base em condições lógicas que resultam em True ou False.
🔍 Operadores de Comparação
==Igual a |!=Diferente de>Maior que |<Menor que>=Maior ou igual |<=Menor ou igual
🛡️ Operadores Lógicos
and(E): RetornaTrueapenas se TODAS as condições forem verdadeiras.or(OU): RetornaTruese pelo menos UMA das condições for verdadeira.not(NÃO): Inverte o valor lógico da condição.
🏢 Exemplo Prático: Triagem de Elegibilidade para Capacitação
# Validador de Elegibilidade de Curso
horas_trabalhadas = 40
desempenho = 88.5
possui_pendencia = False
if desempenho >= 80.0 and not possui_pendencia:
print("✅ Status: APROVADO para bolsa de capacitação avançada!")
elif desempenho >= 60.0 and not possui_pendencia:
print("⚠️ Status: APROVADO para capacitação básica.")
else:
print("❌ Status: ELEGIBILIDADE PENDENTE. Procure o RH.")
🎯 Desafio Prático da Aula 03
Escreva um script para a CODEMAR que solicite a nota da avaliação final de um colaborador (0 a 100). Se a nota for >= 70, exiba "Aprovado com Certificado". Se for entre 50 e 69, exiba "Recuperação Solicitada". Caso contrário, exiba "Reprovado - Refazer Curso".
🔄 Automatizando Tarefas Repetitivas (Loops)
Os laços de repetição evitam a duplicação de código ao executar blocos de instruções múltiplas vezes automaticamente.
1️⃣ Laço for e a Função range()
Utilizado quando se sabe previamente o número de repetições ou ao iterar sobre coleções de itens:
# Iterando com range(início, fim_exclusivo, passo)
print("Gerando protocolo de auditoria:")
for i in range(1, 6):
print(f" Item #{i} verificado com sucesso.")
2️⃣ Laço while (Repetição Condicional)
Executa enquanto uma condição for verdadeira. Requer cuidado com o incremento para evitar loops infinitos:
tentativas = 0
max_tentativas = 3
while tentativas < max_tentativas:
senha = input("Digite a chave de segurança: ")
if senha == "CODEMAR2026":
print("🔓 Acesso liberado!")
break
tentativas += 1
print(f"Senha incorreta! Tentativas restantes: {max_tentativas - tentativas}")
if tentativas == max_tentativas:
print("🚨 Conta temporariamente bloqueada por segurança.")
🛑 Instruções de Controle: break e continue
break: Interrompe imediatamente a execução do laço.continue: Pula a iteração atual e passa diretamente para a próxima.
🎯 Desafio Prático da Aula 04
Crie um loop for que percorra os números de 1 a 20 e imprima apenas os números pares, sinalizando aqueles que são múltiplos de 10 com a tag [MARCO ALCANÇADO].
📦 Organizando Coleções Complexas de Dados
Em sistemas corporativos reais, raramente lidamos com dados isolados. O Python oferece estruturas integradas flexíveis e de alta performance.
1️⃣ Listas (list): Mutáveis e Ordenadas
Declaradas com colchetes []. Permitem adição, remoção e ordenação dinâmica:
diretorias = ["Presidência", "Planejamento", "Operações", "TI"]
# Métodos Principais de Listas
diretorias.append("Financeiro") # Adiciona no final
diretorias.insert(1, "Jurídico") # Insere em posição específica
diretorias.remove("Operações") # Remove pelo valor
print(f"Total de diretoria cadastradas: {len(diretorias)}")
print(f"Primeira diretoria: {diretorias[0]}")
2️⃣ Tuplas (tuple): Imutáveis e Protegidas
Declaradas com parênteses (). Seus valores não podem ser alterados após a criação, garantindo integridade de parâmetros de configuração:
CONFIG_SERVIDOR = ("192.168.1.100", 8080, "PRODUCTION")
# CONFIG_SERVIDOR[0] = "10.0.0.1" # Isso geraria um TypeError!
3️⃣ Dicionários (dict): Mapeamento Chave-Valor
Declarados com chaves {}. Permitem armazenar registros estruturados como em tabelas ou arquivos JSON:
colaborador = {
"matricula": "COD-9842",
"nome": "Mariana Oliveira",
"cargo": "Analista de Projetos",
"diretoria": "Planejamento",
"cursos_concluidos": ["Excel", "Python", "Compliance"]
}
# Acessando e Modificando Dados
print(f"Colaborador: {colaborador['nome']} | Cargo: {colaborador.get('cargo')}")
colaborador["cursos_concluidos"].append("Licitações")
print(f"Cursos atualizados: {len(colaborador['cursos_concluidos'])}")
🎯 Desafio Prático da Aula 05
Crie uma lista contendo 3 dicionários, onde cada dicionário representa um curso (com as chaves titulo, carga_horaria e vagas). Escreva um laço for que exiba o título e a carga horária de todos os cursos com mais de 30 vagas.
⚙️ Modularização com Funções (def)
Funções são blocos de código reutilizáveis projetados para realizar uma tarefa específica. Elas eliminam repetições, facilitam a manutenção e tornam o código profissional.
Anatomia Completa de uma Função Profissional
def analisar_desempenho(notas, pesos=None):
"""
Calcula a média ponderada de notas de avaliações.
:param notas: lista de números float
:param pesos: lista opcional de pesos para cada nota
:return: dict com a média calculada e status do aluno
"""
if not notas:
return {"erro": "Lista de notas vazia"}
if pesos and len(pesos) == len(notas):
media = sum(n * p for n, p in zip(notas, pesos)) / sum(pesos)
else:
media = sum(notas) / len(notas)
status = "Aprovado" if media >= 70.0 else "Em Avaliação"
return {"media": round(media, 2), "status": status}
🛡️ Tratamento de Exceções (try...except...finally)
Evite que seu script quebre abruptamente ao lidar com entradas inválidas ou falhas de sistema:
try:
divisao = 100 / int(input("Digite o divisor: "))
print(f"Resultado: {divisao}")
except ZeroDivisionError:
print("❌ Erro: Não é possível dividir por zero!")
except ValueError:
print("❌ Erro: Por favor, digite um número inteiro válido.")
finally:
print("ℹ️ Operação de cálculo finalizada.")
🚀 Projeto Integrador: Script Completo de Automação Corporativa
Abaixo temos um script prático completo que consolida todos os conceitos do curso em uma automação útil do dia a dia:
# Script de Processamento de Indicadores de Capacitação - CODEMAR
def gerar_relatorio_diretoria(nome_diretoria, dados_alunos):
print(f"\n==========================================")
print(f"📊 RELATÓRIO DE CAPACITAÇÃO - {nome_diretoria.upper()}")
print(f"==========================================")
total_alunos = len(dados_alunos)
aprovados = 0
soma_notas = 0
for aluno in dados_alunos:
nota = aluno.get("nota", 0)
soma_notas += nota
if nota >= 70:
aprovados += 1
status_symbol = "✅"
else:
status_symbol = "⚠️"
print(f"{status_symbol} {aluno['nome']} - Nota: {nota}")
media_geral = soma_notas / total_alunos if total_alunos > 0 else 0
taxa_aprovacao = (aprovados / total_alunos) * 100 if total_alunos > 0 else 0
print("\n--- RESUMO CONSOLIDADO ---")
print(f"Total de Alunos: {total_alunos}")
print(f"Média Geral da Diretoria: {media_geral:.1f}")
print(f"Taxa de Aprovação: {taxa_aprovacao:.1f}%")
print("==========================================\n")
# Dados de teste para execução
equipe_ti = [
{"nome": "Carlos Andrade", "nota": 85.0},
{"nome": "Ana Souza", "nota": 92.5},
{"nome": "Bruno Lima", "nota": 65.0},
{"nome": "Fernanda Costa", "nota": 78.0}
]
# Execução da automação
gerar_relatorio_diretoria("Diretoria de Tecnologia", equipe_ti)
🎯 Desafio Prático da Aula 06 (Final)
Modifique a função gerar_relatorio_diretoria acima para incluir o cálculo da maior e da menor nota da turma utilizando as funções nativas max() e min(), tratando potenciais erros de dados com um bloco try/except.
Avaliação Final de Python
Responda 15 questões técnicas sobre sintaxe, estruturas e automação com Python.
Você precisa de 70% de acertos para emitir seu certificado.