Python for Everyone is the full curriculum for a Python course I teach, aimed at beginners and intermediate learners. It takes students from their first variable all the way to real financial analysis, through six progressive class modules plus an advanced analytics track — every concept backed by runnable code, slides, and homework.
The learning path at a glance
| Module | What it covers |
|---|---|
| Class 1 — Fundamentals | Variables and dynamic typing, strings, conditionals, loops, sequences (lists/tuples), user input |
| Class 2 — Functions & Modules | Function definition and recursion, scope and namespaces, string methods, writing and importing modules, named tuples |
| Class 3 — Object-Oriented Programming | Classes, inheritance and polymorphism, operator overloading (a custom Vector class), method overriding — plus detours into bubble sort and socket programming |
| Class 4 — Data Science Foundations | NumPy arrays and universal functions, Pandas DataFrames, slicing, SQLite, building web APIs with FastAPI, Jupyter notebooks (including a Lorenz-attractor demo) |
| Class 5 — Advanced Concepts | Exception handling, file operations, a bank-account OOP project, custom math classes, matplotlib basics |
| Class 6 — Visualization & Finance | Financial functions, portfolio analysis, advanced plotting and styles, working with Excel files |
| Financial Analytics | Pulling live market data with yfinance, data pipelines, and portfolio datasets |
Inside each module
Class 1: Python Fundamentals — Class-1/
- Variables and Data Types (
variables.py) — Python’s dynamic typing, numeric types, strings, and complex numbers - Conditional Statements (
condition-if.py) — basic if-else logic and control flow - Loops (
for-loop.py) — iteration with for and while loops - Sequences (
Sequences.py) — lists, tuples, and sequence operations - String Operations (
strings.py) — string manipulation and formatting - User Input (
user-input.py) — interactive programs with user input - Assignment Operators (
Assignment-operator.py) — assignment and arithmetic operators
Class 2: Functions and Modules — Class-2/
- Function Basics (
functions.py) — definition, parameters, return values, and recursion - Scope and Namespaces (
scope.py,global-scope.py) — variable scope and global/local variables - String Functions (
String-functions.py) — built-in string methods and operations - Modules (
modules.py) — creating and importing Python modules - Named Tuples (
named-tuple.py) — advanced data structures - Loop Functions (
loop-functions.py) — functional programming with loops
Class 3: Object-Oriented Programming — Class-3/
- Classes and Objects (
Classes.py) — basic OOP concepts, inheritance, and polymorphism - Operator Overloading (
usingOperatorOverload.py,Vector.py) — custom operators for classes - Class Override (
ClassOverride.py) — method overriding and inheritance - Sorting Algorithms (
bubble-sort.py) — implementation of sorting algorithms - Web Development (
build-webpage.py) — basic web page generation - Network Programming (
my_socket_server.py) — socket programming basics
Class 4: Data Science Foundations — Class-4/
- NumPy Arrays (
numpy-array-setting.py,numpy-details.py) — numerical computing with NumPy - NumPy Functions (
numpy-functions.py,numpy-universal-functions.py) — advanced NumPy operations - Pandas DataFrames (
pandas-dataframe-load.py,pandas-dataframe.py) — data manipulation with Pandas - Data Slicing (
slicing-array.py) — array and DataFrame slicing techniques - Web APIs (
complex-fastapi.py,fastcgi.py) — building web APIs with FastAPI - Database Operations (
sqlite.ipynb) — SQLite database integration - Jupyter Notebooks (
Intro.ipynb,Lorenz.ipynb) — interactive data analysis
Class 5: Advanced Python Concepts — Class-5/
- Exception Handling (
exception-handle.py,try-except.py) — error handling and debugging - File Operations (
file-operation.py) — reading and writing files - Bank Account System (
bankaccount.py) — practical OOP application - Mathematical Operations (
fraction.py,cube.py) — custom mathematical classes - Data Analysis (
numpy-second-section.py,pandas-dataframe.py) — advanced data processing - Visualization (
plots.py) — basic plotting with matplotlib - Homework Solutions (
homework.py,hw2.py) — practice exercises
Class 6: Data Visualization and Financial Analysis — Class-6/
- Financial Functions (
financial_functions.py) — financial calculations and metrics - Portfolio Analysis (
funds.py,keg.py) — investment portfolio management - Data Visualization (
plot.py,plot-style.py) — advanced plotting techniques - Matplotlib Integration — comprehensive plotting examples
- Excel Integration (
apple.xlsx,myportfolio.xlsx) — working with Excel files
Financial Analytics: Advanced Applications — Financial-Analytics/
- Data Acquisition (
scripts/1_financial_data.py) — downloading financial data with yfinance - Image Processing (
scripts/convertImagetoCode.py) — converting images to code - Subprocess Management — system integration scripts
- Data Storage (
data/) — financial datasets and portfolio data
How it’s built
Each class folder contains standalone scripts you can run directly (python Class-1/variables.py), along with the PDF/PowerPoint slides used in the live sessions and homework with solutions. The stack covers the core teaching toolkit: NumPy, Pandas, Matplotlib, yfinance, FastAPI, SQLite, and Jupyter.
The repo also practices what it preaches — PEP 8 style, docstrings throughout, and GitHub Actions running pylint on every push. It’s MIT-licensed, so anyone is welcome to learn from it or fork it for their own class.
Language: Python / Jupyter Notebook Source code: github.com/avnit/Python-for-everyone