Python Glossary
Key terms from the Python course, linked to the lesson that introduces each one.
1,591 terms.
#
- `.describe()`
- Statistical overview of numeric columns
- Lesson 1043 — Inspecting a DataFrameLesson 1064 — `.sum()`, `.mean()`, etc.
- `.isdigit()`
- returns `True` for standard digits (`0-9`) and some unicode digit-like characters (such as superscripts like `²`).
- Lesson 160 — `.isnumeric()` vs `.isdigit()`Lesson 161 — `.isdecimal()`
- `.isnumeric()`
- returns `True` for everything `.
- Lesson 160 — `.isnumeric()` vs `.isdigit()`Lesson 161 — `.isdecimal()`
- `axis=0`
- means "reduce down the *rows*" — collapse vertically, producing one result per *column*
- Lesson 1028 — `axis` argumentLesson 1074 — `pd.concat`
- `axis=1`
- means "reduce across the *columns*" — collapse horizontally, producing one result per *row*
- Lesson 1028 — `axis` argumentLesson 1074 — `pd.concat`
- `optimizer.zero_grad()`
- to clear old gradients.
- Lesson 1182 — Optimizers in PyTorchLesson 1184 — Training loop
- `pyproject.toml`
- is the modern answer to this chaos—a single, declarative file using the TOML format (Tom's Obvious Minimal Language) that can hold nearly all your project's metadata and tool settings.
- Lesson 993 — `pyproject.toml`Lesson 1256 — Pinning dependencies
- `requirements.txt`
- comes in—it's a simple text file that lists all the packages your project needs, along with their versions.
- Lesson 713 — requirements.txtLesson 1256 — Pinning dependencies
A
- Abstract methods
- solve this by making the requirement explicit.
- Lesson 649 — Forcing subclasses to override
- Accessing undefined attributes
- Lesson 551 — `AttributeError`
- Activation
- Pass the sum through an **activation function** to get the final output
- Lesson 1168 — Perceptrons and neurons
- Activation functions
- Introduce non-linearity (typically ReLU)
- Lesson 1188 — Convolutional networks (CNNs)
- Adam
- a smarter, adaptive optimizer that often works better with less tuning
- Lesson 1182 — Optimizers in PyTorch
- add
- two `Counter` objects with `+`, Python combines their counts:
- Lesson 468 — `Counter` arithmeticLesson 1252 — Sessions and transactions
- add or subtract
- a `timedelta` to shift a `datetime`:
- Lesson 773 — `timedelta`Lesson 774 — Adding/subtracting timedeltas
- Adding a space
- Lesson 242 — Printing without newline
- Alembic
- is a migration tool for SQLAlchemy that solves this problem by treating schema changes as *version-controlled scripts*.
- Lesson 1253 — Alembic migrations
- AlexNet
- (ImageNet breakthrough), **VGG** (uniform design), **ResNet** (skip connections), and **Inception** (multi-scale filters) each introduced innovations that shaped modern deep learning.
- Lesson 1188 — Convolutional networks (CNNs)
- Alignment
- Operations automatically align on both row and column labels
- Lesson 1040 — `pd.DataFrame` basics
- all
- characters, including spaces, punctuation, and escape sequences (which count as single characters):
- Lesson 117 — `len()` on stringsLesson 142 — `.splitlines()`Lesson 156 — `.isdigit()`Lesson 411 — Intersection `&`Lesson 567 — `.read()`Lesson 699 — `__all__` listLesson 766 — `ExitStack`Lesson 1056 — `.dropna()` (+1 more)
- All-in-one
- Replaces flake8, black, isort, pyupgrade, and more—one config, one command.
- Lesson 970 — `ruff` — the modern linter
- always
- returns exactly 3 items
- Lesson 144 — `.partition(sep)`Lesson 197 — `/` true divisionLesson 757 — Why context managersLesson 758 — The `with` statement
- Analogy
- The REPL is like a scratch pad.
- Lesson 10 — The Python REPLLesson 55 — Converting strings to intLesson 66 — Infinity and NaNLesson 138 — `.split()`Lesson 241 — `flush` argumentLesson 249 — Newline behavior of inputLesson 253 — `elif` chainsLesson 362 — Performance of comprehensions (+28 more)
- any valid Python expression
- inside the `{}`:
- Lesson 182 — f-string introductionLesson 183 — Expressions in f-strings
- Apache 2.0
- Like MIT, but includes patent protection and contributor agreements.
- Lesson 995 — LICENSE files
- API consumption
- Use `fetch('/api/tasks')` to load data, display in components
- Lesson 1282 — Project: small SPA-backed web app
- API design
- – You're building a framework where declarative syntax hides complexity (like Django models or SQLAlchemy)
- Lesson 679 — Custom metaclasses
- API key
- a unique string you include in a header or query parameter.
- Lesson 1206 — Headers and authLesson 1231 — Authentication patterns
- API style
- Keras (the high-level API) often feels more concise and "batteries-included" than PyTorch
- Lesson 1195 — TensorFlow / Keras preview
- APIView
- classes handle HTTP requests (GET, POST, PUT, DELETE) and return JSON responses.
- Lesson 1243 — Django REST framework
- App Engine
- (PaaS), **Cloud Run** (containerized apps), and **Cloud Functions** (serverless).
- Lesson 1274 — Cloud deployment options
- Append mode (`'a'`)
- This *appends* to the file, meaning it **preserves all existing content** and positions the file pointer at the end.
- Lesson 576 — Truncating vs appending
- Apply it
- Django executes the migration against your database, making the structural changes live.
- Lesson 1240 — Migrations
- Approval & merge
- once approved, the PR is merged into main
- Lesson 989 — Pull requests / merge requests
- Architecture decisions
- how modules are organized, how responsibilities are separated, where inheritance makes sense versus composition.
- Lesson 1285 — Reading other people's code
- ASGI
- (Asynchronous Server Gateway Interface) is the modern standard designed for asynchronous Python applications.
- Lesson 1270 — WSGI vs ASGI
- ASGI server
- a lightning-fast server implementation designed specifically to run asynchronous Python web applications.
- Lesson 1232 — Running with uvicorn
- Async
- (short for asynchronous programming) solves this by letting a *single thread* juggle thousands of I/O operations.
- Lesson 911 — Why async
- Async by Default
- Lesson 1223 — Why FastAPI
- Async support
- Works with `async def` / `await` for non-blocking I/O
- Lesson 1210 — `httpx` for async HTTP
- at least one
- element is truthy, `False` otherwise
- Lesson 367 — `any(lst)` / `all(lst)`Lesson 1056 — `.dropna()`
- At the `(Pdb)` prompt
- Lesson 952 — `pdb` commands
- Auth
- JWT tokens stored in `localStorage`, sent in `Authorization` header
- Lesson 1282 — Project: small SPA-backed web app
- Authentication & Security
- Lesson 1280 — Project: REST API
- Authentication Failures
- Weak password policies, broken session management, no rate limiting on login attempts.
- Lesson 1277 — Application security basics
- Authentication or headers
- For simple cases, pandas handles standard HTTP.
- Lesson 1084 — Reading from URLs
- Authentication support
- Built-in helpers for common authentication schemes
- Lesson 1202 — `requests` library
- Auto-fix
- Fixes most violations automatically (unused imports, quote style, line length).
- Lesson 970 — `ruff` — the modern linter
- Auto-fix issues
- Lesson 970 — `ruff` — the modern linter
- Autogenerate
- Alembic inspects your models and creates migrations automatically
- Lesson 1253 — Alembic migrations
- Autograd
- (short for "automatic differentiation") is PyTorch's engine that automatically calculates gradients (derivatives) of tensors.
- Lesson 1180 — `autograd` engine
- Automatic Documentation
- Lesson 1223 — Why FastAPI
- Automatic JSON handling
- Parse JSON responses with a single method call
- Lesson 1202 — `requests` library
- Automatic parameter tracking
- (handled by PyTorch behind the scenes)
- Lesson 1181 — Defining a model with `nn.Module`
- Automatic registration
- – You need every subclass to register itself in a global registry when defined (plugin systems, ORMs)
- Lesson 679 — Custom metaclasses
- Automatic test discovery
- the test runner finds and executes all methods starting with `test_`
- Lesson 927 — `unittest.TestCase`
- Automatic tracking
- Every operation creates nodes in a computation graph
- Lesson 1180 — `autograd` engine
- Automatically converts
- the string from the URL to your declared type (int, float, bool, etc.
- Lesson 1225 — Path and query parameters
- Automation
- Having your computer handle repetitive tasks
- Lesson 1 — What is Python?Lesson 2 — Why learn Python
- Averaging results
- For regression, the forest averages all tree predictions; for classification, it takes a majority vote
- Lesson 1142 — Random forests
- Avoid doctests when
- Lesson 949 — When doctests shine
- Avoiding ambiguity
- When passing tuples as function arguments or in expressions
- Lesson 371 — Tuple literal `()`
- Avoiding conflicts
- Lesson 688 — `import as` alias
- Axes
- The actual plotting area(s) with x/y coordinates—think of these as the graphs themselves
- Lesson 1089 — Figure and axes objects
B
- Backend for other tools
- libraries like pandas and seaborn actually use matplotlib under the hood
- Lesson 1087 — Why matplotlib
- Backend setup
- Create Flask app with routes for CRUD operations on a resource (e.
- Lesson 1282 — Project: small SPA-backed web app
- Backup script
- Compress and copy critical folders to cloud storage nightly
- Lesson 1284 — Project: automation script
- Bad pattern
- Lesson 978 — Common optimizations
- Basic pattern
- Lesson 589 — `csv.writer`
- Batch size
- is the number of training examples your network processes in a single forward-backward pass before updating the weights.
- Lesson 1176 — Batch size and epochs
- Batch size = 1
- (stochastic gradient descent): Update weights after every single example.
- Lesson 1176 — Batch size and epochs
- Behind the scenes
- Flask calls `jsonify()` for you when it sees a dictionary return value.
- Lesson 1216 — Returning JSON
- Better defaults
- Seaborn plots look polished immediately, with carefully chosen color palettes and styling that work well for data presentation.
- Lesson 1099 — Why seaborn
- Bias
- = error from overly simplistic assumptions.
- Lesson 1133 — Overfitting and underfittingLesson 1154 — Confusion matrixLesson 1168 — Perceptrons and neurons
- binary
- (base-2) — the language of computers, which use only 0s and 1s.
- Lesson 45 — Binary literalsLesson 1154 — Confusion matrix
- Binary mode (`'rb'`)
- – Python gives you the raw bytes exactly as stored on disk.
- Lesson 558 — Text vs binary mode
- Binomial
- count of successes in fixed trials (like flipping a coin 10 times)
- Lesson 1034 — Random samplingLesson 1119 — Binomial and Poisson
- Binomial distribution
- models the number of successes in a fixed number of independent trials (like flipping a coin 10 times and counting heads).
- Lesson 1119 — Binomial and Poisson
- Black
- is an *opinionated* auto-formatter for Python.
- Lesson 968 — Formatting with blackLesson 970 — `ruff` — the modern linter
- Blank lines
- Two blank lines between top-level functions and classes; one blank line between methods.
- Lesson 966 — PEP 8 reminders
- Blueprint
- in Flask is like a mini-application or a plugin that can be registered with your main Flask app.
- Lesson 1220 — Flask Blueprints
- Body
- (optional data you're sending, used with POST/PUT)
- Lesson 1196 — How HTTP worksLesson 1199 — Headers and bodies
- Bokeh
- specializes in creating **interactive visualizations** that run in web browsers.
- Lesson 1108 — Bokeh intro
- Boolean
- Lesson 1010 — Array dtypes
- Boolean masking
- (also called *boolean indexing*) is one of NumPy's most powerful features.
- Lesson 1016 — Boolean maskingLesson 1017 — Fancy indexingLesson 1031 — Element-wise comparison
- Boolean Series
- (a column of `True` and `False` values) by applying a condition to one or more columns, then use that Series to filter the DataFrame.
- Lesson 1050 — Boolean indexing
- both
- operands are truthy.
- Lesson 211 — `and` operatorLesson 222 — `&` bitwise ANDLesson 411 — Intersection `&`Lesson 770 — `datetime.datetime`Lesson 793 — `deque`Lesson 931 — Test discoveryLesson 1052 — Combining conditions
- Broadcast assignment
- You can assign a single value to an entire slice: `arr[1:3, :] = 0`
- Lesson 1015 — Slicing arrays
- Broken Access Control
- Users accessing resources they shouldn't (like another user's account or admin endpoints).
- Lesson 1277 — Application security basics
- buffer
- ) and displays it in batches for efficiency.
- Lesson 241 — `flush` argumentLesson 563 — Why `close()` mattersLesson 577 — Flushing buffers
- build
- based on your hardware—specifically, whether you have an NVIDIA GPU and which version of **CUDA** (NVIDIA's parallel computing platform) you want to use.
- Lesson 1177 — Installing PyTorchLesson 1265 — Building images
- Build & deploy
- Frontend builds to static files; backend serves them in production
- Lesson 1282 — Project: small SPA-backed web app
- Building paths elegantly
- Lesson 833 — `pathlib` recap
- Built for messy data
- Real-world data has missing values, mixed types, duplicates, and inconsistent formats.
- Lesson 1037 — Why pandas
- Byte strings (`bytes`)
- are like the raw ink patterns on paper — they're just sequences of numbers (0–255) with no assumed meaning.
- Lesson 106 — Byte strings preview
- Bytes
- (`bytes`) are sequences of raw 8-bit values — they represent *data* as computers actually store it.
- Lesson 190 — Encoding strings to bytesLesson 861 — `zlib` / `gzip` / `bz2`
C
- Calculate errors
- Find where the current model is wrong (the residuals)
- Lesson 1143 — Gradient boosting
- California Housing dataset
- contains 1990 census data with 8 features (median income, house age, etc.
- Lesson 1137 — Loading a sample dataset
- Call `load_dotenv()` early
- Typically at the very top of your entry script (e.
- Lesson 1258 — `python-dotenv`
- callable
- (they act like functions).
- Lesson 753 — Class-based decoratorsLesson 1230 — Dependency injection
- Cancellation
- lets you stop tasks mid-execution without waiting for them to finish naturally.
- Lesson 921 — Cancellation
- cannot
- mix types:
- Lesson 194 — `+` additionLesson 425 — Empty dictLesson 904 — Sharing data across processesLesson 1052 — Combining conditions
- Capping values (clipping)
- Lesson 1035 — `np.where`
- capturing
- or **closing over** those variables.
- Lesson 512 — Capturing enclosing variablesLesson 845 — Groups and capturing
- case-sensitive
- `name` and `Name` are as different as `cat` and `dog`.
- Lesson 21 — Case sensitivityLesson 136 — `.replace(old, new)`Lesson 151 — `.count(sub)`Lesson 152 — `.startswith(prefix)`
- Categories
- Group changes by type:
- Lesson 1000 — Maintaining changelogsLesson 1183 — Loss functions in PyTorch
- CDF
- accumulates probability from left to right for any distribution type.
- Lesson 1117 — Probability distributions
- Central Limit Theorem (CLT)
- states that when you take many random samples from *any* population (with finite variance), calculate the mean of each sample, and plot those means, they form a **normal distribution** — even if the original population was wildly non-normal.
- Lesson 1121 — Central limit theorem
- Chained assignment
- lets you assign *the same single value* to several variables at once by "chaining" the assignment operator.
- Lesson 31 — Chained assignment
- Change the order
- arguments appear, regardless of how you pass them
- Lesson 174 — Positional format placeholders
- Check API docs
- Every API specifies exactly how to send credentials (header name, format, prefix).
- Lesson 1206 — Headers and auth
- Check your code
- Lesson 970 — `ruff` — the modern linter
- Checking paths
- Lesson 833 — `pathlib` recap
- Choose comprehensions by default
- They're more readable for most Python programmers and handle complex logic (transform *and* filter) elegantly.
- Lesson 361 — Comprehensions vs map/filter
- Choosing teams
- Lesson 805 — `combinations`
- Clarity
- Anyone reading your code instantly knows this value shouldn't change
- Lesson 39 — Constants by conventionLesson 175 — Keyword format placeholdersLesson 484 — Default parameter valuesLesson 489 — Keyword-only arguments
- class
- is a blueprint for creating objects.
- Lesson 606 — `class` keywordLesson 619 — Class as a blueprint
- class decorators
- functions that take a class as input, modify or wrap it, and return a class (or a replacement).
- Lesson 677 — Class decoratorsLesson 679 — Custom metaclasses
- Classification output
- A label from a finite set of options (limited choices)
- Lesson 1130 — Regression vs classification
- Clean interfaces
- Users get simple functions tailored to their needs
- Lesson 515 — Using closures for factories
- Cleaner code
- When you use a few functions repeatedly, this reads better
- Lesson 687 — `from ... import ...`Lesson 1151 — Pipelines
- Cleaner for obvious arguments
- – Functions like `pow(x, y)` don't benefit from callers writing `pow(x=2, y=3)`.
- Lesson 490 — Positional-only parameters `/`
- Cleaner numbering
- If you *do* need some captures, non-capturing groups keep the numbering simpler
- Lesson 847 — Non-capturing groups
- clear
- the nth bit, use bitwise AND with the inverse of a mask:
- Lesson 228 — Bit manipulation idiomsLesson 953 — Setting breakpoints
- Clear intent
- Other developers (including future-you) know what's safe to depend on.
- Lesson 620 — Encapsulation by convention
- Click the Extensions icon
- on the left sidebar—it looks like four squares with one floating away
- Lesson 8 — Installing VS Code for Python
- Client sends
- JSON in HTTP POST/PUT body with `Content-Type: application/json`
- Lesson 1200 — JSON over HTTP
- Closures
- – The inner function can access variables from the outer function's scope (enclosing scope)
- Lesson 511 — Inner functions
- Cloud Run
- (containerized apps), and **Cloud Functions** (serverless).
- Lesson 1274 — Cloud deployment options
- Code is self-documenting
- the underscore signals "proceed with caution"
- Lesson 622 — Public vs private API
- Code organization
- – Breaking down a complex function into smaller pieces
- Lesson 511 — Inner functionsLesson 1278 — Project: CLI tool
- Collaborating Safely
- Lesson 980 — Why version control
- Collaboration
- Multiple people ensure the codebase stays maintainable
- Lesson 989 — Pull requests / merge requestsLesson 1220 — Flask Blueprints
- Collaborative
- Team members share migration files via version control, keeping everyone's database in sync.
- Lesson 1240 — Migrations
- Column-oriented thinking
- matches how we conceptualize tables
- Lesson 1041 — Creating from a dict of lists
- columns
- (which is extremely common), the cleanest way to create a DataFrame is from a dictionary of lists:
- Lesson 1041 — Creating from a dict of listsLesson 1056 — `.dropna()`Lesson 1154 — Confusion matrix
- Combined approach (better)
- Lesson 566 — Opening multiple files
- Combining multiple conditions
- Lesson 256 — Comparison with `and`/`or`
- comma
- is what actually defines a tuple, not the parentheses!
- Lesson 371 — Tuple literal `()`Lesson 373 — Single-element tuple
- Commas separate dimensions
- `arr[row_slice, col_slice]` instead of `arr[row][col]`
- Lesson 1015 — Slicing arrays
- Commit
- them with `git commit`
- Lesson 984 — `git add` / `git commit`Lesson 1252 — Sessions and transactionsLesson 1286 — Contributing to open source
- Common examples
- Lesson 1116 — Random variablesLesson 1158 — Hyperparameters
- Common mistake
- Lesson 343 — `.reverse()`
- Common tasks
- Lesson 1129 — Supervised vs unsupervised
- Community
- Massive support, tutorials, and pre-trained models
- Lesson 1128 — What is machine learningLesson 1195 — TensorFlow / Keras preview
- compare
- them to determine whether two path references actually point to the same file or directory.
- Lesson 587 — Relative vs absolute pathsLesson 945 — Snapshot testing intro
- Complete environment isolation
- You need different Python versions across projects without installing system-wide Pythons
- Lesson 719 — pip vs conda
- Complex transformations
- Apply logic that references multiple columns or requires conditionals.
- Lesson 1068 — `.apply()` on groups
- Compute Engine
- (VMs), **App Engine** (PaaS), **Cloud Run** (containerized apps), and **Cloud Functions** (serverless).
- Lesson 1274 — Cloud deployment options
- Compute the gradient
- the slope of the loss with respect to each parameter.
- Lesson 1172 — Gradient descent
- condition
- any expression that evaluates to `True` or `False`
- Lesson 250 — `if` basicsLesson 273 — `while` basics
- Conditions
- and **Events**, two higher-level primitives that simplify patterns like "wait for a signal" and "notify waiting threads.
- Lesson 898 — Conditions and Events
- Configuration
- Lock in settings once, use many times
- Lesson 515 — Using closures for factoriesLesson 1255 — Project structure for deploy
- Cons
- "Dead neurons" can occur if a neuron always outputs zero
- Lesson 1169 — Activation functionsLesson 1174 — Optimizers
- Consider your stack
- If you're running Dockerized apps, Fly or AWS ECS shine.
- Lesson 1274 — Cloud deployment options
- Consistency
- Functions and operators work more predictably across different situations
- Lesson 3 — Python 2 vs Python 3Lesson 690 — Standard library importsLesson 779 — UTC vs local timeLesson 997 — Building wheels
- constants
- values you don't intend to change throughout your program.
- Lesson 38 — PEP 8 naming conventionsLesson 610 — Class attributes
- container
- or **collection** of things.
- Lesson 653 — `__len__`Lesson 1261 — What is DockerLesson 1262 — Installing DockerLesson 1266 — Running containers
- context manager
- that guarantees the file will close, no matter what:
- Lesson 564 — `with open(...)` patternLesson 939 — `pytest.raises`
- Continuing the analogy
- This is like the prosecution's case: "The defendant *is* guilty.
- Lesson 1122 — Hypothesis testing intro
- continuous
- (height, temperature, time)
- Lesson 1117 — Probability distributionsLesson 1139 — Linear regression
- Continuous Deployment (CD)
- Lesson 1275 — CI/CD basics
- Continuous Integration (CI)
- Lesson 1275 — CI/CD basics
- continuous values
- numbers that can fall anywhere within a range.
- Lesson 1130 — Regression vs classificationLesson 1183 — Loss functions in PyTorch
- Convention
- It's the standard way Python developers enhance functions.
- Lesson 516 — Function decoration syntax `@`
- Convolutional Neural Network (CNN)
- is a deep learning architecture specifically designed for processing grid-structured data like images.
- Lesson 1188 — Convolutional networks (CNNs)
- cooperative multitasking
- coroutines explicitly decide when to yield control by using `await`.
- Lesson 913 — The `await` keywordLesson 924 — Blocking calls in async code
- coroutine
- is a special function that can pause its execution and allow other code to run while it waits for something (like a network request or file operation).
- Lesson 912 — Coroutines with `async def`Lesson 1229 — Async routes
- Correct
- "If the coin were fair, we'd see results this lopsided only 2% of the time.
- Lesson 1123 — p-values explained
- Correct version
- Lesson 280 — Avoiding infinite loops
- Counters
- that track how many instances have been created
- Lesson 610 — Class attributesLesson 886 — `ClassVar`
- Counting by fives
- Lesson 287 — `range(start, stop, step)`
- Counting by twos
- Lesson 287 — `range(start, stop, step)`
- Coverage
- Explores more of the parameter space with fewer evaluations
- Lesson 1160 — `RandomizedSearchCV`
- CPU-intensive work
- (calculations, data processing, looping), all those threads must still take turns holding the GIL.
- Lesson 900 — The GIL
- CPython
- (written in the C programming language), and it's what most people use.
- Lesson 4 — Installing Python
- Create a branch
- for your feature or fix
- Lesson 989 — Pull requests / merge requestsLesson 1286 — Contributing to open source
- Create a migration
- Django compares your current models to the last known state and writes Python code describing what changed.
- Lesson 1240 — Migrations
- Create, Read, Update, Delete
- the four fundamental operations for managing data in any database.
- Lesson 1245 — SELECT, INSERT, UPDATE, DELETE
- Creates an event loop
- a manager object that coordinates all async tasks
- Lesson 914 — Event loop concept
- Creating diversity
- Each tree is trained on a different random sample of the data (called *bootstrap sampling*)
- Lesson 1142 — Random forests
- Creating Path objects
- Lesson 833 — `pathlib` recap
- CRITICAL
- – The program may be unable to continue
- Lesson 959 — `logging` module basicsLesson 960 — Log levels
- CROSS JOIN
- Returns the Cartesian product—every row from the first table paired with every row from the second.
- Lesson 1246 — JOINs
- Cross-entropy loss
- Measures how far predicted probabilities are from the true class.
- Lesson 1171 — Loss functionsLesson 1183 — Loss functions in PyTorch
- Cross-language dependencies
- Your project mixes Python, R, or requires system libraries
- Lesson 719 — pip vs conda
- Cross-platform
- option: Use Python's `schedule` library or run the script in a loop with `time.
- Lesson 1284 — Project: automation script
- CRUD Operations
- Lesson 1280 — Project: REST API
- Cryptographic Failures
- Exposing sensitive data because it wasn't encrypted in transit or at rest (e.
- Lesson 1277 — Application security basics
- CSV
- | Human-readable, universal compatibility | Slow | Large |
- Lesson 1085 — Parquet / Feather formats
- Cumulative time
- reveals the "expensive pathways"—maybe a single database query function is your top cumtime offender because it calls dozens of helpers.
- Lesson 974 — Reading profile output
- Custom aggregations
- Return a tuple or dict of multiple summary stats.
- Lesson 1068 — `.apply()` on groups
- Custom endings
- Lesson 239 — `end` argument
D
- d1
- d2}`, Python creates a new dictionary containing all key-value pairs from `d1` followed by all pairs from `d2`.
- Lesson 459 — `{**d1, **d2}`Lesson 460 — `d1 | d2`Lesson 461 — `d1 |= d2`Lesson 462 — Handling key collisions
- Daemon threads
- are threads that run in the background and are automatically terminated when all non-daemon threads finish.
- Lesson 894 — Daemon threads
- Data containers
- – Sometimes you just need a simple object to attach attributes to
- Lesson 607 — Empty class with `pass`
- Data integrity
- guarantee that an object's state won't change unexpectedly
- Lesson 671 — Frozen dataclasses
- Data loss
- Changes you write to a file may sit in a temporary buffer and not actually reach the disk until the file is closed
- Lesson 562 — Closing filesLesson 565 — Why `with` is preferred
- Data pipeline
- Fetch data from an API, clean it, save to a database
- Lesson 1284 — Project: automation script
- Data Science
- Banks, hospitals, and research labs use Python to make sense of huge amounts of information.
- Lesson 2 — Why learn Python
- Data Science / Analytics
- Lesson 1287 — Specialization paths
- Data science/scientific computing
- You're using NumPy, pandas, TensorFlow, or other packages with complex C/Fortran dependencies
- Lesson 719 — pip vs conda
- Data size
- You can fine-tune effectively with hundreds or thousands of examples, not millions.
- Lesson 1193 — Fine-tuning a transformer
- Data-preserving
- You can write custom logic to transform data during schema changes (e.
- Lesson 1240 — Migrations
- Database integration
- Use SQLAlchemy models, run migrations with Alembic
- Lesson 1282 — Project: small SPA-backed web app
- DataFrame
- is pandas' primary two-dimensional data structure—think of it as a **labeled table** with rows and columns, similar to an Excel spreadsheet or a SQL table.
- Lesson 1040 — `pd.DataFrame` basicsLesson 1046 — Column selection
- DataFrame integration
- Seaborn works seamlessly with pandas DataFrames, letting you reference columns by name rather than extracting arrays manually.
- Lesson 1099 — Why seaborn
- Debug
- understand why something isn't working as expected
- Lesson 85 — The `type()` functionLesson 959 — `logging` module basicsLesson 960 — Log levels
- Debug toolbar
- to step over (`F10`), step into (`F11`), or continue (`F5`)
- Lesson 956 — VS Code debugger
- Debugging
- see output immediately instead of waiting for the program to finish
- Lesson 577 — Flushing buffersLesson 597 — Pretty-printing JSONLesson 790 — `random.seed()`
- Decorate the function
- you want to profile with `@profile` (a special marker)
- Lesson 976 — Line profilers
- Decorators are just functions
- that accept a function and return a (usually modified) function.
- Lesson 746 — Manual decoration
- deep copy
- it recursively duplicates *everything*, including all nested structures.
- Lesson 351 — `copy.deepcopy()`Lesson 854 — `copy` module
- default
- that varies by operating system:
- Lesson 561 — Encoding argumentLesson 603 — Pickle protocolsLesson 1076 — Join types
- default value
- or **starting point**:
- Lesson 372 — Empty tupleLesson 484 — Default parameter valuesLesson 724 — `next()` built-in
- DELETE
- Remove data
- Lesson 1196 — How HTTP worksLesson 1197 — Methods: GET/POST/PUT/DELETELesson 1201 — REST principlesLesson 1245 — SELECT, INSERT, UPDATE, DELETELesson 1252 — Sessions and transactions
- dependency injection
- means you can declare reusable functions (dependencies) that FastAPI will automatically call and pass into your route handlers.
- Lesson 1230 — Dependency injectionLesson 1231 — Authentication patterns
- Deployment
- Dockerize both, run with Gunicorn/Uvicorn + Nginx reverse proxy
- Lesson 1282 — Project: small SPA-backed web app
- Development convenience
- No need to manually set environment variables every time you start your app.
- Lesson 1258 — `python-dotenv`
- DevOps / Infrastructure
- Lesson 1287 — Specialization paths
- Diabetes dataset
- contains 10 baseline medical measurements from 442 patients, with a target representing disease progression one year later.
- Lesson 1137 — Loading a sample dataset
- Dict of lists (column-oriented)
- Better when you already have full columns of data.
- Lesson 1042 — Creating from a list of dicts
- dictionary
- (or `dict`) is Python's built-in mapping type that stores data as **key-value pairs**.
- Lesson 424 — Dict literal `{}`Lesson 676 — `__slots__`Lesson 1039 — Creating a SeriesLesson 1066 — Multiple aggregations
- Dictionary keys
- Lesson 419 — `frozenset()`
- Dimensionality reduction
- is the process of reducing the number of features (dimensions) in your data while retaining as much meaningful information as possible.
- Lesson 1165 — PCA
- Docker
- to ensure the server restarts if it crashes and starts automatically on boot.
- Lesson 1272 — Uvicorn for ASGI
- Docker Compose
- lets you define and manage multi-container applications using a simple YAML file.
- Lesson 1269 — Docker Compose
- Docker Desktop
- is the easiest way to get Docker on your local machine.
- Lesson 1262 — Installing Docker
- docstring
- (documentation string) is a special type of multi-line comment that Python actually remembers and can display later.
- Lesson 20 — Docstring previewLesson 479 — DocstringsLesson 480 — Reading `help(func)`
- Docstring (`"""..."""`)
- Python stores it and makes it available as documentation
- Lesson 20 — Docstring preview
- Document your intent
- makes collaboration easier
- Lesson 521 — Annotating parametersLesson 885 — `Final`
- Documentation
- They tell other developers (and your future self) what types a function expects and returns
- Lesson 525 — Type hints are not enforcedLesson 989 — Pull requests / merge requests
- Documentation styles
- clear docstrings, type hints used effectively, README patterns.
- Lesson 1285 — Reading other people's code
- Doesn't overwrite by default
- If an environment variable already exists (e.
- Lesson 1258 — `python-dotenv`
- domain knowledge
- understanding what matters in your problem space helps you create meaningful features.
- Lesson 1150 — Feature engineeringLesson 1162 — k-Means clustering
- Domain-specific features
- Lesson 1150 — Feature engineering
- Don't overuse it
- usually the full chain is helpful for debugging.
- Lesson 543 — Suppressing chained context
- dot notation
- with the field name:
- Lesson 392 — Accessing named fieldsLesson 615 — Method definitionLesson 686 — `import` statement
- Double-check your comparison operator
- matches your update direction (incrementing with `<`, decrementing with `>`)
- Lesson 280 — Avoiding infinite loops
- Dynamic decimal places
- Lesson 187 — Nested f-strings
- Dynamic graphs
- The graph is rebuilt on each forward pass, allowing flexible control flow
- Lesson 1180 — `autograd` engine
- Dynamic padding
- Lesson 187 — Nested f-strings
E
- Each dict value
- (a list) → becomes the data *down* that column
- Lesson 1041 — Creating from a dict of lists
- each line
- instead of just the entire string.
- Lesson 850 — Flags: IGNORECASE, MULTILINE, DOTALLLesson 976 — Line profilers
- EC2
- (virtual servers you configure yourself), **Elastic Beanstalk** (managed app hosting), **Lambda** (serverless functions), and **ECS/EKS** (container orchestration).
- Lesson 1274 — Cloud deployment options
- Ecosystem
- TensorFlow has strong mobile/web deployment tools (TensorFlow Lite, TensorFlow.
- Lesson 1195 — TensorFlow / Keras preview
- Editor integration
- `pylance` provides real-time feedback directly in VS Code as you type
- Lesson 890 — `pyright` and `pylance`
- Efficiency
- Leverage knowledge from massive datasets you couldn't access yourself
- Lesson 1192 — Pretrained models with Hugging Face
- Eigenvalues
- and **eigenvectors** reveal the directions along which a matrix acts as simple scaling:
- Lesson 1033 — Linear algebra (`np.linalg`)
- Eigenvalues/vectors
- Understand transformation behavior, stability, or dimensionality reduction.
- Lesson 1033 — Linear algebra (`np.linalg`)
- Elastic Beanstalk
- (managed app hosting), **Lambda** (serverless functions), and **ECS/EKS** (container orchestration).
- Lesson 1274 — Cloud deployment options
- Elbow method
- Plot inertia (within-cluster variance) for different k values; look for the "elbow" where improvement slows
- Lesson 1162 — k-Means clustering
- Elements inside other sets
- Lesson 419 — `frozenset()`
- Empty list
- Lesson 311 — `list()` from iterable
- encodings
- are like different translation dictionaries—they map byte patterns to characters.
- Lesson 561 — Encoding argumentLesson 1109 — Altair intro
- Enforcing strict rules
- – You must validate that every class follows a pattern (all methods named certain ways, required attributes, etc.
- Lesson 679 — Custom metaclasses
- Enter `pipx`
- it installs each CLI application in its own isolated virtual environment, but exposes the executable commands globally on your system.
- Lesson 720 — `pipx` for tools
- Epochs vs. Batches
- This example uses the full dataset per step; real training typically loops over mini-batches
- Lesson 1184 — Training loop
- Equality comparison
- Two `OrderedDict`s are equal only if their items match *and* are in the same order (regular dicts ignore order when comparing)
- Lesson 469 — `collections.OrderedDict`
- Error
- A broader, informal term for anything that goes wrong in your program—syntax mistakes, runtime problems, logical bugs, etc.
- Lesson 526 — Exception vs errorLesson 959 — `logging` module basicsLesson 960 — Log levels
- Error handling strategies
- how professionals anticipate edge cases, raise meaningful exceptions, and fail gracefully.
- Lesson 1285 — Reading other people's code
- EuroPython
- , **PyCon AU**, and regional PyCons around the world bring localized communities together with equally excellent content.
- Lesson 1288 — Staying current
- Events
- , two higher-level primitives that simplify patterns like "wait for a signal" and "notify waiting threads.
- Lesson 898 — Conditions and Events
- Everything else becomes `True`
- non-zero numbers, non-empty strings, etc.
- Lesson 71 — `bool()` conversion
- exactly
- the kind of digits you'd type on a standard keyboard—no fancy Unicode symbols—use `.
- Lesson 161 — `.isdecimal()`Lesson 193 — Unicode normalization previewLesson 219 — `in` operatorLesson 508 — Lambdas in `sorted(key=...)`Lesson 709 — Installing a specific versionLesson 941 — `conftest.py`
- Example `.env` file
- Lesson 1257 — `.env` files
- Example mistake
- writing a decorator that assumes the first argument is a string or number, forgetting it's actually `self` when decorating a method.
- Lesson 754 — Decorating methods
- Example structure
- Lesson 705 — Namespace packagesLesson 1000 — Maintaining changelogs
- Exception
- A specific Python *object* that represents a runtime problem.
- Lesson 526 — Exception vs error
- Explicit dependencies
- Readers know exactly what you're using from that module
- Lesson 687 — `from ... import ...`
- Expression
- "What's 2 + 2?
- Lesson 13 — Statements and expressionsLesson 510 — Lambda limitationsLesson 740 — Generator expression syntax
- External tooling
- Tools like `mypy`, PyCharm, or VS Code can *analyze* your code and warn you about type mismatches *before* you run it
- Lesson 525 — Type hints are not enforced
- Extracting datetime components
- Year, month, day, hour from timestamps
- Lesson 1150 — Feature engineering
F
- F1-Score
- = 2 × (precision × recall) / (precision + recall)
- Lesson 1153 — Accuracy, precision, recall, F1
- factory function
- as an argument.
- Lesson 463 — `collections.defaultdict`Lesson 795 — `defaultdict` deep dive
- fail immediately
- rather than letting the problem propagate.
- Lesson 541 — Raising for input validationLesson 559 — `'x'` exclusive create
- falsy
- counterparts (values that convert to `False`):
- Lesson 72 — Truthy valuesLesson 74 — `and` operatorLesson 102 — Empty strings
- Fancy indexing
- is different: you pass an *array (or list) of integers* to select specific positions from your array, pulling out elements in whatever order you choose.
- Lesson 1017 — Fancy indexing
- Fast (if using NumPy)
- Lesson 978 — Common optimizations
- FastAPI + Pydantic
- Lesson 1280 — Project: REST API
- Feather
- (technically "Arrow IPC format") is designed for *language-agnostic data frames*.
- Lesson 1085 — Parquet / Feather formats
- Feature scaling
- transforms all your features to similar ranges so the model weighs them fairly based on their actual predictive power, not their arbitrary units.
- Lesson 1147 — Feature scaling
- Features (X)
- The input variables your model uses to make predictions (e.
- Lesson 1138 — `train_test_split`
- Feed-Forward Networks
- After attention, each position passes through dense layers for additional transformation.
- Lesson 1191 — Transformers intro
- Figure
- The entire window or canvas—think of it as the blank page
- Lesson 1089 — Figure and axes objects
- File handling
- Lesson 928 — `setUp` / `tearDown`
- File locking
- On some systems, an open file can't be accessed by other programs—or even other parts of your own program
- Lesson 562 — Closing files
- File organizer
- Move files from Downloads to categorized folders every day
- Lesson 1284 — Project: automation script
- File: `templates/hello.html`
- Lesson 1218 — Templates with Jinja2
- File: `templates/users.html`
- Lesson 1218 — Templates with Jinja2
- Filter (keeps some items)
- `[x for x in lst if condition]`
- Lesson 358 — Conditional expression in comprehension
- Filter complete rows only
- Lesson 1055 — `.isna()` / `.notna()`
- Filtering values
- Lesson 354 — Building a new list in a loop
- Find all even numbers
- Lesson 337 — Searching with comprehensions
- Find all short words
- Lesson 337 — Searching with comprehensions
- Find positive numbers
- Lesson 337 — Searching with comprehensions
- Finding all pairs
- Lesson 805 — `combinations`
- Finding files
- Lesson 833 — `pathlib` recap
- first
- , then you call `.
- Lesson 143 — `.join()`Lesson 145 — `.rpartition(sep)`Lesson 149 — `.rfind(sub)`Lesson 809 — `takewhile` / `dropwhile`Lesson 1086 — Installing matplotlibLesson 1237 — URL routing in Django
- First request
- You visit a site; the server creates a session and sends back a cookie with a unique session ID
- Lesson 1207 — Sessions and cookies
- flake8
- is a lightweight, fast linter that combines three tools:
- Lesson 967 — Linting with flake8 / pylintLesson 970 — `ruff` — the modern linter
- Flask route
- Lesson 1218 — Templates with Jinja2
- Flexibility
- Advanced users can still customize behavior
- Lesson 484 — Default parameter valuesLesson 1192 — Pretrained models with Hugging Face
- floats
- (short for "floating-point numbers").
- Lesson 58 — Float literalsLesson 1010 — Array dtypesLesson 1011 — Choosing a dtype
- Folder structure
- Lesson 1219 — Static files
- For grouping into lists
- `defaultdict(list)` – starts with empty list
- Lesson 795 — `defaultdict` deep dive
- Format code (like black)
- Lesson 970 — `ruff` — the modern linter
- Foundation knowledge
- Understanding matplotlib makes learning other libraries trivial
- Lesson 1087 — Why matplotlib
- Fraud detection
- High recall (catch all fraud) even if precision suffers slightly.
- Lesson 1153 — Accuracy, precision, recall, F1
- Freedom to change
- You can refactor `_balance` or `_calculate_fee()` internals without breaking external code that respects the convention.
- Lesson 620 — Encapsulation by convention
- From a range
- Lesson 311 — `list()` from iterable
- From a string
- Lesson 311 — `list()` from iterable
- From existing features
- Lesson 1150 — Feature engineering
- Frontend scaffold
- Initialize a React/Vue app in a separate folder
- Lesson 1282 — Project: small SPA-backed web app
- Full control
- over every pixel: colors, labels, ticks, legends, annotations
- Lesson 1087 — Why matplotlib
- FULL OUTER JOIN
- Returns all rows from both tables, with NULLs where there's no match.
- Lesson 1246 — JOINs
- Fully connected layers
- Combine features for final classification
- Lesson 1188 — Convolutional networks (CNNs)
- function
- that takes one list element and returns the value Python should use for comparison.
- Lesson 341 — Sorting with `key=`Lesson 600 — Handling non-serializable typesLesson 816 — `reduce`Lesson 1059 — Renaming columns
- Function returning a boolean
- Lesson 522 — Annotating return types
- Function returning a string
- Lesson 522 — Annotating return types
- Function returning an integer
- Lesson 522 — Annotating return types
- Function returning None
- Lesson 522 — Annotating return types
- Functions that need docstrings
- Lesson 507 — Lambda vs def
- Future-proofing
- The language was redesigned to handle modern computing needs better
- Lesson 3 — Python 2 vs Python 3Lesson 489 — Keyword-only arguments
G
- Generate an API token
- under account settings (recommended over username/password).
- Lesson 999 — Test PyPI
- Generating sequences
- Lesson 734 — `yield` from a loop
- generator
- of matching `Path` objects—you iterate over them or convert to a list.
- Lesson 582 — `Path.glob()`Lesson 729 — `yield` keyword
- generator expression
- looks almost identical to a list comprehension, but uses **parentheses** instead of square brackets:
- Lesson 740 — Generator expression syntaxLesson 741 — Comprehension vs generator
- generator function
- .
- Lesson 730 — Generator function vs normal functionLesson 763 — `contextlib.contextmanager`
- GET
- Retrieve data (like loading a webpage)
- Lesson 1196 — How HTTP worksLesson 1197 — Methods: GET/POST/PUT/DELETELesson 1201 — REST principles
- GIL
- is a mechanism in CPython (the standard Python implementation) that allows only **one thread to execute Python bytecode at a time**, even on multi-core processors.
- Lesson 900 — The GIL
- GitHub Trending (Python)
- shows you what the community is building right now
- Lesson 1288 — Staying current
- Global Interpreter Lock (GIL)
- , which prevents multiple threads in a single Python process from executing Python bytecode at the same time.
- Lesson 901 — Why multiprocessing
- Good fit (balanced)
- Lesson 1133 — Overfitting and underfitting
- GPU
- Fine-tuning a transformer typically requires GPU acceleration for practical speed.
- Lesson 1193 — Fine-tuning a transformer
- Gunicorn
- (Green Unicorn) is a **production-grade WSGI server** that spawns multiple worker processes to handle concurrent requests efficiently and safely.
- Lesson 1271 — Gunicorn for WSGI
H
- Handle timeouts gracefully
- Lesson 910 — `as_completed` / `wait`
- Handles static files
- (CSS, images) efficiently—no need to tie up Python workers.
- Lesson 1273 — Reverse proxy with Nginx
- Handling empty strings
- Lesson 216 — Idiom: default value with `or`
- Handling nested JSON
- Lesson 1082 — Reading JSON
- Handling None
- Lesson 216 — Idiom: default value with `or`
- hashable
- they must be able to produce a consistent hash value and never change.
- Lesson 401 — Set elements must be hashableLesson 466 — `collections.Counter`
- Hashable instances
- frozen dataclasses can be used as dictionary keys or in sets
- Lesson 671 — Frozen dataclasses
- Headers
- (metadata like content type, authentication)
- Lesson 1196 — How HTTP worksLesson 1199 — Headers and bodies
- Hide implementation details
- – If you might rename the parameter later, forcing positional-only keeps your API flexible.
- Lesson 490 — Positional-only parameters `/`
- High bias (underfitting)
- The student doesn't understand the material at all.
- Lesson 1161 — Learning curves
- High p-value
- Your data is consistent with the null hypothesis; **not enough evidence** to reject it.
- Lesson 1123 — p-values explained
- High variance (overfitting)
- The student memorizes every practice problem perfectly but can't generalize.
- Lesson 1161 — Learning curves
- How it works
- Lesson 564 — `with open(...)` patternLesson 751 — Decorators with argumentsLesson 1162 — k-Means clusteringLesson 1167 — Anomaly detectionLesson 1183 — Loss functions in PyTorchLesson 1289 — Building a portfolio
- HTTP methods
- (verbs/actions), and **stateless communication** (each request is self-contained), creating predictable, scalable services that leverage HTTP's built-in features.
- Lesson 1201 — REST principles
- Hugging Face
- provides a platform where you can instantly download and use thousands of pretrained models for tasks like text generation, sentiment analysis, translation, image classification, and more.
- Lesson 1192 — Pretrained models with Hugging Face
- Hyperparameters
- These are configuration settings you choose *before* training begins.
- Lesson 1158 — Hyperparameters
I
- I/O-bound operations
- like querying a database, calling another API, reading a file, or waiting for external services—it spends most of its time *waiting* rather than computing.
- Lesson 1229 — Async routes
- I/O-bound tasks
- reading files, making network requests, querying databases — anything where your program spends time waiting for external systems.
- Lesson 891 — Why threads
- Idempotent
- Calling it multiple times has the same effect as calling it once—you just get the same data back.
- Lesson 1197 — Methods: GET/POST/PUT/DELETE
- identity
- whether two names point to the exact same object in memory.
- Lesson 81 — Comparing to None with `is`Lesson 89 — Identity with `id()`Lesson 90 — `is` vs `==`Lesson 217 — `is` operatorLesson 218 — `is not` operatorLesson 258 — `is None` checks
- idiomatic Python
- you'll see this pattern everywhere in real code.
- Lesson 508 — Lambdas in `sorted(key=...)`Lesson 1285 — Reading other people's code
- IEEE-754 standard
- , which represents numbers in binary (base-2), not decimal (base-10).
- Lesson 62 — Float precision
- If
- you're on the list, you can enter.
- Lesson 250 — `if` basicsLesson 254 — Nested `if` statementsLesson 337 — Searching with comprehensions
- If using Anaconda
- You might prefer `conda install scikit-learn` instead of pip.
- Lesson 1135 — Installing scikit-learn
- Immutability matters
- You need hashable objects for dict keys or set members.
- Lesson 792 — `namedtuple` recap
- immutable
- once a string object is created, you cannot modify its contents.
- Lesson 126 — String immutabilityLesson 170 — String concatenation with `+`Lesson 401 — Set elements must be hashableLesson 658 — `__hash__`Lesson 671 — Frozen dataclassesLesson 682 — EnumsLesson 769 — `datetime.time`
- ImmutableMultiDict
- (similar to a dictionary) that contains data sent via HTML forms with `Content-Type: application/x-www-form-urlencoded` or `multipart/form-data`.
- Lesson 1217 — Request data
- import
- one Python file into another.
- Lesson 685 — Module conceptLesson 697 — `if __name__ == '__main__':`
- Important details
- Lesson 164 — `.zfill(n)`
- Importing multiple similar items
- Lesson 688 — `import as` alias
- Imports
- Grouped (standard library, third-party, local) and alphabetized within groups.
- Lesson 966 — PEP 8 reminders
- In `conftest.py`
- Lesson 941 — `conftest.py`
- In `test_users.py`
- Lesson 941 — `conftest.py`
- in order
- , left to right, giving each name its corresponding value.
- Lesson 30 — Multiple assignmentLesson 1237 — URL routing in Django
- in place
- it doesn't create a new list.
- Lesson 325 — `.append(x)`Lesson 332 — `.clear()`Lesson 343 — `.reverse()`Lesson 788 — `random.shuffle(lst)`
- In this lesson
- , you'll learn how to configure the delimiter and quoting style when reading or writing CSV files with Python's `csv` module.
- Lesson 592 — CSV dialects
- Inception
- (multi-scale filters) each introduced innovations that shaped modern deep learning.
- Lesson 1188 — Convolutional networks (CNNs)
- indentation
- (the spaces or tabs at the start of a line) to show which lines belong together.
- Lesson 14 — Indentation as syntaxLesson 251 — `if` body indentationLesson 966 — PEP 8 reminders
- index
- always starts at 0.
- Lesson 118 — Positive indexingLesson 148 — `.find(sub)`Lesson 149 — `.rfind(sub)`Lesson 315 — Indexing into a listLesson 1079 — Writing CSVLesson 1247 — Indexes
- index labels
- and rotates them **into columns** (making data "wider" and "shorter")
- Lesson 1071 — `.stack()` / `.unstack()`Lesson 1073 — Sorting
- IndexError on invalid indices
- `arr[100]` will raise an error if the array doesn't have that many elements
- Lesson 1013 — Indexing 1D arrays
- Infinite indexing
- Lesson 799 — `count`
- Infinity (`inf`)
- Represents a value larger than any finite number—think of it as "unboundedly large"
- Lesson 66 — Infinity and NaN
- INFO
- – Confirmation that things are working as expected
- Lesson 959 — `logging` module basicsLesson 960 — Log levels
- Initialization
- Create a placeholder array before filling it with computed values
- Lesson 1004 — `np.zeros` / `np.ones`
- Injection
- Attackers inserting malicious SQL, shell commands, or code into your queries (SQL injection is the classic example).
- Lesson 1277 — Application security basics
- inner function
- (or nested function) is simply a function defined inside the body of another function.
- Lesson 511 — Inner functionsLesson 751 — Decorators with arguments
- Inner join
- Keep only rows where keys exist in *both* DataFrames.
- Lesson 1076 — Join typesLesson 1246 — JOINs
- Innermost function
- the wrapper that runs when the decorated function is called
- Lesson 519 — Decorators with arguments
- Inputs arrive
- You have multiple input values (features), like `[x₁, x₂, x₃]`
- Lesson 1168 — Perceptrons and neurons
- Insecure Design
- Fundamental flaws in how your app is architected (missing authentication on critical routes).
- Lesson 1277 — Application security basics
- Inside `forward`
- Define how data flows through your network.
- Lesson 1181 — Defining a model with `nn.Module`
- Inspecting paths
- Lesson 578 — `os.path` basics
- Installs everything
- into your Python environment's `site-packages` directory
- Lesson 707 — `pip install package`
- instance
- is the actual house built from that blueprint.
- Lesson 619 — Class as a blueprintLesson 753 — Class-based decorators
- integer division
- .
- Lesson 50 — Integer division `//`Lesson 61 — True division `/`Lesson 198 — `//` floor division
- Integration
- Works seamlessly with other NumPy functions
- Lesson 1006 — `np.arange`Lesson 1087 — Why matplotlib
- Interactivity by default
- Every chart you create is interactive in browsers and Jupyter notebooks.
- Lesson 1107 — Plotly ExpressLesson 1108 — Bokeh intro
- Internal implementation detail
- Other parts of your code shouldn't depend on it
- Lesson 41 — Leading underscore convention
- Internal time
- reveals "hot loops"—a simple string manipulation called a million times might top tottime even though it's a small function.
- Lesson 974 — Reading profile output
- Inverses
- Solve systems `Ax = b` as `x = A ¹ @ b` (though `np.
- Lesson 1033 — Linear algebra (`np.linalg`)
- Iris dataset
- contains measurements of 150 iris flowers across three species.
- Lesson 1137 — Loading a sample dataset
- Isolation Forest
- Faster, scales better, good for high-dimensional data
- Lesson 1167 — Anomaly detection
- It's a safety check
- If you're unsure whether a name is allowed, you can verify it against this list rather than guessing.
- Lesson 36 — Listing keywords
- iterable
- meaning you can loop through them character by character using a `for` loop.
- Lesson 282 — Looping over a stringLesson 571 — Iterating a file objectLesson 654 — `__getitem__` / `__setitem__`Lesson 722 — Iterable vs iteratorLesson 816 — `reduce`
- iterate
- (step through) any collection of items — strings, ranges, lists, or other sequences — executing the same block of code for each item.
- Lesson 281 — `for` basicsLesson 378 — Tuples are immutableLesson 1184 — Training loop
- Iterating over a range
- Lesson 281 — `for` basics
- Iterating over a string
- Lesson 281 — `for` basics
- iterator
- is the behind-the-scenes worker that actually steps through the iterable one item at a time.
- Lesson 722 — Iterable vs iteratorLesson 723 — `iter()` built-inLesson 724 — `next()` built-inLesson 808 — `islice`
J
- Jenkins
- Lesson 1275 — CI/CD basics
- JOIN
- operation combines rows from two or more tables based on a related column between them—like matching a customer ID in an orders table to the customer ID in a customers table.
- Lesson 1246 — JOINs
- JSON over HTTP
- is the standard pattern where APIs send and receive JSON in HTTP request and response bodies.
- Lesson 1200 — JSON over HTTP
- Jupyter notebooks
- (or JupyterLab), you can configure matplotlib to render plots **inline**—meaning they appear directly beneath the code cell that generated them.
- Lesson 1110 — Jupyter integration
- Just right
- (balanced): The string produces a clear note and handles small variations
- Lesson 1133 — Overfitting and underfittingLesson 1161 — Learning curvesLesson 1175 — Learning rate
K
- Keras
- started as a separate high-level API but is now integrated directly into TensorFlow as `tf.
- Lesson 1195 — TensorFlow / Keras preview
- Key differences
- Lesson 1195 — TensorFlow / Keras preview
- Key point
- Unlike many Python ranges, `randint` **includes both endpoints**.
- Lesson 786 — `random.randint(a, b)`
- Key points
- Lesson 864 — `subprocess`
- Key strategies
- Lesson 1149 — Handling missing values
- keys
- , not values.
- Lesson 430 — `in` on dictsLesson 448 — Iterating keysLesson 452 — Sorting dicts by value
- Keyword arguments
- let you specify which parameter gets which value by using the parameter's name, regardless of order.
- Lesson 482 — Keyword arguments
- Keyword format placeholders
- let you use meaningful names inside the curly braces instead of numbers.
- Lesson 175 — Keyword format placeholders
- Knowledge sharing
- Reviewers learn your approach; you learn from their suggestions
- Lesson 989 — Pull requests / merge requests
L
- lambda
- is a shorthand way to define a function without giving it a name.
- Lesson 505 — Lambda syntaxLesson 1274 — Cloud deployment options
- Lambda functions
- they're anonymous and Python can't reconstruct them
- Lesson 905 — Pickling requirements
- Large codebases
- Split a massive package across repositories without conflicts.
- Lesson 705 — Namespace packagesLesson 970 — `ruff` — the modern linter
- Large gap between curves
- High variance → get more data, reduce model complexity, or add regularization
- Lesson 1161 — Learning curves
- Large sample sizes
- reduce variance (by the law of large numbers, each mean gets closer to the population mean).
- Lesson 1121 — Central limit theorem
- last
- slash, giving you exactly what you need.
- Lesson 145 — `.rpartition(sep)`Lesson 149 — `.rfind(sub)`Lesson 462 — Handling key collisions
- Law of Large Numbers
- says that as you increase your sample size, the **sample average** will get closer and closer to the **true population mean**.
- Lesson 1120 — Sampling and the law of large numbers
- lazy
- computes values *one at a time*, only when requested
- Lesson 741 — Comprehension vs generatorLesson 848 — Greedy vs lazy quantifiers
- lazy evaluation
- work is deferred until absolutely necessary.
- Lesson 732 — Generators are lazyLesson 742 — Passing generators to functions
- learning rate
- controls how big each step is.
- Lesson 1172 — Gradient descentLesson 1175 — Learning rateLesson 1193 — Fine-tuning a transformer
- left
- , the value goes on the **right**.
- Lesson 27 — Assignment with `=`Lesson 134 — `.lstrip()` / `.rstrip()`Lesson 145 — `.rpartition(sep)`Lesson 166 — `.rjust(n)`Lesson 1076 — Join types
- Left join
- Keep *all* rows from the left DataFrame; fill with `NaN` where the right has no match.
- Lesson 1076 — Join typesLesson 1077 — Joining on the indexLesson 1246 — JOINs
- Left to right
- – if multiple parents exist, check them in the order you listed them
- Lesson 641 — Method Resolution Order (MRO)
- Left-justifying
- means your text starts at the left edge and any extra space is added to the right to reach a target width.
- Lesson 165 — `.ljust(n)`
- legal
- (valid identifiers) and which will cause errors.
- Lesson 34 — Valid vs invalid identifiersLesson 261 — Chained ternaries
- LeNet
- (digit recognition), **AlexNet** (ImageNet breakthrough), **VGG** (uniform design), **ResNet** (skip connections), and **Inception** (multi-scale filters) each introduced innovations that shaped modern deep learning.
- Lesson 1188 — Convolutional networks (CNNs)
- Less typing
- No need to count and assign values manually
- Lesson 684 — Auto values in enumsLesson 687 — `from ... import ...`
- LightGBM
- (Light Gradient Boosting Machine): Even faster, uses histogram-based algorithms, excellent for large datasets
- Lesson 1143 — Gradient boosting
- Lightweight environments
- You prefer `venv` and don't need heavy system-level dependencies
- Lesson 719 — pip vs conda
- Line length
- Target 79–99 characters (PEP 8 says 79, but many teams allow up to 99 for code).
- Lesson 966 — PEP 8 reminders
- Linting
- is the process of running a static analysis tool over your code to flag style issues, programming errors, suspicious constructs, and deviations from best practices—all *without* executing the program.
- Lesson 967 — Linting with flake8 / pylint
- Linux
- Most Linux systems come with Python pre-installed, but you can install or update it using your package manager if needed.
- Lesson 4 — Installing PythonLesson 1262 — Installing Docker
- list
- of the pieces.
- Lesson 138 — `.split()`Lesson 142 — `.splitlines()`Lesson 283 — Looping over a listLesson 307 — List literal `[]`Lesson 390 — Tuple vs list rule of thumbLesson 570 — `.readlines()`Lesson 789 — `random.sample(pop, k)`Lesson 837 — `re.findall` (+3 more)
- list comprehension
- lets you do the same thing in a single, readable expression.
- Lesson 356 — Basic comprehensionLesson 741 — Comprehension vs generator
- List of dicts (row-oriented)
- Natural when you receive data row-by-row (e.
- Lesson 1042 — Creating from a list of dicts
- Lists/tuples
- Python walks through *every element* until it finds a match (or reaches the end).
- Lesson 423 — Fast membership tests
- Load balancing
- can distribute requests across multiple Gunicorn/Uvicorn instances.
- Lesson 1273 — Reverse proxy with Nginx
- local
- to the function—it only exists while the function is running and cannot be accessed from outside.
- Lesson 493 — Local scopeLesson 496 — Built-in scope
- Locks
- prevent simultaneous access, **Conditions** and **Events** help threads *communicate* and wait for specific states:
- Lesson 898 — Conditions and Events
- Log analyzer
- Parse logs, count errors, post metrics to a dashboard
- Lesson 1284 — Project: automation script
- Log everything
- Use the `logging` module to track what happened
- Lesson 1284 — Project: automation script
- Log levels
- let you categorize messages by severity, so you can control what gets recorded and where.
- Lesson 960 — Log levels
- Log rotation
- solves this by automatically creating new log files based on rules you define.
- Lesson 964 — Rotating logs
- loss function
- (or cost function) is a mathematical formula that quantifies the difference between your model's predictions and the actual target values.
- Lesson 1171 — Loss functionsLesson 1183 — Loss functions in PyTorch
M
- Machine learning
- is a field of computer science where programs *learn patterns from data* instead of following explicitly coded rules.
- Lesson 1128 — What is machine learning
- Machine Learning / AI
- Lesson 1287 — Specialization paths
- macOS
- Open the downloaded file and follow the installation wizard.
- Lesson 4 — Installing PythonLesson 1262 — Installing Docker
- Maintainability
- Update code in one place
- Lesson 685 — Module conceptLesson 744 — Why decoratorsLesson 846 — Named groupsLesson 878 — `TypeAlias`Lesson 1250 — SQLAlchemy Core
- MAJOR
- (leftmost): Increment when you make **incompatible API changes**
- Lesson 996 — Versioning your package
- Make it configurable
- Use environment variables or config files
- Lesson 1284 — Project: automation script
- Make revisions
- push additional commits addressing feedback
- Lesson 989 — Pull requests / merge requests
- Managers
- when you need shared mutable objects like lists or dicts.
- Lesson 904 — Sharing data across processes
- Match built-ins
- – Many built-in functions (like `len(obj)`, `abs(x)`) enforce positional-only semantics.
- Lesson 490 — Positional-only parameters `/`
- Mathematical operations
- Begin calculations with a neutral element
- Lesson 1004 — `np.zeros` / `np.ones`
- matplotlib
- is Python's *foundational* plotting library—the oldest, most established tool for creating static charts.
- Lesson 1087 — Why matplotlibLesson 1106 — Plotly intro
- mean
- is the sum of all values divided by the count.
- Lesson 855 — `statistics` moduleLesson 1066 — Multiple aggregationsLesson 1111 — Mean, median, mode
- Mean Squared Error (MSE)
- Squares the difference between predictions and targets.
- Lesson 1171 — Loss functionsLesson 1183 — Loss functions in PyTorch
- median
- is the middle value when data is sorted.
- Lesson 855 — `statistics` moduleLesson 1111 — Mean, median, modeLesson 1113 — Quantiles and percentiles
- Medical screening
- High recall (catch all cases) for serious diseases.
- Lesson 1153 — Accuracy, precision, recall, F1
- Memoization
- works the same way: when a function is called with specific arguments, Python stores the result.
- Lesson 817 — `lru_cache`
- Memory-efficient generator
- Lesson 733 — Memory efficiency of generators
- Memory-hungry approach
- Lesson 733 — Memory efficiency of generators
- method
- is simply a function defined inside a class.
- Lesson 615 — Method definitionLesson 1196 — How HTTP works
- Method called on `None`
- Lesson 551 — `AttributeError`
- method resolution order
- .
- Lesson 635 — Single inheritanceLesson 640 — Multiple inheritanceLesson 642 — `Class.__mro__`
- Method Resolution Order (MRO)
- – the sequence Python follows when searching for a method or attribute.
- Lesson 641 — Method Resolution Order (MRO)Lesson 643 — Diamond inheritance
- Middle function
- accepts the function to be decorated (the actual decorator)
- Lesson 519 — Decorators with argumentsLesson 751 — Decorators with arguments
- MINOR
- (middle): Increment when you **add functionality** in a backward-compatible way
- Lesson 996 — Versioning your package
- Misspelled method names
- Lesson 551 — `AttributeError`
- Mixed types
- different columns can hold different data types (strings, ints, floats)
- Lesson 1041 — Creating from a dict of lists
- Mnemonic
- The axis number tells you *which index changes* as you move along that direction.
- Lesson 1028 — `axis` argument
- Mocking
- means replacing those real dependencies with fake "mock" objects that you control completely.
- Lesson 943 — Mocking with `unittest.mock`
- mode
- argument determines whether you're reading existing content, writing new content, or adding to the end of a file.
- Lesson 557 — File modes: r, w, aLesson 1111 — Mean, median, mode
- Model parameters
- (learned parameters): These are the values the algorithm *learns* from your training data.
- Lesson 1158 — Hyperparameters
- Modern features
- Early support for new Python typing features (like `Self`, `TypeAlias`, etc.
- Lesson 890 — `pyright` and `pylance`
- Modern rules
- Built-in support for type hints, f-strings, walrus operators, and Python 3.
- Lesson 970 — `ruff` — the modern linter
- Modern syntax (Python 3.10+)
- Lesson 872 — Union types
- Modifying the wrong variable
- Lesson 280 — Avoiding infinite loops
- Modularity
- Each app handles one concern (blog, user authentication, shopping cart)
- Lesson 1236 — Apps within a project
- Module-level names
- are simply the names defined directly in your file—not nested inside any function.
- Lesson 495 — Global scope
- Monitoring
- means collecting data about your application's behavior, while **metrics** are the specific measurements you track.
- Lesson 1276 — Monitoring and metrics
- MSE
- Use when large errors are especially costly (training often minimizes this)
- Lesson 1156 — MAE, MSE, R²
- Multi-Head Attention
- Instead of one attention mechanism, transformers use multiple "heads" that each learn different relationships—one might focus on grammar, another on semantics.
- Lesson 1191 — Transformers intro
- Multi-plot grids
- Creating small multiples (like comparing distributions across categories) is straightforward with seaborn's grid functions.
- Lesson 1099 — Why seaborn
- MultiIndex
- (also called a hierarchical index) is a pandas structure that allows you to have multiple levels of row or column labels.
- Lesson 1072 — Hierarchical indexes
- Multiple fallbacks
- Lesson 216 — Idiom: default value with `or`
- must
- indent the next line.
- Lesson 251 — `if` body indentationLesson 373 — Single-element tupleLesson 399 — Empty setLesson 489 — Keyword-only argumentsLesson 536 — `finally` clauseLesson 604 — `shelve` moduleLesson 649 — Forcing subclasses to overrideLesson 658 — `__hash__` (+2 more)
- mutable
- means an object's contents can be changed in-place without creating a new object.
- Lesson 324 — Lists are mutableLesson 420 — Frozensets as dict keys
N
- Name shadowing
- happens when you create a variable with the same name as one of these built-ins.
- Lesson 37 — Built-in name shadowing
- Named groups
- let you assign descriptive labels to captured text, making your code self-documenting and easier to maintain.
- Lesson 846 — Named groups
- NaN (`nan`)
- Stands for "Not a Number"—indicates an undefined or unrepresentable result
- Lesson 66 — Infinity and NaN
- Negative indexing works
- `-1` gets the last element, `-2` the second-to-last, etc.
- Lesson 1013 — Indexing 1D arrays
- Negative steps (counting backwards)
- Lesson 287 — `range(start, stop, step)`
- Nested approach
- Lesson 566 — Opening multiple files
- never
- a valid index.
- Lesson 148 — `.find(sub)`Lesson 402 — Sets are unorderedLesson 791 — `secrets` moduleLesson 1255 — Project structure for deploy
- new DataFrame
- .
- Lesson 1045 — Setting an indexLesson 1059 — Renaming columnsLesson 1061 — Removing duplicatesLesson 1073 — Sorting
- New projects
- Start with `ruff` instead of juggling three tools.
- Lesson 970 — `ruff` — the modern linter
- new set
- containing only the elements that exist in both original sets.
- Lesson 411 — Intersection `&`Lesson 412 — Difference `-`
- new string
- where every occurrence of the `old` substring has been replaced by the `new` substring.
- Lesson 136 — `.replace(old, new)`Lesson 165 — `.ljust(n)`
- No reassignment
- You don't have to repeat the function name.
- Lesson 516 — Function decoration syntax `@`
- Non-capturing groups
- let you group without the overhead of storing the match.
- Lesson 847 — Non-capturing groups
- Non-empty containers
- We haven't covered containers yet, but the pattern holds
- Lesson 72 — Truthy values
- Normal
- (Gaussian): values cluster around a mean in a bell curve (like human heights)
- Lesson 1034 — Random sampling
- Normal distribution
- skew ≈ 0, kurtosis ≈ 0 (excess)
- Lesson 1115 — Skew and kurtosisLesson 1118 — Normal distributionLesson 1121 — Central limit theorem
- not
- text.
- Lesson 69 — `True` and `False`Lesson 218 — `is not` operatorLesson 258 — `is None` checksLesson 261 — Chained ternariesLesson 305 — Labeling alternativesLesson 494 — Enclosing (nonlocal) scopeLesson 574 — `.writelines(lst)`Lesson 665 — `__del__` (+9 more)
- Not idempotent
- Sending the same POST twice might create two separate items.
- Lesson 1197 — Methods: GET/POST/PUT/DELETE
- Number of epochs
- Often 2–5 epochs are enough; more can lead to overfitting.
- Lesson 1193 — Fine-tuning a transformer
- Numeric types mix freely
- You can compare `int` with `float` because Python considers them compatible numeric types.
- Lesson 210 — Comparing different types
O
- once
- at a specific separator and keep track of what came before it, the separator itself, and what came after.
- Lesson 144 — `.partition(sep)`Lesson 485 — Mutable default argument trapLesson 696 — Module-level codeLesson 821 — `cached_property`Lesson 915 — `asyncio.run(main())`
- one
- `None` object in your entire Python program (it's a singleton), `is` tests whether your variable points to that specific object.
- Lesson 81 — Comparing to None with `is`Lesson 261 — Chained ternariesLesson 325 — `.append(x)`Lesson 820 — `total_ordering`
- one line
- by separating both the names and values with commas:
- Lesson 30 — Multiple assignmentLesson 569 — `.readline()`
- One-Class SVM
- More flexible with kernels, but slower on large datasets
- Lesson 1167 — Anomaly detection
- One-sided
- "Group A is *greater than* Group B" (specific direction)
- Lesson 1122 — Hypothesis testing intro
- only
- letters and digits—no spaces, punctuation, or special characters—using `.
- Lesson 157 — `.isalnum()`Lesson 158 — `.isspace()`Lesson 676 — `__slots__`Lesson 679 — Custom metaclassesLesson 699 — `__all__` list
- Open VS Code
- (the application you installed in the previous lesson)
- Lesson 8 — Installing VS Code for Python
- Open your terminal
- (Command Prompt on Windows, Terminal on macOS/Linux)
- Lesson 11 — Running a .py script
- OpenAPI specification
- (formerly Swagger) under the hood, which is an industry-standard way to describe REST APIs.
- Lesson 1228 — Automatic OpenAPI docs
- Optimized
- Lesson 978 — Common optimizations
- Optional filter
- You can add `if` conditions just like in comprehensions
- Lesson 740 — Generator expression syntax
- Order-aware equality
- two `OrderedDict` instances are equal only if they have the same items *in the same order*
- Lesson 796 — `OrderedDict` features
- Organization
- Constants are easy to spot and update in one place
- Lesson 39 — Constants by conventionLesson 685 — Module conceptLesson 1000 — Maintaining changelogsLesson 1220 — Flask BlueprintsLesson 1236 — Apps within a project
- Other developers
- instantly see what types the function expects and returns
- Lesson 867 — Why type hints
- Outer join
- Keep *all* rows from *both* DataFrames; fill with `NaN` wherever a match is missing.
- Lesson 1076 — Join types
- Output
- Lesson 107 — Newline `\n`Lesson 108 — Tab `\t`Lesson 183 — Expressions in f-stringsLesson 237 — Printing multiple valuesLesson 252 — `else` clausesLesson 253 — `elif` chainsLesson 265 — Literal patternsLesson 272 — Pattern guards with `if` (+56 more)
- Overriding
- means defining a method with the *same name* in the subclass, which replaces the parent's version for that subclass.
- Lesson 637 — Overriding methods
- Overwrites the file
- Like opening in `'w'` mode, this replaces any existing content.
- Lesson 584 — `Path.write_text()`
- OWASP Top Ten
- is a regularly updated list of the most critical security risks facing web applications.
- Lesson 1277 — Application security basics
P
- p-value
- is the probability of observing data **as extreme or more extreme** than what you actually got, **assuming the null hypothesis is true**.
- Lesson 1123 — p-values explainedLesson 1124 — t-testsLesson 1125 — Chi-squared tests
- Pairing with another iterable
- Lesson 799 — `count`
- Parameter `nu`
- Approximate fraction of anomalies expected (like `contamination`).
- Lesson 1167 — Anomaly detection
- Parametrized tests
- let you define the test logic once, then feed it a table of test cases automatically.
- Lesson 938 — Parametrized tests
- Parent before grandparent
- – respect the inheritance hierarchy
- Lesson 641 — Method Resolution Order (MRO)
- parentheses
- instead of square brackets:
- Lesson 740 — Generator expression syntaxLesson 741 — Comprehension vs generatorLesson 1052 — Combining conditions
- Parquet
- is a *columnar binary format* (stores data column-by-column instead of row-by-row).
- Lesson 1085 — Parquet / Feather formats
- PATCH
- (rightmost): Increment for **backward-compatible bug fixes**
- Lesson 996 — Versioning your packageLesson 1196 — How HTTP works
- Path components
- Lesson 833 — `pathlib` recap
- pattern
- (like wildcards) and returning all matching files.
- Lesson 582 — `Path.glob()`Lesson 839 — `re.sub`
- pauses
- at each `yield` statement, returns a value to the caller, and *remembers where it left off*.
- Lesson 729 — `yield` keywordLesson 730 — Generator function vs normal function
- – Vector format, perfect for print and academic papers:
- Lesson 1096 — Saving figuresLesson 1117 — Probability distributions
- PEP 8
- stands for "Python Enhancement Proposal 8" — it's Python's official style guide.
- Lesson 25 — Intro to PEP 8
- PEP 8 compliance
- Following the standard makes your code look professional
- Lesson 39 — Constants by convention
- Performance
- Often implemented in C for speed
- Lesson 690 — Standard library importsLesson 847 — Non-capturing groupsLesson 1006 — `np.arange`Lesson 1223 — Why FastAPILesson 1273 — Reverse proxy with Nginx
- Performance hacks
- – You need `__slots__` applied automatically across many classes
- Lesson 679 — Custom metaclasses
- Philosophy
- PyTorch feels Pythonic and explicit; Keras aims for minimal code
- Lesson 1195 — TensorFlow / Keras preview
- Pickling
- is Python's way of *serializing* (converting to bytes) any Python object so you can save it to a file.
- Lesson 601 — `pickle.dump` / `pickle.load`Lesson 905 — Pickling requirements
- pip
- is Python's default **package installer**.
- Lesson 706 — What is pipLesson 719 — pip vs condaLesson 720 — `pipx` for toolsLesson 1233 — Installing Django
- Pipes
- for simple two-process communication, and **Managers** when you need shared mutable objects like lists or dicts.
- Lesson 904 — Sharing data across processes
- Placeholder exceptions
- – Define custom exception classes that don't need extra behavior yet
- Lesson 607 — Empty class with `pass`
- Plotly
- , a powerful library that creates **interactive, web-based visualizations** you can zoom, pan, and explore directly in your browser.
- Lesson 1106 — Plotly intro
- Plugin architectures
- Multiple plugins can extend the same package namespace independently.
- Lesson 705 — Namespace packages
- PMF
- gives exact probabilities for discrete outcomes, the **PDF** gives probability density for continuous values (area = probability), and the **CDF** accumulates probability from left to right for any distribution type.
- Lesson 1117 — Probability distributions
- Poetry
- and **uv** are next-generation dependency managers that bundle both responsibilities into one streamlined tool.
- Lesson 721 — Poetry & uv preview
- Poisson
- Counting rare events over time or space with no fixed upper limit (e.
- Lesson 1119 — Binomial and Poisson
- Poisson distribution
- models the number of events occurring in a fixed interval when events happen independently at a constant average rate (like the number of emails you receive per hour).
- Lesson 1119 — Binomial and Poisson
- Polite scraping
- means adding delays between requests, respecting `robots.
- Lesson 1283 — Project: web scraper
- Pooling layers
- Downsample spatial dimensions, retain important features
- Lesson 1188 — Convolutional networks (CNNs)
- Portability
- Your code works the same everywhere
- Lesson 779 — UTC vs local timeLesson 1250 — SQLAlchemy Core
- position
- of a substring within a string, or get `-1` if it's not there.
- Lesson 148 — `.find(sub)`Lesson 335 — `.index(x)`Lesson 352 — Iterating with index via enumerateLesson 840 — Match objects
- Positional Encoding
- Since transformers process words in parallel (not sequentially), they add position information so the model knows word order.
- Lesson 1191 — Transformers intro
- Positional format placeholders
- let you number those braces—`{0}`, `{1}`, `{2}`, etc.
- Lesson 174 — Positional format placeholders
- POST
- Send data to create something new (like submitting a form)
- Lesson 1196 — How HTTP worksLesson 1197 — Methods: GET/POST/PUT/DELETELesson 1201 — REST principles
- PostgreSQL
- is a production-grade relational database management system (RDBMS) used by companies worldwide.
- Lesson 1249 — PostgreSQL with `psycopg`
- precision
- show 2 digits after the decimal
- Lesson 176 — Format spec mini-languageLesson 1011 — Choosing a dtypeLesson 1153 — Accuracy, precision, recall, F1
- Principal Component Analysis (PCA)
- to reduce the number of features in your dataset while preserving the most important information.
- Lesson 1165 — PCA
- Private
- Names with a leading underscore like `_validate_input()` or `_cache`—these are internal details that might change or break between versions
- Lesson 622 — Public vs private API
- Pro tip
- Use the `in` operator first to check if the item exists before calling `.
- Lesson 335 — `.index(x)`Lesson 659 — Ordering with `__lt__` etc.
- Process
- Lesson 816 — `reduce`
- Prompt for credentials
- Your PyPI username and password (or API token)
- Lesson 998 — `twine` for publishing
- Propagate through activation
- Multiply by `∂activation/∂z` (derivative of activation function)
- Lesson 1173 — Backpropagation
- Pros
- Fast to compute, helps networks train faster, reduces vanishing gradient
- Lesson 1169 — Activation functionsLesson 1174 — Optimizers
- protocol
- (format) to serialize the data.
- Lesson 603 — Pickle protocolsLesson 651 — Protocols (typing)Lesson 882 — Protocols
- Protocol 0
- The original, human-readable ASCII format (slowest, largest files)
- Lesson 603 — Pickle protocols
- Protocols
- offer a different approach: **structural typing** (also called "static duck typing").
- Lesson 651 — Protocols (typing)
- Public
- Normal names like `calculate_total()` or `price`—these are the stable, documented parts users should rely on
- Lesson 622 — Public vs private API
- Pushing
- sends your committed changes to a remote server—typically GitHub or GitLab—where they're stored safely, backed up, and visible to collaborators.
- Lesson 988 — Pushing to a remote
- PUT
- Update existing data completely
- Lesson 1196 — How HTTP worksLesson 1197 — Methods: GET/POST/PUT/DELETELesson 1201 — REST principles
- PyCoder's Weekly
- is a curated digest of Python articles, tutorials, and projects sent every Tuesday.
- Lesson 1288 — Staying current
- PyCon
- (especially PyCon US) is *the* global gathering—thousands of developers, hundreds of talks, and all videos posted free on YouTube.
- Lesson 1288 — Staying current
- PyCon AU
- , and regional PyCons around the world bring localized communities together with equally excellent content.
- Lesson 1288 — Staying current
- Pydantic models
- to handle this elegantly: you define a Python class describing what data you expect, and FastAPI does the rest.
- Lesson 1226 — Request bodies with Pydantic
- PyData
- conferences focus on data science, NumPy, pandas, and ML—ideal if that's your path.
- Lesson 1288 — Staying current
- Pytest output
- Lesson 935 — `assert` in pytest
- Python 3
- arrived in 2008 as a major upgrade that intentionally broke backward compatibility to fix these issues.
- Lesson 3 — Python 2 vs Python 3
- Python Bytes
- is a short, weekly news show—perfect for staying on top of releases and trends in ~15 minutes.
- Lesson 1288 — Staying current
- Python Weekly
- is similar—another high-quality roundup of what's happening in the community.
- Lesson 1288 — Staying current
- Python-only projects
- You're building web apps, scripts, or APIs that only need pure Python packages
- Lesson 719 — pip vs conda
- Pythonic trust
- Python philosophy prefers readability and trust over rigid enforcement.
- Lesson 620 — Encapsulation by convention
Q
- Quality gate
- Bugs, style issues, or design flaws are caught before deployment
- Lesson 989 — Pull requests / merge requests
- Queues
- Add to the right, remove from the left.
- Lesson 793 — `deque`Lesson 904 — Sharing data across processes
- Quick file operations
- Lesson 833 — `pathlib` recap
R
- R²
- Use to understand overall model quality, but combine it with MAE or MSE for complete picture
- Lesson 1156 — MAE, MSE, R²
- Random forest
- `n_estimators` (number of trees), `max_depth` (tree depth)
- Lesson 1158 — Hyperparameters
- Random selection
- Picks combinations randomly from the parameter space
- Lesson 1160 — `RandomizedSearchCV`
- Randomizing features
- Each split in each tree considers only a random subset of features
- Lesson 1142 — Random forests
- Rapid prototyping
- Perfect for exploratory data analysis when you need to visualize trends quickly before deciding if deeper customization is needed.
- Lesson 1107 — Plotly Express
- Read
- elements: `my_tuple[0]` works
- Lesson 378 — Tuples are immutableLesson 495 — Global scopeLesson 512 — Capturing enclosing variablesLesson 589 — `csv.writer`Lesson 1081 — Writing Excel
- Readability
- when the operation isn't obvious
- Lesson 507 — Lambda vs defLesson 516 — Function decoration syntax `@`Lesson 623 — Helper methodsLesson 744 — Why decoratorsLesson 846 — Named groupsLesson 849 — Compiling patternsLesson 878 — `TypeAlias`
- readable
- .
- Lesson 14 — Indentation as syntaxLesson 356 — Basic comprehensionLesson 947 — DoctestsLesson 1041 — Creating from a dict of lists
- Reading the comprehension
- "For each sublist in nested, then for each item in that sublist, collect the item.
- Lesson 360 — Flattening with comprehensions
- Real Python Newsletter
- includes tutorials from their deep library, plus community news and job postings.
- Lesson 1288 — Staying current
- Real Python Podcast
- blends tutorials with interviews and is great for intermediate learners.
- Lesson 1288 — Staying current
- Real-time monitoring
- another process needs to read the file while you're writing
- Lesson 577 — Flushing buffers
- Real-world analogy
- Think of it like arithmetic: `2 + 3 * 4` gives you `14`, not `20`, because multiplication happens first.
- Lesson 77 — Combining booleansLesson 1197 — Methods: GET/POST/PUT/DELETE
- Real-world use cases
- Lesson 1167 — Anomaly detection
- Recall
- (Sensitivity) = (true positives) / (all actual positives)
- Lesson 1153 — Accuracy, precision, recall, F1
- Receive feedback
- reviewers comment on specific lines, suggest changes, or approve
- Lesson 989 — Pull requests / merge requests
- Recommendation engines
- Balance both with F1 to avoid annoying users or missing opportunities.
- Lesson 1153 — Accuracy, precision, recall, F1
- Recurrent Neural Networks (RNNs)
- are designed for sequential data where order matters—like time series, text, audio, or video.
- Lesson 1189 — Recurrent networks (RNNs)
- Recursion issues
- (though Python usually raises `RecursionError`, a subclass)
- Lesson 555 — `RuntimeError`
- Reddit's r/Python
- and **Python Discord servers** offer real-time discussions
- Lesson 1288 — Staying current
- Redirect
- assignments to alternative storage (like a dictionary)
- Lesson 667 — `__setattr__` / `__delattr__`
- Reduce repetition
- Create specialized functions without rewriting logic
- Lesson 515 — Using closures for factories
- regression
- is when working code breaks later.
- Lesson 926 — Why testingLesson 1130 — Regression vs classificationLesson 1137 — Loading a sample datasetLesson 1141 — Decision trees
- Regression output
- A number from a continuous range (infinite possibilities)
- Lesson 1130 — Regression vs classification
- Regular strings (`str`)
- are like a book written in any language — they represent *meaning* and characters.
- Lesson 106 — Byte strings preview
- relative
- address might be "two doors down," but an **absolute** address is "123 Main Street, Springfield.
- Lesson 703 — Absolute importsLesson 969 — Import sorting with isort
- Relative paths
- start from your current working directory and might include `.
- Lesson 587 — Relative vs absolute paths
- Reliability
- Battle-tested code maintained by the Python core team
- Lesson 690 — Standard library imports
- Remove noise
- By keeping only the most important information, models may generalize better.
- Lesson 1165 — PCA
- Repeat
- Continue adding trees, each correcting the remaining errors
- Lesson 1143 — Gradient boostingLesson 1172 — Gradient descent
- Replace all occurrences
- Lesson 136 — `.replace(old, new)`
- Report generator
- Query a database, create a CSV, email it every Monday
- Lesson 1284 — Project: automation script
- Reproducibility
- – Every developer on your team gets the same versions
- Lesson 709 — Installing a specific version
- Reproducibility across platforms
- conda environments are more portable between Windows/Mac/Linux for scientific software
- Lesson 719 — pip vs conda
- Request rates
- How many operations per second/minute your app handles
- Lesson 1276 — Monitoring and metrics
- ResNet
- (skip connections), and **Inception** (multi-scale filters) each introduced innovations that shaped modern deep learning.
- Lesson 1188 — Convolutional networks (CNNs)
- Resource cleanup
- is better handled with context managers (`__enter__` / `__exit__`)
- Lesson 665 — `__del__`
- Resource leaks
- Your operating system has a limit on how many files can be open at once.
- Lesson 562 — Closing filesLesson 565 — Why `with` is preferred
- Resources
- Lesson 1201 — REST principles
- Response models
- let you explicitly declare the shape and type of data your endpoint will return.
- Lesson 1227 — Response models
- REST
- (Representational State Transfer) is an architectural style for designing networked applications, particularly web APIs.
- Lesson 1201 — REST principles
- Result
- Threading gives you no speedup for CPU-bound tasks.
- Lesson 900 — The GILLesson 1083 — Reading SQL
- Return `False`
- or `None` (the default) → let the exception propagate normally
- Lesson 761 — Exception handling in `__exit__`
- Return `True`
- (or any truthy value) → suppress the exception (don't re-raise it)
- Lesson 761 — Exception handling in `__exit__`
- Return a dictionary directly
- Flask automatically converts it to JSON (Flask 1.
- Lesson 1216 — Returning JSON
- Reusability
- You can use the same name multiple times:
- Lesson 175 — Keyword format placeholdersLesson 623 — Helper methodsLesson 685 — Module conceptLesson 744 — Why decoratorsLesson 849 — Compiling patternsLesson 1220 — Flask BlueprintsLesson 1230 — Dependency injectionLesson 1236 — Apps within a project
- Reverting Mistakes
- Lesson 980 — Why version control
- Rich ecosystem
- Libraries like NumPy, pandas, scikit-learn, TensorFlow, and PyTorch
- Lesson 1128 — What is machine learning
- right
- .
- Lesson 27 — Assignment with `=`Lesson 134 — `.lstrip()` / `.rstrip()`Lesson 141 — `.rsplit()`Lesson 165 — `.ljust(n)`Lesson 166 — `.rjust(n)`Lesson 167 — `.center(n)`Lesson 207 — `>` greater thanLesson 1076 — Join types
- Right join
- Keep *all* rows from the right DataFrame; fill with `NaN` where the left has no match.
- Lesson 1076 — Join typesLesson 1246 — JOINs
- ROC
- (Receiver Operating Characteristic) curves visualize performance across *all possible thresholds*.
- Lesson 1155 — ROC and AUC
- route
- a URL path like `/` or `/about` — and a function that returns what to display when someone visits that URL.
- Lesson 1212 — Hello, FlaskLesson 1218 — Templates with Jinja2
- Routers
- automatically generate URL patterns for your API endpoints, saving you from manually writing each route.
- Lesson 1243 — Django REST framework
- row
- to every row of a matrix, or a **column** to every column.
- Lesson 1026 — BroadcastingLesson 1042 — Creating from a list of dictsLesson 1244 — SQL fundamentals
- run
- a file directly, `__name__` equals `'__main__'`
- Lesson 697 — `if __name__ == '__main__':`Lesson 915 — `asyncio.run(main())`Lesson 1266 — Running containersLesson 1281 — Project: ML model API
- Run and Debug
- icon in the left sidebar (or press `Ctrl+Shift+D` / `Cmd+Shift+D`)
- Lesson 956 — VS Code debugger
- Running it
- Lesson 827 — `sys.argv`
S
- Safety
- Prevents accidentally mixing up argument order
- Lesson 489 — Keyword-only argumentsLesson 1250 — SQLAlchemy Core
- same
- .
- Lesson 224 — `^` bitwise XORLesson 332 — `.clear()`Lesson 346 — Aliasing pitfallLesson 485 — Mutable default argument trap
- Same familiar API
- If you know `requests`, you already mostly know `httpx`
- Lesson 1210 — `httpx` for async HTTP
- Sample output
- Lesson 1120 — Sampling and the law of large numbers
- Sample size matters
- larger samples (n ≥ 30 is a common rule) make the normal approximation better.
- Lesson 1121 — Central limit theorem
- Sampling
- is the act of drawing observations from a population.
- Lesson 1120 — Sampling and the law of large numbers
- Sampling without replacement
- means grabbing several random items from a collection, but once an item is picked, it's removed from the pool.
- Lesson 789 — `random.sample(pop, k)`
- Scalability
- As your app grows, keep it maintainable by dividing it logically
- Lesson 1220 — Flask Blueprints
- Scale up
- As traffic grows or you need specific features (managed databases, caching, queues), AWS or GCP provide comprehensive ecosystems—at the cost of complexity.
- Lesson 1274 — Cloud deployment options
- Security
- hides your app server's internal port and can filter bad requests.
- Lesson 1273 — Reverse proxy with Nginx
- Security / Ethical Hacking
- Lesson 1287 — Specialization paths
- Security features
- Protection against common vulnerabilities (SQL injection, cross-site scripting, CSRF)
- Lesson 1234 — Why Django
- Security Logging Failures
- Not logging security events or failing to monitor logs for attacks.
- Lesson 1277 — Application security basics
- Security Misconfiguration
- Default passwords, debug mode in production, exposed secret keys in environment variables checked into Git.
- Lesson 1277 — Application security basics
- See updated values
- If the outer function modifies the variable, the closure sees the change
- Lesson 513 — Closure cell objects
- Select your preferences
- Lesson 1177 — Installing PyTorch
- Self-documentation
- Names like `Coordinates` or `UserID` convey meaning better than raw types.
- Lesson 878 — `TypeAlias`
- Separation of concerns
- Keep cross-cutting logic (logging, caching, validation) separate from core function logic.
- Lesson 744 — Why decorators
- sequentially
- (one after another), your program spends most of its time just *waiting*: waiting for the server to respond, waiting for data to arrive over the network, waiting for the disk to write the file.
- Lesson 891 — Why threadsLesson 1143 — Gradient boosting
- Serializers
- convert Django models to JSON (and validate incoming JSON back to models).
- Lesson 1243 — Django REST framework
- Server capabilities
- Can build full dashboard applications (advanced feature)
- Lesson 1108 — Bokeh intro
- Server reads
- the session ID, retrieves your data, and "remembers" you
- Lesson 1207 — Sessions and cookies
- Server sends
- JSON back with `Content-Type: application/json` and HTTP status
- Lesson 1200 — JSON over HTTP
- Server-Side Request Forgery (SSRF)
- Allowing an attacker to make your server send requests to internal systems.
- Lesson 1277 — Application security basics
- Session management
- Maintain cookies and headers across multiple requests
- Lesson 1202 — `requests` library
- Session object
- handles cookies automatically across multiple requests:
- Lesson 1207 — Sessions and cookies
- set
- the nth bit (counting from the right, starting at 0), use bitwise OR with a "mask":
- Lesson 228 — Bit manipulation idiomsLesson 397 — Set literal `{}`
- Sets
- Python uses a hash table to jump directly to where the element *should* be.
- Lesson 423 — Fast membership tests
- Setup and teardown hooks
- for preparing and cleaning up test environments
- Lesson 927 — `unittest.TestCase`
- shadow
- built-in names by creating variables with the same name (like `len = 5`).
- Lesson 496 — Built-in scopeLesson 500 — Shadowing built-ins
- shallow
- because it only copies the top-level list structure.
- Lesson 347 — Shallow copy with sliceLesson 348 — `list.copy()`
- shallow copy
- a new list object containing references to the same elements as the original.
- Lesson 347 — Shallow copy with sliceLesson 446 — `.copy()`Lesson 854 — `copy` module
- Shared state
- All parts of your program see the same module instance, including any variables or objects it creates.
- Lesson 692 — Re-imports & caching
- Short codes
- `'r'`, `'b'`, `'g'`, `'k'` (black), `'c'` (cyan), `'m'` (magenta), `'y'` (yellow)
- Lesson 1092 — Customizing styles
- short-circuiting
- .
- Lesson 78 — Boolean short-circuitingLesson 211 — `and` operatorLesson 214 — Short-circuit semantics
- Shortcut for one-shot hashing
- Lesson 859 — `hashlib`
- Shortening long names
- Lesson 688 — `import as` alias
- Show deployed projects
- Live demos (a running API, a Jupyter notebook on Binder) are more impressive than code alone
- Lesson 1289 — Building a portfolio
- Sign-based replacement
- Lesson 1035 — `np.where`
- Simple API
- Clear, readable method names that match HTTP verbs (`requests.
- Lesson 1202 — `requests` library
- Simulating probabilities
- Lesson 785 — `random.random()`
- Single inheritance
- means one class (the **child** or **subclass**) extends another class (the **parent** or **superclass**), inheriting all its methods and attributes.
- Lesson 635 — Single inheritance
- Single Page Application (SPA)
- loads one HTML page and dynamically updates content as the user interacts with it—no full page reloads.
- Lesson 1282 — Project: small SPA-backed web app
- skipped
- .
- Lesson 278 — `while ... else`Lesson 297 — `for ... else`Lesson 940 — Marking and selecting tests
- Slow
- Lesson 978 — Common optimizationsLesson 1085 — Parquet / Feather formatsLesson 1166 — t-SNE and UMAP
- Sort imports (like isort)
- Lesson 970 — `ruff` — the modern linter
- Sorting by absolute value
- Lesson 508 — Lambdas in `sorted(key=...)`
- Sorting by multiple columns
- Lesson 1073 — Sorting
- Sorting dictionaries by values
- Lesson 508 — Lambdas in `sorted(key=...)`
- Sorting strings by length
- Lesson 508 — Lambdas in `sorted(key=...)`
- Spam filter
- High precision (don't block real emails) even if some spam slips through.
- Lesson 1153 — Accuracy, precision, recall, F1
- Specifying the orientation
- Lesson 1082 — Reading JSON
- Speed
- The pattern is compiled only once, not on every call
- Lesson 849 — Compiling patternsLesson 890 — `pyright` and `pylance`Lesson 970 — `ruff` — the modern linterLesson 1002 — Why NumPyLesson 1160 — `RandomizedSearchCV`Lesson 1165 — PCA
- SQL
- (Structured Query Language) is a specialized language for managing and querying data stored in **relational databases**.
- Lesson 1244 — SQL fundamentals
- SSL/TLS termination
- Nginx handles HTTPS certificates; your app sees plain HTTP.
- Lesson 1273 — Reverse proxy with Nginx
- Stability
- – Prevents surprise breakage from automatic updates
- Lesson 709 — Installing a specific version
- standard error
- (stderr).
- Lesson 243 — Printing to stderrLesson 1121 — Central limit theoremLesson 1126 — Confidence intervals
- standard library
- , a vast collection of pre-written modules that handle everything from file operations to date manipulation, from regular expressions to HTTP requests.
- Lesson 690 — Standard library importsLesson 969 — Import sorting with isort
- Star unpacking
- lets you use `*` before a variable name to collect all the "extra" values into a list:
- Lesson 376 — Star unpacking
- Start
- must be *larger* than **stop**
- Lesson 288 — Reverse iteration with rangeLesson 836 — `re.search` vs `re.match`
- Start simple
- Begin with a weak initial prediction (often just the mean target value)
- Lesson 1143 — Gradient boostingLesson 1274 — Cloud deployment options
- State management
- Track app state (tasks list, user auth) in frontend
- Lesson 1282 — Project: small SPA-backed web app
- State-of-the-art performance
- Built by top researchers
- Lesson 1192 — Pretrained models with Hugging Face
- Statelessness
- Lesson 1201 — REST principles
- Statement
- "Make me a coffee" — This *does* something.
- Lesson 13 — Statements and expressionsLesson 510 — Lambda limitations
- Statements
- are instructions that *do* something or *make something happen*.
- Lesson 13 — Statements and expressions
- Static analysis tools
- like `mypy` that read your code without running it
- Lesson 870 — Hints don't enforce
- Static analyzers
- like `mypy` can catch `greet(123)` *before you run the code*
- Lesson 867 — Why type hints
- static method
- is a plain function that lives inside a class namespace but doesn't receive `self` (the instance) or `cls` (the class) automatically.
- Lesson 627 — Static methodsLesson 628 — When to use each
- Statistical focus
- Functions like distribution plots, violin plots, box plots, and regression plots are built-in and require minimal code.
- Lesson 1099 — Why seaborn
- status code
- a three-digit number telling you what happened:
- Lesson 1196 — How HTTP worksLesson 1198 — Status codes
- step
- (also called a **stride**) as a third value: `[start:stop:step]`.
- Lesson 123 — Slice with step `[a:b:c]`Lesson 287 — `range(start, stop, step)`Lesson 288 — Reverse iteration with rangeLesson 319 — Slice with step
- Step of -2
- Lesson 287 — `range(start, stop, step)`
- Step-by-step
- Lesson 816 — `reduce`
- Streaming training data
- means loading small batches of examples *on-the-fly*, processing them during training, then discarding them to make room for the next batch.
- Lesson 1185 — DataLoader and Dataset
- string
- is a piece of text—like a word, sentence, or any sequence of characters.
- Lesson 97 — Single-quote stringsLesson 246 — Casting input to intLesson 595 — `json.dumps`Lesson 776 — `strptime` parsingLesson 839 — `re.sub`
- strings
- , not integers.
- Lesson 57 — `bin()`, `oct()`, `hex()`Lesson 190 — Encoding strings to bytesLesson 827 — `sys.argv`
- Strongly Typed
- Lesson 1223 — Why FastAPI
- structural typing
- (also called "static duck typing").
- Lesson 651 — Protocols (typing)Lesson 882 — Protocols
- Structured logging
- means emitting logs as JSON objects with consistent field names.
- Lesson 965 — Structured logging
- Stubbing during development
- – Create the class structure first, fill in details later
- Lesson 607 — Empty class with `pass`
- subclass
- that inherits attributes and methods from a **parent class** using Python's single-inheritance syntax.
- Lesson 635 — Single inheritanceLesson 887 — `Self` type
- Subject to change
- You might rename or remove it later without warning
- Lesson 41 — Leading underscore convention
- Subplots
- let you arrange multiple plots (called "axes" in matplotlib) in rows and columns within one figure —like dividing a canvas into panels.
- Lesson 1090 — Subplots
- Subsequent requests
- Your browser automatically includes that cookie in the headers
- Lesson 1207 — Sessions and cookies
- Sum everything
- Add all weighted inputs together, plus a **bias** term: `z = w₁×x₁ + w₂×x₂ + w₃×x₃ + b`
- Lesson 1168 — Perceptrons and neurons
- Support `nonlocal`
- The inner function can modify the shared variable using the `nonlocal` keyword
- Lesson 513 — Closure cell objects
- SVG
- – Vector format, scalable without quality loss, ideal for editing later:
- Lesson 1096 — Saving figures
- Syntax
- Lesson 137 — `.replace(old, new, n)`Lesson 165 — `.ljust(n)`Lesson 238 — `sep` argumentLesson 394 — `._replace()` on namedtuplesLesson 813 — `zip_longest`Lesson 925 — `run_in_executor`
- SyntaxError
- happens when Python reads your code and finds something that breaks the language rules—like a typo, missing colon, or incorrect indentation.
- Lesson 23 — SyntaxError vs runtime errorLesson 116 — Raw string limitations
T
- Talk Python To Me
- (hosted by Michael Kennedy) features deep-dive interviews with library authors, framework creators, and community leaders.
- Lesson 1288 — Staying current
- Target
- (also called *labels*, *output*, or *y*): The answer you're trying to *predict*
- Lesson 1131 — Features and targets
- Target A
- All arrows land within 1 inch of the bullseye (low variance).
- Lesson 1112 — Variance and std dev
- Template generates HTML
- Placeholders get replaced with actual values
- Lesson 1238 — Views and templates
- templates
- you're describing the exact shape you expect, with slots that can either demand a specific value or capture whatever's there.
- Lesson 269 — Sequence patternsLesson 1218 — Templates with Jinja2Lesson 1238 — Views and templates
- TensorFlow
- is Google's deep learning framework, originally released in 2015.
- Lesson 1195 — TensorFlow / Keras preview
- Test discovery
- is unittest's ability to automatically find and execute all test files in your project.
- Lesson 931 — Test discovery
- Test set
- (~10-20%): Data held completely separate until the very end.
- Lesson 1132 — Training, validation, test
- Test with invalid keys
- Make sure your error-handling works when auth fails (typically a 401 or 403 status code).
- Lesson 1206 — Headers and auth
- Testing
- Smaller methods are easier to verify individually.
- Lesson 623 — Helper methodsLesson 709 — Installing a specific versionLesson 790 — `random.seed()`Lesson 1278 — Project: CLI tool
- Testing approaches
- how fixtures are structured, what gets mocked, how edge cases are covered.
- Lesson 1285 — Reading other people's code
- Text handling
- Python 3 properly distinguishes between text (words, sentences) and raw data (bytes), preventing common errors
- Lesson 3 — Python 2 vs Python 3
- Text mode (`'r'`)
- – Python treats the file as containing text (strings).
- Lesson 558 — Text vs binary mode
- Think of it like
- Teaching a child to identify animals by showing them pictures labeled "cat," "dog," "bird.
- Lesson 1129 — Supervised vs unsupervised
- Third-party extensions
- Allow external libraries to add modules to your package namespace.
- Lesson 705 — Namespace packages
- Thread safety
- immutable objects are inherently safer in concurrent code
- Lesson 671 — Frozen dataclasses
- three nested functions
- Lesson 519 — Decorators with argumentsLesson 751 — Decorators with arguments
- title
- or **author** (the content), while `.
- Lesson 1073 — SortingLesson 1091 — Labels, titles, legends
- Too large
- You *jump wildly* past the optimal setting, overshooting the minimum repeatedly.
- Lesson 1175 — Learning rate
- Too loose
- (high bias): The string won't produce the right note — it's *underfitting* the musical pattern
- Lesson 1133 — Overfitting and underfitting
- Too tight
- (high variance): The string breaks — it's *overfitting* by being too rigid and sensitive
- Lesson 1133 — Overfitting and underfitting
- Tool-specific settings
- Lesson 993 — `pyproject.toml`
- traceback
- a detailed error report that shows exactly what happened and where.
- Lesson 22 — Reading error tracebacksLesson 527 — Reading a traceback
- Tracking Changes
- Lesson 980 — Why version control
- Traditional programming
- Lesson 1128 — What is machine learning
- Traditional syntax
- Lesson 872 — Union types
- Training score
- how well the model performs on the data it was trained on
- Lesson 1161 — Learning curves
- Transform (keeps all items)
- `[x if condition else y for x in lst]`
- Lesson 358 — Conditional expression in comprehension
- Transforming strings
- Lesson 354 — Building a new list in a loop
- Transposition
- flips an array along its diagonal — rows become columns, and columns become rows.
- Lesson 1020 — `transpose` and `.T`
- triple quotes
- either `'''` or `"""`.
- Lesson 99 — Triple-quoted stringsLesson 186 — Multi-line f-strings
- true division
- , which means it always returns a float—even when you divide two integers that could divide evenly.
- Lesson 61 — True division `/`Lesson 91 — Implicit type coercionLesson 197 — `/` true division
- truncates
- a number—meaning it chops off the decimal portion entirely and returns just the integer part.
- Lesson 65 — `math.trunc`Lesson 67 — Float to int conversionLesson 92 — Explicit conversion to int
- tuple
- , not a list.
- Lesson 153 — `.startswith(tuple)`Lesson 371 — Tuple literal `()`Lesson 380 — Tuple indexing & slicingLesson 390 — Tuple vs list rule of thumbLesson 477 — Multiple return valuesLesson 1004 — `np.zeros` / `np.ones`Lesson 1012 — Array shape and dim
- tuple of types
- as the second argument to `isinstance()`.
- Lesson 87 — `isinstance` with tuples of typesLesson 533 — Catching multiple exceptions
- Tuple packing
- happens when you write comma-separated values without explicit parentheses, and Python automatically bundles them into a tuple.
- Lesson 374 — Tuple packing
- Tuple replacement
- You want tuple performance but hate `data[0]`, `data[1]`.
- Lesson 792 — `namedtuple` recap
- tuple unpacking
- Lesson 32 — Swapping variablesLesson 439 — `.items()`
- two arguments
- to `range()`, you can set both where to start and where to stop.
- Lesson 286 — `range(start, stop)`Lesson 370 — `reduce()` from functools
- Two characters combined
- (decomposed): `e` (U+0065) + `´` (U+0301, a combining accent)
- Lesson 193 — Unicode normalization preview
- Two-sided
- "There *is* a difference" (could be higher *or* lower)
- Lesson 1122 — Hypothesis testing intro
- type hints
- directly into the definition, making your code clearer and enabling better editor support.
- Lesson 396 — `typing.NamedTuple` class syntaxLesson 1223 — Why FastAPI
- Type this command
- Lesson 11 — Running a .py script
- Typed
- stores exact dtypes
- Lesson 1085 — Parquet / Feather formatsLesson 1225 — Path and query parameters
- TypeError
- Lesson 126 — String immutability
U
- Ubiquity
- Nearly every data science tutorial, research paper, and notebook uses it
- Lesson 1087 — Why matplotlib
- UMAP
- (Uniform Manifold Approximation and Projection) are dimensionality reduction techniques designed specifically for **visualization**.
- Lesson 1166 — t-SNE and UMAP
- Unary `+`
- (positive sign): Leaves the number unchanged (rarely used, but legal)
- Lesson 201 — Unary `+` and `-`
- Understand code faster
- see at a glance what types a function expects
- Lesson 521 — Annotating parameters
- Uniform
- every value in a range is equally likely (like rolling a fair die)
- Lesson 1034 — Random sampling
- unsupervised learning
- , you have **unlabeled data**—no correct answers provided.
- Lesson 1129 — Supervised vs unsupervisedLesson 1167 — Anomaly detection
- Unsupported operations between types
- Lesson 549 — `TypeError`
- Untracked files
- Git doesn't know about yet (new Python scripts you created)
- Lesson 983 — `git status` / `git diff`
- Update
- You typically modify something inside the loop so it eventually stops (otherwise it runs forever!
- Lesson 273 — `while` basicsLesson 560 — `'+'` read/write modesLesson 1245 — SELECT, INSERT, UPDATE, DELETE
- Update a specific package
- Lesson 708 — `pip install --upgrade`
- Update pip itself
- Lesson 708 — `pip install --upgrade`
- Update predictions
- Add this tree's predictions (scaled by a learning rate) to the ensemble
- Lesson 1143 — Gradient boosting
- Upgrading
- Use `pip install --upgrade scikit-learn` to get the latest version.
- Lesson 1135 — Installing scikit-learn
- URL routing
- Map web addresses to your Python functions
- Lesson 1234 — Why DjangoLesson 1238 — Views and templates
- Use `'a'`
- when you're adding to a log file, appending new records, or building up data over time without losing history.
- Lesson 576 — Truncating vs appending
- Use `'w'`
- when you're generating a completely new report, config file, or output—anything where old data is obsolete.
- Lesson 576 — Truncating vs appending
- Use `async def`
- if your route calls `await` for database queries, HTTP requests, file operations, or any async library.
- Lesson 1229 — Async routes
- Use `def` for
- Lesson 507 — Lambda vs def
- Use `jsonify()`
- Explicitly creates a JSON response with the correct headers
- Lesson 1216 — Returning JSON
- Use `lambda` for
- Lesson 507 — Lambda vs def
- Use `pyproject.toml`
- to *declare* your project's direct dependencies and metadata.
- Lesson 1256 — Pinning dependencies
- Use `requirements.txt`
- to *lock* exact versions for deployment, CI/CD, or reproducing a working environment.
- Lesson 1256 — Pinning dependencies
- Use ASGI
- for async frameworks like FastAPI, or when you need WebSockets, HTTP/2, or need to handle many concurrent I/O-bound requests efficiently.
- Lesson 1270 — WSGI vs ASGI
- Use WSGI
- for traditional frameworks like Flask or Django when you don't need async features.
- Lesson 1270 — WSGI vs ASGI
- Users know what's safe
- they won't depend on internal details you might change
- Lesson 622 — Public vs private API
- Using `and`
- Both conditions must be `True` for the whole expression to be `True`.
- Lesson 256 — Comparison with `and`/`or`
- Using `or`
- At least one condition must be `True` for the whole expression to be `True`.
- Lesson 256 — Comparison with `and`/`or`
- Using the loop variable
- Lesson 281 — `for` basics
- UTC (Coordinated Universal Time)
- is the universal reference point—no DST shifts, no regional quirks.
- Lesson 779 — UTC vs local time
- UTF-8
- , which can represent all Unicode characters:
- Lesson 190 — Encoding strings to bytesLesson 561 — Encoding argument
- UUID
- (Universally Unique IDentifier) is a 128-bit number designed to be unique across space and time —even without coordination between systems.
- Lesson 858 — `uuid` module
- Uvicorn
- – an ASGI server that runs your FastAPI application
- Lesson 1222 — Installing FastAPILesson 1272 — Uvicorn for ASGI
V
- Valid
- Lesson 34 — Valid vs invalid identifiersLesson 116 — Raw string limitationsLesson 483 — Mixing positional and keyword
- Validate
- values before allowing assignment
- Lesson 667 — `__setattr__` / `__delattr__`Lesson 998 — `twine` for publishingLesson 1227 — Response models
- Validation
- Checking if a list is empty (`len(lst) == 0`) or has the expected number of items
- Lesson 363 — `len(lst)`
- Validation set
- (~10-20%): Data used to tune your model and make decisions during development.
- Lesson 1132 — Training, validation, test
- variance
- measures how spread out the data is from the mean.
- Lesson 855 — `statistics` moduleLesson 1112 — Variance and std devLesson 1133 — Overfitting and underfitting
- Variations
- Lesson 983 — `git status` / `git diff`
- Vectorization
- Operations apply to entire arrays at once without explicit loops
- Lesson 1002 — Why NumPy
- Verify
- confirm a variable holds the kind of data you think it does
- Lesson 85 — The `type()` functionLesson 587 — Relative vs absolute paths
- VGG
- (uniform design), **ResNet** (skip connections), and **Inception** (multi-scale filters) each introduced innovations that shaped modern deep learning.
- Lesson 1188 — Convolutional networks (CNNs)
- view
- of all the (key, value) pairs in a dictionary.
- Lesson 439 — `.items()`Lesson 1018 — `reshape`Lesson 1019 — `ravel` and `flatten`Lesson 1238 — Views and templates
- view object
- containing all the keys in your dictionary.
- Lesson 437 — `.keys()`Lesson 440 — Dict views are live
- Views, not copies
- Slicing returns a *view* on the original data when possible
- Lesson 1015 — Slicing arrays
- ViewSets
- or **APIView** classes handle HTTP requests (GET, POST, PUT, DELETE) and return JSON responses.
- Lesson 1243 — Django REST framework
- Virtual environments
- solve this by creating isolated "bubbles" for each project—separate copies of Python and its own set of installed packages.
- Lesson 714 — Virtual environmentsLesson 720 — `pipx` for tools
- Visualization
- You can't plot 50-dimensional data, but you can plot 2D or 3D.
- Lesson 1165 — PCALesson 1166 — t-SNE and UMAP
- VMs
- like shipping separate houses to different locations — each house has its own foundation, walls, plumbing, and electrical system.
- Lesson 1261 — What is Docker
- Vulnerable and Outdated Components
- Using old versions of libraries with known exploits.
- Lesson 1277 — Application security basics
W
- Web Development
- Companies like Instagram, Spotify, and YouTube use Python to build and run their websites.
- Lesson 2 — Why learn PythonLesson 1287 — Specialization paths
- Weights are applied
- Each input is multiplied by a **weight** (importance factor): `[w₁, w₂, w₃]`
- Lesson 1168 — Perceptrons and neurons
- What happens
- Lesson 588 — `csv.reader`
- When to use which
- Lesson 1182 — Optimizers in PyTorch
- Whitespace
- Spaces around operators (`x = 1`, not `x=1`), no trailing whitespace.
- Lesson 966 — PEP 8 reminders
- why
- decorators exist in Python: they let you cleanly wrap logic around many different functions without repeating yourself.
- Lesson 744 — Why decoratorsLesson 745 — First-class function recapLesson 1174 — Optimizers
- Why Adam is popular
- Works well out-of-the-box on many problems with minimal tuning.
- Lesson 1174 — Optimizers
- Why does this fail
- Even in raw strings, Python still uses backslashes to escape the closing quote character.
- Lesson 116 — Raw string limitations
- Why it works
- OR with 1 always produces 1; OR with 0 leaves the bit unchanged.
- Lesson 228 — Bit manipulation idioms
- width
- make the output at least 10 characters wide
- Lesson 176 — Format spec mini-languageLesson 1101 — `sns.boxplot` / `sns.violinplot`
- Wildcard basics
- Lesson 582 — `Path.glob()`
- Windows
- Double-click the installer file.
- Lesson 4 — Installing PythonLesson 12 — Exiting the REPLLesson 593 — Newline handling on CSVLesson 1262 — Installing DockerLesson 1284 — Project: automation script
- With `and`
- If the first lock is broken, you don't need to check the second — you already can't open the door.
- Lesson 214 — Short-circuit semantics
- With `end=''`
- Lesson 242 — Printing without newline
- With `or`
- If the first lock opens, you don't need to check the second — you're already in.
- Lesson 214 — Short-circuit semantics
- With decorators
- , you write the wrapping logic *once* as a decorator, then "stamp" it onto any function with a single `@decorator_name` line.
- Lesson 744 — Why decorators
- Without
- the tuple, you'd need:
- Lesson 87 — `isinstance` with tuples of typesLesson 705 — Namespace packages
- Without `end`
- Lesson 242 — Printing without newline
- Without arguments
- , `most_common()` returns a list of *all* `(element, count)` tuples sorted from most to least frequent:
- Lesson 467 — `Counter.most_common()`
- Without decorators
- , you'd have to manually wrap every function call or duplicate code inside each function body.
- Lesson 744 — Why decorators
- Workaround
- Use module-level functions instead of lambdas, pass paths instead of file objects, or use serialization-friendly data structures.
- Lesson 905 — Pickling requirements
- Works with any framework
- Flask, FastAPI, Django—just load it before initializing the app.
- Lesson 1258 — `python-dotenv`
- Write for your audience
- Tailor your portfolio if applying for data roles (emphasize ML projects) vs.
- Lesson 1289 — Building a portfolio
- Write mode (`'w'`)
- This *truncates* the file, meaning it **immediately erases all existing content** the moment you open it.
- Lesson 576 — Truncating vs appending
- Wrong comparison operator
- Lesson 280 — Avoiding infinite loops
- WSGI
- (Web Server Gateway Interface) is Python's original standard for synchronous web applications.
- Lesson 1270 — WSGI vs ASGI
X
- XGBoost
- (Extreme Gradient Boosting): Highly optimized, parallel processing, handles missing values, regularization built-in
- Lesson 1143 — Gradient boosting
Y
- you
- (the client) did something wrong.
- Lesson 1198 — Status codesLesson 1225 — Path and query parameters
- You can conditionally decorate
- apply a decorator only under certain conditions by using if/else logic with manual decoration.
- Lesson 746 — Manual decoration
- You have freedom
- you can refactor private methods without breaking anyone's code
- Lesson 622 — Public vs private API
- Your editor
- knows `name` is a string, so it offers autocomplete for string methods
- Lesson 867 — Why type hints