Exercícios, aulas e desafios de Python, do primeiro print às estruturas de controle.
Repositório onde registro minha evolução em Python. Reúne:
- os Mundos 1 e 2 do curso de Python do Curso em Vídeo (Gustavo Guanabara) — aulas e desafios;
- exercícios de nivelamento de Programação de Computadores, como simuladores de ponto de venda e de análise de crédito;
- projetos extra, como um jogo da velha com interface gráfica.
Cada exercício é um script independente, executado no terminal.
| Etapa | Conteúdo | Progresso |
|---|---|---|
| Mundo 1 — Fundamentos | Aulas 06–11 · Desafios 001–035 | |
| Mundo 2 — Estruturas de controle | Aula 12 · Exercícios 036–071 | |
| Mundo 3 — Estruturas compostas | Exercícios 072–115 |
As versões publicadas acompanham este progresso — ver Releases.
Requisitos: Python 3 (os scripts são verificados com Python 3.10 e 3.13 no CI).
git clone https://github.com/marloon-dev/Python.git
cd Python
# Opcional: ambiente virtual e dependências de alguns scripts
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
# Executar um exercício
python3 "Gustavo Guanabara Python/MUNDO - 02/EXERCÍCIOS/ex045.py"A maioria dos scripts usa apenas a biblioteca padrão. As exceções estão no requirements.txt:
| Script | Dependência | Observação |
|---|---|---|
MUNDO - 01/Aulas/aula008b.py |
emoji |
— |
MUNDO - 01/Desafios/des021 |
python-vlc |
Requer o VLC instalado; ver o README do desafio |
Exercícios/jogo da velha.py, MUNDO - 02/EXERCÍCIOS/main.py |
tkinter |
Incluído no Python; em Linux pode ser preciso sudo apt install python3-tk |
Os exercícios do Mundo 2 usam cores ANSI. No Windows, use o Windows Terminal ou o terminal do VS Code para vê-las corretamente.
Python/
├── Exercícios/ Nivelamento e projetos extra
│ ├── Análise de Crédito Estudantil (ACE).py
│ ├── Calculadora de Saúde (IMC).py
│ ├── IMCAtualizado.py
│ ├── Ponto de Venda (PDV).py
│ ├── jogo da velha.py Interface gráfica com Tkinter
│ └── quiz.py
├── Gustavo Guanabara Python/
│ ├── MUNDO - 01/
│ │ ├── Aulas/ aula006a.py … aula011.py
│ │ └── Desafios/ des001.py … des035.py (des021/ em pasta própria)
│ └── MUNDO - 02/
│ ├── AULAS/ aula012a.py
│ └── EXERCÍCIOS/ ex036.py … ex053.py, main.py
├── .github/workflows/ci.yml Verifica a sintaxe de todos os scripts
├── requirements.txt Dependências opcionais
└── LICENSE
Exercícios de nivelamento e projetos extra (6)
| Script | Descrição |
|---|---|
| Ponto de Venda (PDV) | Simulador de caixa: valor da compra, desconto à vista ou parcelamento |
| Análise de Crédito Estudantil (ACE) | Aprova ou nega crédito conforme a capacidade de pagamento |
| Calculadora de Saúde (IMC) | Cálculo do IMC |
| IMC atualizado | Versão com classificação e dados armazenados em um dicionário |
| Jogo da velha | Jogo para dois jogadores com interface gráfica (Tkinter) |
| Quiz | Perguntas e respostas no terminal |
Mundo 1 — Aulas (9)
| Aula | Tema |
|---|---|
| aula006a | Tipos primitivos: soma de dois números |
| aula006b | Dissecando uma variável (isnumeric, isalpha…) |
| aula008a | Módulo math (sqrt, floor) |
| aula008b | Biblioteca externa emoji |
| aula009 | Manipulação de strings |
| aula010 | Condições: verificar idade do carro (TVDE) |
| aula010a | Condições: exemplo "Box Keys" |
| aula010b | Condições: cálculo de nota |
| aula011 | Cores no terminal (ANSI) |
Mundo 1 — Desafios (35)
| # | Desafio | # | Desafio |
|---|---|---|---|
| 001 | Olá, Mundo | 019 | Sorteio de um nome |
| 002 | Respondendo ao usuário | 020 | Ordem de apresentação (shuffle) |
| 003 | Somando dois números | 021 | Tocar um MP3 (python-vlc) |
| 004 | Soma com mensagem formatada | 022 | Analisador de nomes |
| 005 | Antecessor e sucessor | 023 | Separando dígitos |
| 006 | Dobro, triplo e raiz quadrada | 024 | Cidade começa com… |
| 007 | Média aritmética | 025 | Procurar "Silva" no nome |
| 008 | Conversor de medidas | 026 | Ocorrências de uma letra |
| 009 | Tabuada | 027 | Primeiro e último nome |
| 010 | Conversor de moedas | 028 | Jogo de adivinhação |
| 011 | Tinta por m² | 029 | Radar eletrônico |
| 012 | Desconto de produto | 030 | Par ou ímpar |
| 013 | Aumento de salário | 031 | Preço da passagem |
| 014 | Celsius para Fahrenheit | 032 | Ano bissexto |
| 015 | Aluguel de carros | 033 | Maior e menor de três valores |
| 016 | Porção inteira (trunc) |
034 | Aumento por faixa salarial |
| 017 | Hipotenusa (hypot) |
035 | Retas formam triângulo? |
| 018 | Seno, cosseno e tangente |
Mundo 2 — Exercícios (17 de 36)
Aula: aula012a — condições aninhadas · Extra: main.py — primeira interface com Tkinter
| # | Exercício | Estado |
|---|---|---|
| 036 | Financiamento de imóvel | ✅ |
| 037 | Conversor de bases (binário, octal, hexadecimal) | ✅ |
| 038 | Comparando números | ✅ |
| 039 | Alistamento militar | ✅ |
| 040 | Média escolar com presença | ✅ |
| 041 | Categorias de natação | ✅ |
| 042 | Classificação de triângulos | ✅ |
| 043 | IMC de várias pessoas | ✅ |
| 044 | Formas de pagamento | ✅ |
| 045 | Pedra, papel e tesoura | ✅ |
| 046 | Contagem regressiva | ✅ |
| 047 | Números pares | ✅ |
| 048 | Soma dos ímpares múltiplos de 3 | ✅ |
| 049 | Tabuada com for |
✅ |
| 050 | Soma dos números pares | ✅ |
| 051 | Progressão aritmética | ✅ |
| 052 | Número primo | ✅ |
| 053 | Em desenvolvimento | 🚧 |
| Tema | Padrão |
|---|---|
| Commits | Conventional Commits com escopo por etapa: feat(mundo-02): implementar o exercício 045 (pedra, papel e tesoura) |
| Tipos | feat novo exercício · fix correção · refactor reorganização sem mudar o resultado · style formatação · docs documentação · chore manutenção |
| Versões | SemVer com tags vX.Y.Z e Releases: MINOR a cada bloco de exercícios, MAJOR ao concluir um Mundo ou em mudanças incompatíveis |
| Nomes | desNNN.py (Mundo 1) e exNNN.py (Mundo 2+), com três dígitos |
| Mundo 2+ | Cada exercício começa com as cores ANSI e as funções inicio() e fim() |
- Mundo 1 — fundamentos (v1.0.0)
- Mundo 2 — exercícios 053 a 071
- Mundo 3 — tuplas, listas, dicionários, funções, módulos e tratamento de erros
- Testes automatizados para os exercícios com lógica reutilizável
Distribuído sob a licença MIT. Os enunciados dos desafios pertencem ao Curso em Vídeo.