230 exercícios encontrados
Olá, mundo!
Escreva um programa que exiba a mensagem "Olá, mundo!" na tela.
Saudação personalizada
Peça o nome do usuário e exiba: "Olá, [nome]! Bem-vindo ao nosso programa!"
Soma de dois números
Peça dois números inteiros ao usuário e exiba a soma deles.
Tipos de dados
Crie variáveis dos tipos int, float, str e bool e exiba cada uma com seu tipo usando type().
Operações matemáticas
Peça dois números e exiba: soma, subtração, multiplicação, divisão, divisão inteira, módulo e potência.
Conversor de temperatura
Peça uma temperatura em Celsius e converta para Fahrenheit. Fórmula: F = C * 9/5 + 32
Área do retângulo
Peça a largura e altura de um retângulo e calcule sua área e perímetro.
Troco do caixa
Peça o valor de um produto e o valor pago pelo cliente. Calcule e exiba o troco.
Média de três notas
Peça três notas de um aluno e calcule a média aritmética.
Apresentação pessoal
Peça nome, idade e cidade do usuário e exiba uma apresentação formatada usando f-string.
Conversor de moeda
Peça a cotação do dólar e um valor em reais. Converta para dólar e exiba o resultado formatado.
Salário com desconto
Peça o salário bruto de um funcionário. Calcule e exiba: INSS (11%), IR (15%) e salário líquido.
Conta de energia
Peça o consumo em kWh e o preço por kWh. Calcule o valor da conta com taxa de 12% de impostos.
Velocidade média
Peça a distância em km e o tempo em horas. Calcule a velocidade média em km/h e em m/s.
IMC simples
Peça peso (kg) e altura (m) e calcule o IMC. Apenas exiba o valor sem classificação.
Aluguel de carro
Peça a quantidade de dias alugados e os km rodados. Calcule o total: R$90/dia + R$0.20/km.
Conversor de tempo
Peça uma quantidade de segundos e converta para horas, minutos e segundos restantes.
Preço com desconto
Peça o preço original e o percentual de desconto. Exiba o valor do desconto e o preço final.
Calculadora de viagem
Peça a distância da viagem (km), consumo do carro (km/l) e preço do combustível. Calcule o gasto total.
Folha de pagamento
Peça nome, horas trabalhadas e valor por hora. Calcule e exiba o salário bruto com uma apresentação formatada.
Equação do segundo grau
Peça os coeficientes a, b e c de uma equação do 2º grau e calcule o delta. Exiba apenas o valor do delta.
Conversão de bases
Peça um número inteiro e exiba sua representação em binário, octal e hexadecimal usando bin(), oct() e hex().
Índice de reajuste
Peça o salário atual e o novo salário após reajuste. Calcule o percentual de aumento e o valor do reajuste.
Cálculo de combustível
Peça preço do etanol e da gasolina. Calcule a relação etanol/gasolina e recomende o mais vantajoso (etanol vale a pena se a relação for menor que 0.7).
Juros compostos
Peça o capital inicial, taxa de juros mensal (%) e número de meses. Calcule o montante final com juros compostos. Fórmula: M = C * (1 + i)^n
Divisão de conta
Peça o valor total de uma conta de restaurante, o número de pessoas e o percentual de gorjeta. Calcule o total com gorjeta e o valor por pessoa.
Redução de vida por cigarro
Peça quantos cigarros por dia a pessoa fuma e há quantos anos fuma. Cada cigarro reduz 11 minutos de vida. Calcule e exiba a redução total em dias.
Parcelamento no cartão
Peça o valor de um produto, o número de parcelas e a taxa de juros mensal. Calcule o valor total pago e cada parcela usando juros simples.
Custo de pintura
Peça largura e altura de uma parede, o rendimento da tinta (m²/litro) e o preço por litro. Calcule quantos litros e o custo total. Considere 2 demãos de tinta.
Viagem econômica
Você vai viajar de carro. Peça: distância (km), consumo urbano (km/l), consumo estrada (km/l), percentual de trecho urbano e preço do combustível. Calcule o gasto total considerando os dois consumos.
Par ou ímpar
Peça um número inteiro e diga se ele é par ou ímpar.
Maior de idade
Peça a idade de uma pessoa e diga se ela é maior ou menor de idade.
Positivo ou negativo
Peça um número e diga se ele é positivo, negativo ou zero.
Aprovado ou reprovado
Peça a nota de um aluno e diga se está aprovado (nota >= 7) ou reprovado.
Maior entre dois
Peça dois números e diga qual é o maior ou se são iguais.
Pode votar?
Peça a idade e diga se o voto é proibido (< 16), facultativo (16-17 ou >= 70) ou obrigatório (18-69).
Vogal ou consoante
Peça uma letra e diga se é vogal ou consoante.
Desconto simples
Peça o valor de uma compra. Se for maior que R$100, aplique 10% de desconto. Exiba o valor final.
Calculadora simples
Peça dois números e um operador (+, -, *, /). Realize a operação e exiba o resultado.
Triângulo válido
Peça três lados e diga se formam um triângulo válido. Um triângulo é válido se cada lado é menor que a soma dos outros dois.
Situação do aluno
Peça três notas, calcule a média e diga: Aprovado (>= 7), Recuperação (>= 4) ou Reprovado (< 4).
Classificação do IMC
Peça peso e altura, calcule o IMC e exiba a classificação: Abaixo do peso (< 18.5), Normal (18.5-24.9), Sobrepeso (25-29.9), Obesidade (>= 30).
Desconto progressivo
Peça o valor de uma compra e aplique desconto progressivo: até R$100 sem desconto, R$100-R$500 desconto de 10%, acima de R$500 desconto de 20%.
Ano bissexto
Peça um ano e diga se é bissexto. Regra: divisível por 4, exceto se divisível por 100, a menos que também seja divisível por 400.
Saudação por horário
Peça a hora atual (0-23) e exiba a saudação correta: Bom dia (0-11), Boa tarde (12-17), Boa noite (18-23). Se inválida, mostre erro.
Peça uma temperatura e a unidade de origem (C, F ou K). Peça a unidade destino e converta. Trate unidade inválida.
Aumento salarial
Peça o salário e aplique aumento conforme a faixa: até R$1500 → 15%, R$1500-R$2500 → 10%, acima → 5%. Exiba o novo salário.
Tipo de triângulo
Peça três lados, valide se formam triângulo e classifique: Equilátero (3 lados iguais), Isósceles (2 iguais) ou Escaleno (todos diferentes).
Sistema de login simples
Defina um usuário e senha fixos no código. Peça usuário e senha ao usuário e diga se o login foi bem-sucedido.
Calculadora de frete
Peça o peso do pacote (kg) e o estado de destino (SP, RJ, outros). Calcule o frete: SP R$5/kg, RJ R$8/kg, outros R$12/kg. Frete grátis acima de R$100.
Empréstimo bancário
Peça salário, valor do empréstimo e prazo em meses. A parcela não pode exceder 30% do salário. Calcule a parcela e diga se foi aprovado.
Pedra papel tesoura
Peça a jogada do usuário e gere uma jogada aleatória para o computador. Determine o vencedor usando condicionais.
Validador de senha
Peça uma senha e valide: mínimo 8 caracteres, pelo menos um número, pelo menos uma letra maiúscula. Exiba mensagem específica para cada falha.
Tabela de IR
Peça o salário bruto e calcule o IR conforme a tabela progressiva: isento até R$1903.98, 7.5% até R$2826.65, 15% até R$3751.05, 22.5% até R$4664.68, 27.5% acima.
Jogo de adivinhação sem loop
Gere um número aleatório entre 1 e 10. Dê ao usuário 3 tentativas sequenciais usando apenas condicionais aninhadas. Informe se acertou ou errou em cada tentativa.
Simulador de caixa eletrônico
Peça saldo e valor do saque. Valide: saldo suficiente, valor múltiplo de 50, valor máximo de R$1000 por saque. Exiba mensagem para cada erro.
Classificador de produto
Peça nome, preço e quantidade. Classifique como Crítico (< 5), Alerta (5-20), Normal (> 20). Se preço > R$1000 e estoque < 10, marque Prioritário.
Sistema de pontuação
Acerto vale 10 pts, erro desconta 5 pts, passar vale 0. Peça 5 respostas (s/n/p) e calcule pontuação. Classifique: Ouro (>=40), Prata (>=20), Bronze (>=0), Eliminado (<0).
Aluguel de temporada
Peça tipo (casa/apto), quartos e temporada (alta/baixa). Calcule diária com regras combinadas. Desconto de 15% para 7+ dias.
Verificador de CPF
Peça um CPF (11 dígitos). Verifique o tamanho, se não são todos iguais e calcule os dígitos verificadores. Diga se é válido ou inválido.
Contagem crescente
Exiba os números de 1 a 10 usando um loop for.
Contagem regressiva
Exiba uma contagem regressiva de 10 até 1 usando for.
Tabuada
Peça um número e exiba sua tabuada de 1 a 10.
Soma de 1 a N
Peça um número N e calcule a soma de todos os números de 1 até N usando for.
Números pares
Exiba todos os números pares de 2 até 20 usando while.
Repetir mensagem
Peça uma mensagem e um número N. Exiba a mensagem N vezes usando for.
Somar até zero
Peça números ao usuário até que ele digite 0. Exiba a soma total.
Fatorial
Peça um número N e calcule seu fatorial usando for.
Maior número da sequência
Peça 5 números ao usuário usando for e exiba o maior deles.
Contar pares e ímpares
Peça 10 números ao usuário e conte quantos são pares e quantos são ímpares.
Jogo de adivinhação
O computador sorteia um número entre 1 e 100. O usuário tenta adivinhar. A cada erro, diga alto ou baixo. Continue até acertar e mostre o número de tentativas.
Média da turma
Peça o número de alunos e as notas de cada um. Calcule e exiba a média da turma, a maior e a menor nota.
Sequência de Fibonacci
Peça um número N e exiba os N primeiros termos da sequência de Fibonacci.
Número primo
Peça um número e diga se ele é primo ou não usando for.
Soma dos dígitos
Peça um número inteiro e calcule a soma dos seus dígitos usando for.
Tabuada completa
Exiba a tabuada de 1 a 5, mostrando todas as multiplicações de 1 a 10 para cada número. Use loops aninhados.
Validar entrada com while
Peça uma nota entre 0 e 10. Se inválida, peça novamente até receber um valor válido. Exiba a nota confirmada.
Menu interativo
Crie um menu com opções: 1-Somar, 2-Subtrair, 3-Multiplicar, 0-Sair. O menu deve repetir até o usuário digitar 0.
Progressão aritmética
Peça o primeiro termo, a razão e o número de termos de uma PA. Exiba todos os termos e a soma.
Estatísticas de vendas
Peça o número de vendedores e o total vendido por cada um. Exiba: total geral, média, maior e menor venda e o número do vendedor com maior venda.
Números primos até N
Peça um número N e liste todos os primos de 2 até N usando loops aninhados.
Pirâmide de asteriscos
Peça um número N e exiba uma pirâmide de asteriscos com N linhas centralizada.
Adivinhe com tentativas limitadas
O computador sorteia um número entre 1 e 50. O usuário tem no máximo 5 tentativas. A cada erro informe se foi alto ou baixo.
Ordenação por seleção
Peça 5 números. Ordene-os em ordem crescente usando o algoritmo de seleção com loops aninhados, sem usar sort().
Calculadora de parcelas
Peça valor financiado, taxa de juros mensal e número de parcelas. Exiba mês a mês os valores.
Caixa registradora
Simule uma caixa registradora. O usuário digita produtos e preços até digitar "fim". Exiba total, número de itens e o produto mais caro.
Relatório de temperatura
Peça temperaturas de 7 dias. Calcule: média, dias acima da média, maior e menor temperatura e variação.
Simulador de eleição
Há 3 candidatos (1, 2, 3). Peça número de eleitores e os votos. Contabilize válidos, nulos (0) e brancos (9). Exiba resultado.
Conversor de moedas múltiplo
Peça cotações de dólar, euro e libra. Em loop, peça valores em reais e converta. Termina com 0. Exiba totais.
Jogo da senha
Gere uma senha de 4 dígitos aleatória. O usuário tem 10 tentativas. Informe dígitos corretos na posição certa e existentes na posição errada.
Criar e exibir lista
Crie uma lista com 5 frutas e exiba a lista completa e cada elemento separadamente.
Adicionar elementos
Crie uma lista vazia e adicione 5 nomes usando append(). Exiba a lista final.
Tamanho e acesso
Dada a lista [10,20,30,40,50], exiba: o tamanho, o primeiro, o último e o elemento do meio.
Modificar elementos
Crie uma lista com 3 cores. Substitua a segunda cor por "amarelo" e exiba a lista atualizada.
Remover elementos
Crie uma lista com 5 números. Remova o primeiro com pop(0), o último com pop() e um valor específico com remove().
Verificar elemento
Crie uma lista de compras. Peça um item ao usuário e diga se está ou não na lista.
Ordenar lista
Crie uma lista com 5 números desordenados. Exiba ordenada crescente e decrescente.
Fatiamento
Dada a lista [1,2,3,4,5,6,7,8,9,10], use fatiamento para exibir seções.
Percorrer com for
Crie uma lista com 5 nomes. Percorra com for e exiba cada nome com seu índice usando enumerate().
Juntar listas
Crie duas listas de números. Junte-as com + e com extend().
Soma e média de lista
Peça 5 números e armazene em lista. Calcule soma, média, maior e menor.
Filtrar pares
Dada lista de 1 a 20, crie outra apenas com os pares.
Remover duplicatas
Dada [1,2,2,3,4,4,4,5], crie nova lista sem duplicatas mantendo ordem.
Inverter sem reverse
Crie nova lista invertida sem usar reverse() ou [::-1].
Interseção de listas
Dadas duas listas, crie terceira com elementos em comum sem duplicatas.
Cadastro de alunos
Peça nomes até "fim". Exiba todos, total e em ordem alfabética.
Mover maior para o fim
Encontre o maior elemento, remova-o da posição e adicione ao final.
Frequência de elementos
Conte quantas vezes cada elemento aparece usando count().
Lista de notas com aprovação
Peça notas. Crie duas listas: aprovados (>=7) e reprovados (<7). Exiba percentuais.
Rotacionar lista
Rotacione a lista N posições para a direita usando slicing.
Bubble sort
Implemente bubble sort para ordenar 7 números sem sort().
Matriz 3x3
Crie lista de listas 3x3. Exiba matriz formatada e some diagonal principal.
Mesclar listas ordenadas
Mescle duas listas ordenadas mantendo ordem sem sort().
Anagrama
Peça duas palavras e diga se são anagramas.
Placar de jogo
Simule placar de 2 jogadores com pontuações aleatórias por rodada.
Carrinho de compras
Implemente carrinho com menu: adicionar, remover, listar, finalizar.
Ranking de notas
Exiba ranking dos 3 primeiros em ordem decrescente sem sort().
Jogo da memória simples
Jogo da memória com 4 pares. Usuário revela posições para encontrar pares.
Análise de vendas
Peça vendas mensais de 12 meses. Calcule total, melhor/pior mês, média, meses acima da média.
Simulador de fila
Simule fila de atendimento: entrar na fila, atender próximo, ver fila.
Primeira função
Crie uma função chamada saudacao() que imprime "Olá, mundo!" e chame-a.
Função com parâmetro
Crie uma função saudar(nome) que recebe um nome e imprime "Olá, [nome]!".
Função que retorna
Crie uma função somar(a, b) que retorna a soma de dois números.
Múltiplos parâmetros
Crie area_retangulo(largura, altura) que retorna a área. Chame com diferentes valores.
Valor padrão
Crie saudar(nome, saudacao="Olá") com valor padrão. Chame com e sem o segundo argumento.
Função booleana
Crie eh_par(numero) que retorna True se par e False se ímpar.
Múltiplos retornos
Crie minmax(lista) que retorna o menor e o maior de uma lista.
Função com loop
Crie tabuada(n) que imprime a tabuada de n de 1 a 10.
Chamar função dentro de função
Crie dobro(n) e quadruplo(n) que usa dobro().
Argumentos nomeados
Crie apresentar(nome,idade,cidade) e chame com argumentos nomeados fora de ordem.
Fatorial recursivo
Crie função recursiva fatorial(n) sem loops.
Fibonacci recursivo
Crie função recursiva fibonacci(n) que retorna o n-ésimo termo.
*args
Crie somar_tudo(*numeros) que aceita qualquer quantidade de números e retorna a soma.
**kwargs
Crie ficha(**dados) que recebe dados nomeados e exibe cada par.
Função como argumento
Crie aplicar(funcao, valor) que recebe função e valor. Teste com dobro() e quadrado().
Escopo de variáveis
Use variável global, modifique dentro de função com global.
Validador com função
Crie validar_email(email) que retorna True se contém @ e .
Funções aninhadas
Crie calcular_desconto(preco,pct) que calcula desconto com função interna.
Memoização simples
Função que calcula quadrado(n) e armazena em cache para não recalcular.
Função de ordenação
Use função como key em sorted() para ordenar lista de tuplas pelo 2° elemento.
Decorador simples
Crie decorador cronometrar que mede tempo de execução.
Gerador simples
Crie gerador pares_ate(n) com yield.
Closure
Crie criar_multiplicador(n) que retorna função que multiplica por n.
Recursão com acumulador
Crie somar_lista(lista, ac=0) recursiva para somar elementos.
Pipeline de funções
Crie pipeline(valor, *funcoes) que aplica funções em sequência.
Sistema de validação
Crie funções separadas para validar CPF, email e telefone. Combine em validar_tudo().
Calculadora funcional
Implemente calculadora onde cada operação é função. Use dicionário para mapear string a função.
Decorador de cache
Crie decorador @cache para memoizar resultados. Aplique em fibonacci.
Analisador de texto
Crie funções de análise separadas e analisar(texto) que exibe relatório.
Mini framework de testes
Crie testar(nome, resultado, esperado) que exibe PASSOU ou FALHOU.
Criar dicionário
Crie um dicionário com nome, idade e cidade de uma pessoa. Exiba cada valor.
Adicionar e atualizar
Crie dicionário vazio. Adicione pares e atualize valor.
Verificar e remover chave
Verifique se banana existe e remova maçã de um dicionário.
Iterar dicionário
Exiba chaves, valores e pares de um dicionário.
Criar tupla
Crie tupla de coordenadas. Acesse elementos e tente modificar.
Desempacotar tupla
Crie tuplas (nome,nota) e desempacote em variáveis.
Criar set
Crie set com números repetidos e mostre sem duplicatas.
Operações com sets
Calcule união, interseção e diferença entre dois sets.
get() com padrão
Use get() para buscar chaves inexistentes com valor padrão.
Contar frequência
Conte quantas vezes cada palavra aparece usando dicionário.
Dicionário de alunos
Dicionário onde cada chave é aluno e valor é lista de notas. Calcule médias.
Inverter dicionário
Inverta chaves e valores de um dicionário.
Merge de dicionários
Mescle dois dicionários, mantendo valor do segundo em chaves repetidas.
Agrupar por categoria
Agrupe tuplas (produto,categoria) em dicionário de listas.
Tuplas como chaves
Use tuplas (linha,coluna) como chaves para tabuleiro 3x3.
Set de emails únicos
Use set para remover duplicatas de lista de emails.
Estatísticas com dicionário
Analise vendas: total, maior, menor e produto mais vendido.
Dicionário aninhado
Crie dicionário de funcionários com dados aninhados.
Diferença simétrica
Use ^ para encontrar elementos exclusivos de cada set.
Cache com dicionário
Use dicionário como cache para simular memoização.
Índice invertido
Crie índice onde cada palavra aponta para documentos onde aparece.
Top N mais frequentes
Encontre N palavras mais frequentes com dicionário e sorted.
Grafo com dicionário
Represente grafo com dicionário de listas de adjacência.
Histograma de texto
Exiba histograma visual de frequência de letras com *.
Sistema de estoque
Gerencie estoque com dicionário aninhado (qtd, preço, categoria).
Agenda de contatos
CRUD de contatos com dicionário e menu.
Analisador de votos
Simule eleição com validação de candidatos e resultados.
Grafo e menor caminho
BFS para encontrar caminho entre cidades em grafo.
Compressor RLE
Implemente Run-Length Encoding (comprimir e descomprimir).
Recomendação de filmes
Sistema de recomendação baseado em sets de filmes por usuário.
Escrever arquivo
Crie um arquivo "dados.txt" e escreva três linhas de texto com open() modo "w".
Ler arquivo
Leia "dados.txt" e exiba todo o conteúdo com read().
Acrescentar ao arquivo
Abra "dados.txt" no modo "a" e adicione duas linhas sem apagar o conteúdo.
Ler linha por linha
Leia "dados.txt" linha por linha com for e exiba com número.
Contar linhas
Conte quantas linhas "dados.txt" tem sem usar readlines().
Escrever lista em arquivo
Dada lista de nomes, escreva cada um em uma linha em "nomes.txt".
Verificar existência
Verifique se arquivo existe com os.path.exists(). Se não, crie-o.
Copiar arquivo
Leia "dados.txt" e escreva em "copia.txt".
Buscar palavra
Conte quantas vezes uma palavra aparece em "dados.txt" (case insensitive).
Arquivo CSV simples
Crie "alunos.csv" com cabeçalho (nome,nota) e 3 linhas.
Log de sistema
Registre mensagens com data/hora em "log.txt" no modo append.
Ler e processar CSV
Leia "alunos.csv", pule cabeçalho, exiba dados e calcule média.
Filtrar linhas
Leia "alunos.csv" e crie "aprovados.csv" só com nota >= 7.
Substituir texto
Substitua palavra em "dados.txt" e salve no mesmo arquivo.
Dividir arquivo
Divida um arquivo em duas partes com readlines() e slicing.
Agenda em arquivo
Adicione contatos (nome:telefone) em "agenda.txt" sem duplicatas.
Estatísticas de arquivo
Exiba linhas, palavras, caracteres e linha mais longa.
Backup com timestamp
Crie backup de "dados.txt" com data no nome do arquivo.
Mesclar arquivos
Mescle dois arquivos em um terceiro com separador.
Try/except com arquivos
Trate FileNotFoundError e PermissionError ao abrir arquivos.
Parser de configuração
Parseie arquivo config no formato chave=valor ignorando #, armazene em dicionário.
Relatório de vendas
Leia vendas.csv e gere relatorio.txt com total por produto e mês.
Indexador de arquivos
Leia todos .txt de uma pasta e crie índice com palavras únicas.
Diff de arquivos
Compare dois arquivos linha a linha e gere diff.txt.
Mini banco de dados
Implemente INSERT/SELECT/UPDATE/DELETE em arquivo CSV.
Sistema de notas persistente
Sistema de notas com persistência em arquivo. CRUD completo com menu.
Compactador de logs
Processe arquivo de log: agrupe por data, filtre ERROR, gere relatório.
Sincronizador de arquivos
Compare dois CSVs e identifique registros novos, removidos e modificados.
Processador de templates
Leia template com {{variavel}}, dados CSV, e gere arquivos substituídos.
Monitor de arquivo
Monitore log.txt por palavras-chave (ERROR, CRITICAL) em loop com time.sleep.
Primeira classe
Crie uma classe Pessoa com nome e idade. Instancie um objeto e exiba.
Método de instância
Adicione apresentar() à Pessoa que imprime "Olá! Sou [nome] e tenho [idade] anos."
Múltiplos objetos
Crie Carro com marca, modelo, ano. Instancie 3 carros diferentes.
Método com retorno
Crie Retangulo(largura,altura) com métodos area() e perimetro() que retornam valores.
__str__
Adicione __str__() a Produto(nome,preco) para exibir formatado.
Atributo de classe
Classe Funcionario com atributo empresa='TechCorp' e instância nome, salario.
Método estático
Calculadora com @staticmethod somar(a,b) e multiplicar(a,b).
Método de classe
Contador com @classmethod que incrementa total a cada nova instância.
Encapsulamento básico
ContaBancaria com _saldo privado, depositar() e get_saldo().
Objetos como atributos
Classes Endereco(rua,cidade) e Pessoa(nome,endereco) com pessoa.endereco sendo objeto.
Property e setter
Refatore ContaBancaria com @property e setter validando saldo >= 0.
Herança simples
Animal com nome e fazer_som(). Cachorro e Gato herdando com override.
super()
Veiculo(marca,ano) e Carro herdando usa super() para adicionar modelo.
Polimorfismo
Forma com area(). Lista mista de Circulo e Quadrado, calcule área total.
Classe abstrata
Forma abstrata com ABC. Triangulo e Retangulo implementam area().
Interface com ABC
Interface Pagamento com pagar(). CartaoCredito, Boleto e Pix implementam.
__eq__ e __lt__
Produto com __eq__ (nome) e __lt__ (preco) para ordenação.
Herança múltipla
Voador (voar), Nadador (nadar), Pato herda de ambos. Demonstre MRO.
Composição vs Herança
Motor e Carro com composição (Carro tem Motor). Compare com herança.
Iterator protocol
Contagem com __iter__ e __next__ para contar de start a end.