A growing collection of Python exercises and projects documenting my progress through 100 Days of Code — The Complete Python Pro Bootcamp by Dr. Angela Yu.
From a band name generator to interactive games and a coffee machine simulation, this repository tracks the transition from basic Python syntax to larger programs and an introduction to object-oriented programming.
Learning programming requires more than understanding individual concepts: it requires combining them into programs that accept input, make decisions, manage data and produce useful results. My goal is to build those skills through daily exercises and small projects, keeping the code available as a record of my learning.
- Days 1–15: project files, exercises and course materials.
- Day 16: introductory object-oriented programming examples using Turtle and PrettyTable, stored inside
Day 16-100. - Days 17–100: no separate day implementations are currently included.
This is a learning repository. Some files contain starter code, TODOs, empty exercises or bugs used during practice. The presence of a day folder does not mean every exercise is complete.
- Build the fundamentals: practice variables, data types, arithmetic, conditionals, lists and loops.
- Apply each concept: combine the lessons in small projects such as Treasure Island, Hangman and Caesar Cipher.
- Organize program logic: use functions, return values, dictionaries and modules to support larger projects.
- Practice debugging: inspect behavior, reproduce problems and work through debugging exercises.
- Explore objects and packages: begin working with object attributes, methods, Turtle graphics and PrettyTable.
The repository shows practice with interactive command-line programs, reusable functions, game state and structured data. Blackjack, the number guessing game and the coffee machine project bring several of these ideas together in one program.
The emphasis is on learning through iteration. Input validation, error handling and implementation quality vary between exercises; these scripts should be read as coursework and practice rather than production applications.
Each day links to its folder and a main project or representative exercise. Day 6's linked function file is currently empty; its folder contains the associated course tasks. Day 13 contains multiple debugging exercises rather than a single final project.
| Day | Project / Exercise | Concepts Practiced | Main File | All Day Files |
|---|---|---|---|---|
| 01 | Band Name Generator | Variables, strings, input and output | task.py | Browse day |
| 02 | Tip Calculator | Data types, conversion, arithmetic and formatting | task.py | Browse day |
| 03 | Treasure Island | Conditionals, nesting and logical operators | task.py | Browse day |
| 04 | Rock Paper Scissors | Randomization, lists and indexing | task.py | Browse day |
| 05 | Password Generator | For loops, ranges and random selection | task.py | Browse day |
| 06 | Functions | Function practice and course task materials | task.py | Browse day |
| 07 | Hangman | Loops, game state, lists and imported modules | main.py | Browse day |
| 08 | Caesar Cipher | Function parameters, arguments and string processing | main.py | Browse day |
| 09 | Blind Auction | Dictionaries, nested data and bid comparison | main.py | Browse day |
| 10 | Calculator | Return values, docstrings and functions in dictionaries | main.py | Browse day |
| 11 | Blackjack | Functions, card scoring and game logic | main.py | Browse day |
| 12 | Number Guessing Game | Scope, constants and difficulty levels | main.py | Browse day |
| 13 | Debugging Exercises | Reproducing errors, tracing code and using a debugger | task.py | Browse day |
| 14 | Higher or Lower | Comparisons, data dictionaries and score tracking | main.py | Browse day |
| 15 | Coffee Machine | Resource management, menus and payment logic | main.py | Browse day |
| 16 | Objects, Turtle & PrettyTable | Objects, attributes, methods and external packages | Day 16.py | Browse day |
- Language: Python 3.
- Standard library: modules such as
random,mathandturtle. - External package:
prettytablefor the Day 16 table example. - Development environment: PyCharm-compatible course materials; the Python scripts can also be opened in another editor.
- Project format: standalone scripts, local helper modules and course task metadata.
git clone https://github.com/DavidFinTech/100_days_of_code.git
cd 100_days_of_codepython3 --versionUse a Python 3 installation. On Windows, use py in place of python3 if needed.
For the band name generator:
python3 "Day 1/task/task.py"For a project with local helper files, change into its folder and run the main script:
cd "Day 11/task"
python3 main.pyFollow the prompts in the terminal. Keep helper files such as art.py, hangman_words.py and game_data.py alongside their project scripts.
From the repository root, create a virtual environment and install PrettyTable:
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install prettytable
cd "Day 16-100/Where are the rest of the days"
python3 "Day 16.py"On Windows, activate the environment with .venv\Scripts\activate instead. The Turtle example requires a graphical desktop and a Python installation with Tk support. Click the Turtle window to close it and continue to the table example.
Expand a day to open any of its Python files, including project scripts, supporting modules and reference solutions. Empty files and starter exercises are included for completeness.
Day 01 — Python files
Day 02 — Python files
- Data Types/solution.py
- Data Types/task.py
- Mathematical Operations/solution.py
- Mathematical Operations/task.py
- Number Manipulation/solution.py
- Number Manipulation/task.py
- Tip Calculator Project/solution.py
- Tip Calculator Project/task.py
- Type Error, Checking and Conversion/solution.py
- Type Error, Checking and Conversion/task.py
Day 03 — Python files
- If Else/solution.py
- If Else/task.py
- Logical Operators/solution.py
- Logical Operators/task.py
- Modulo/solution.py
- Modulo/task.py
- Multiple Ifs/solution.py
- Multiple Ifs/task.py
- Nesting and Elif/solution.py
- Nesting and Elif/task.py
- Python Pizza/init.py
- Python Pizza/solution.py
- Python Pizza/task.py
- Python Pizza/tests/init.py
- Python Pizza/tests/test_task.py
- Treasure Island Project/solution.py
- Treasure Island Project/task.py
- init.py
Day 04 — Python files
Day 05 — Python files
Day 06 — Python files
Day 07 — Python files
Day 08 — Python files
- Caesar Cipher 1/main.py
- Caesar Cipher 1/solution.py
- Caesar Cipher 2/main.py
- Caesar Cipher 2/solution.py
- Caesar Cipher 3/art.py
- Caesar Cipher 3/main.py
- Caesar Cipher 3/solution.py
- Functions with Inputs/solution.py
- Functions with Inputs/task.py
- Positional vs Keyword Arguments/solution.py
- Positional vs Keyword Arguments/task.py
Day 09 — Python files
Day 10 — Python files
Day 11 — Python files
Day 12 — Python files
- Block Scope/solution.py
- Block Scope/task.py
- Global Constants/solution.py
- Global Constants/task.py
- Global Vars/solution.py
- Global Vars/task.py
- Namespaces and Scope/solution.py
- Namespaces and Scope/task.py
- Number Guessing Project/art.py
- Number Guessing Project/main.py
- Number Guessing Project/solution.py
Day 13 — Python files
- Describe the Problem/solution.py
- Describe the Problem/task.py
- Fix the Errors/solution.py
- Fix the Errors/task.py
- Play Computer/solution.py
- Play Computer/task.py
- Reproduce the Bug/solution.py
- Reproduce the Bug/task.py
- Use Print/solution.py
- Use Print/task.py
- Use a Debugger/maths.py
- Use a Debugger/python.py
- Use a Debugger/solution.py
- Use a Debugger/task.py
Day 14 — Python files
Day 15 — Python files
Day 16 — Python files
- Course: 100 Days of Code: The Complete Python Pro Bootcamp, Dr. Angela Yu.
- Author: David Urquizo — DavidFinTech.
- Repository: 100_days_of_code.
Course exercises and reference solutions are retained alongside my practice code. This repository currently has no license file; refer to the original course terms for course-provided materials.