Python foi criada por Guido van Rossum e lançada em 1991. O nome é uma homenagem ao grupo de comédia Monty Python. Guido queria uma linguagem que fosse fácil de ler, quase como pseudocódigo em inglês.
Ao contrário de C ou Java, Python não é compilada — ela é interpretada linha a linha. Você escreve e roda imediatamente. Desvantagem: performance. Vantagem: velocidade de desenvolvimento.
# Em Java: int idade = 22;
# Em Python:
idade = 22 O interpretador descobre o tipo pelo valor. Isso acelera o desenvolvimento mas exige atenção.
Python suporta procedural, orientada a objetos e funcional. Neste curso focaremos em OO.
Nos primórdios, tudo era escrito de forma procedural — uma sequência de instruções. O problema aparece quando o sistema cresce.
nome_cliente_1 = "João"
saldo_cliente_1 = 1000
nome_cliente_2 = "Maria"
saldo_cliente_2 = 500 class ContaBancaria:
def __init__(self, nome, cpf, saldo):
self.nome = nome
self.saldo = saldo
def sacar(self, valor):
if valor <= self.saldo:
self.saldo -= valor Os dados de João vivem dentro de joao. O molde é um só.
Uma variável é um nome que aponta para um valor na memória. Em Python, você não precisa declarar o tipo antecipadamente.
nome = "Ana" # str
idade = 22 # int
altura = 1.68 # float
ativo = True # bool Erro clássico de iniciantes: esquecer de converter.
idade = int(input("Sua idade: ")) # correto: converter! print(f"Olá, {nome}! Você tem {idade} anos.")
print(f"Total: R$ {49.9 * 3:.2f}") # 2 casas decimais Funções resolvem o problema da repetição. Escreve uma vez, usa várias.
def saudacao(nome):
print(f"Olá, {nome}!") def calcular():
resultado = 42 # local
return resultado
print(resultado) # ERRO Quando uma função vive dentro de uma classe, ela se torna um método.
Os dados ficam protegidos. O mundo externo só acessa o que você deixar (via métodos).
Analogia: Um controle remoto. Você aperta o botão, mas não vê como o sinal infravermelho é gerado por dentro.
Você reaproveita código e especializa o comportamento.
Analogia: Filho herda características dos pais, mas tem sua própria personalidade.
Objetos diferentes respondem ao mesmo método de formas diferentes.
Analogia: O botão 'play' no celular faz coisas diferentes no YouTube, Spotify ou Netflix.
Você define o "o quê" sem se preocupar com o "como".
Analogia: Um mapa de metrô mostra só o que você precisa saber pra chegar ao destino.
if idade >= 18 and possui_carteira:
print("Pode dirigir") x = 10 # atribuição
if x == 10: # comparação Sempre prefira elif para manter o código 'flat' e legível.
Programação Orientada a Objetos com Python
Tecnologia em Análise e Desenvolvimento de Sistemas
agenda de hoje
A disciplina, o professor, como funciona o curso, as avaliações e o projeto final.
Uma atividade em grupo para entender o que é POO antes de ver qualquer código.
Configurar o ambiente, revisar os fundamentos da linguagem e fazer o primeiro exercício.
sobre a disciplina
| item | detalhe |
|---|---|
| Carga horária | 120 horas · 30 aulas de 4h |
| Período | 01/04 a 17/07 de 2026 |
| 1ª Avaliação (VA) | 03/06 · prova prática |
| 2ª Avaliação (VA) | 14/07 · prova prática |
| Projeto final | Semana de 06 a 17/07 · em grupo |
| Linguagem | Python |
quem vai dar essa aula
Engenheiro de Software · +10 anos de experiência
• Desenvolvedor front-end na Humanerds (fábrica de software canadense) — projetos nos EUA, Canadá e Reino Unido
• Stack: React, Next.js, WordPress, PHP, AWS, Cloudflare e mais um monte de coisa!
• Bacharel em Engenharia de Computação pela UniEVANGÉLICA
• Pós-graduando em Inteligência Artificial e Computacional na UFV
• Trajetória diversa: vendas, gestão, política e tecnologia — incluindo estágio internacional no Reino Unido
♥ Casado com a Nathália, Pai do João Paulo 💕
Vive: ♟ boardgames, ☕ café, 🎞 vinis
dinâmica de grupo
Se apresente com: seu nome, sua idade, onde trabalha, por que escolheu esse curso, e me traga uma coisa — pode ser física ou não — que te representa de alguma forma. Pode ser celular, carro, tênis, cachorro - qualquer coisa.
Cor, tamanho, marca, modelo... como você descreveria essa coisa para alguém que nunca viu?
O que você faz com ela no dia a dia? Ou o que ela faz por você?
reveal
O celular que você escolheu
As características que você listou
marca = "Samsung"
bateria = 80
cor = "preto" As ações que você listou
ligar()
tirar_foto()
carregar() motivação
Imagine um programa com 3.000 linhas onde tudo são variáveis soltas e funções espalhadas.
fundamentos teoria
Proteger dados internos e controlar acesso
Reaproveitar código de classe-pai
Mesma ação, comportamentos diferentes
Mostrar essencial, esconder complexidade
contexto
Escreve e roda na hora — sem compilação
Você não declara o tipo — Python descobre pelo valor
Procedural, orientada a objetos e funcional
ambiente de desenvolvimento
python.org/downloads → baixar o instalador → marcar "Add to PATH" durante a instalação
code.visualstudio.com → baixar e instalar normalmente
Ícone de extensões → pesquisar "Python" → instalar a da Microsoft
Criar ola.py → digitar print("Olá, mundo!") → rodar com ▶
fundamentos python
Em Python você não precisa declarar o tipo — ele é definido pelo valor.
# Tipos básicos
nome = "Ana" # str
idade = 22 # int
altura = 1.68 # float
ativo = True # bool
# f-string
print(f"Olá, {nome}! Você tem {idade} anos.")
# input() sempre retorna str — converter!
idade = int(input("Sua idade: ")) fundamentos python
Funções são blocos de código reutilizáveis. Defina uma vez, use várias.
def saudacao(nome):
print(f"Olá, {nome}!")
def soma(a, b):
return a + b
saudacao("turma") # Olá, turma!
resultado = soma(3, 7)
print(resultado) # 10 fundamentos python
Tomando decisões com if, elif e else.
nota = float(input("Digite sua nota: "))
if nota >= 7:
print("Aprovado!")
elif nota >= 5:
print("Recuperação")
else:
print("Reprovado")
# Tratar divisão por zero
if b != 0:
print(10 / b)
else:
print("Não é possível dividir por zero!") exercício
Pede dois números, exibe soma, subtração, multiplicação e divisão. Trata divisão por zero.
Usa funções para cada operação. Menu de escolha. Loop até o usuário digitar "sair".
Organiza tudo dentro de uma classe Calculadora. Spoiler do que vem na aula 2.
exercício · nível 1
Pedir o primeiro número ao usuário
Pedir o segundo número ao usuário
Exibir o resultado da soma
Exibir o resultado da subtração
Exibir o resultado da multiplicação
Exibir a divisão — se o segundo número for zero, mostrar mensagem de erro
💾<strong>Dica:</strong> use <code>float(input(...))</code> para aceitar decimais e <code>f"..."</code> para formatar a saída.
correção · nível 1
print("=== Calculadora ===")
a = float(input("Primeiro número: "))
b = float(input("Segundo número: "))
print(f"Soma: {a + b}")
print(f"Subtração: {a - b}")
print(f"Multiplicação: {a * b}")
if b != 0:
print(f"Divisão: {a / b:.2f}")
else:
print("Divisão: impossível dividir por zero!") spoiler · nível 3 · aula 2
class Calculadora:
def somar(self, a, b):
return a + b
def dividir(self, a, b):
if b == 0:
return "Erro: divisão por zero"
return a / b
calc = Calculadora()
print(calc.somar(10, 5))
print(calc.dividir(10, 0)) fechamento
para casa
Só com o que vimos hoje. Faça o máximo que conseguir e anote suas dúvidas para a aula 2.
Exercícios: #1, #2, #3, #4
Exercícios: #5, #6, #7, #8
Exercícios: #9, #10, #11, #12
Exercícios: #13, #14, #15
exercícios para casa · nível fácil
Crie variáveis com seu nome, idade e cidade natal. Exiba uma frase de apresentação completa usando f-string.
Exemplo de saída: Olá! Meu nome é Ana, tenho 22 anos e moro em Anápolis.
Peça a idade do usuário em anos e exiba quantos meses de vida ele tem.
Peça um número inteiro e exiba o dobro e o triplo.
Peça uma temperatura em Celsius e converta para Fahrenheit.
Fórmula: F = C × 1.8 + 32
exercícios para casa · nível médio
Peça um número inteiro e informe se é par ou ímpar.
Dica: use o operador % (resto da divisão). Se n % 2 == 0, o número é par.
Peça dois números e informe qual é o maior. Trate o caso em que são iguais.
Peça a idade do usuário e classifique de acordo com a faixa etária:
• Criança: 0 a 12 anos
• Adolescente: 13 a 17 anos
• Adulto: 18 a 59 anos
• Idoso: 60 anos ou mais
Peça o nome do aluno e duas notas. Calcule a média e informe a situação:
• Aprovado: média maior ou igual a 7
• Recuperação: média entre 5 e 6.9
• Reprovado: média menor que 5
exercícios para casa · nível difícil
Crie uma função chamada saudacao(nome, periodo) que receba o nome da pessoa e o período do dia (manhã, tarde ou noite) e retorne uma saudação personalizada.
Exemplo: saudacao("João", "tarde") → "Boa tarde, João!"
Crie quatro funções separadas: somar(a, b), subtrair(a, b), multiplicar(a, b) e dividir(a, b).
A função dividir deve retornar uma mensagem de erro caso b seja zero, em vez de travar o programa.
Crie uma função chamada verificar_senha(senha) que retorne True se a senha tiver 8 ou mais caracteres, e False caso contrário.
Peça uma senha ao usuário e exiba se ela é válida ou fraca, informando quantos caracteres foram digitados.
Crie duas funções:
• calcular_imc(peso, altura): retorna o IMC (peso dividido pela altura ao quadrado)
• classificar_imc(imc): retorna a classificação (Abaixo < 18.5, Normal 18.5-24.9, Sobrepeso 25-29.9, Obesidade >= 30)
exercícios para casa · nível avançado
Crie uma função chamada tabuada(numero) que imprima a tabuada completa de 1 a 10 desse número. Use um loop for com range(1, 11).
Crie funções de conversão:
• km_para_milhas: × 0.621371
• kg_para_libras: × 2.20462
• celsius_para_fahrenheit: × 1.8 + 32
Exiba um menu e use if/elif para a escolha.
Crie uma função pode_ser_triangulo(a, b, c): a soma de quaisquer dois lados deve ser maior que o terceiro. Se válido, classifique: Equilátero, Isósceles ou Escaleno.
para casa · importante
GitHub é onde você vai entregar todos os trabalhos, projetos e exercícios desta disciplina.
Acesse github.com e crie uma conta gratuita. Use um nome de usuário profissional.
Assista o curso rápido sugerido abaixo (30 min) para entender os primeiros passos.
Todas as entregas serão feitas via GitHub. Comece agora para não ficar para trás.
💾📺 Curso gratuito de GitHub
Assistir no YouTubeAtenção: ⚠️ Atenção: Todas as entregas de código, projetos e exercícios serão feitas via GitHub. Comece agora para não ficar para trás.
Vamos transformar a dinâmica de hoje em código real. A calculadora vira uma classe — e vai fazer muito mais sentido.