Index A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | Y | Z A abc module abstract base class abstract data type abstraction, [1] abstractmethod decorator (@abstractmethod) accumulator accumulator pattern, [1] addition method (__add__) adjacency list algorithm, [1] algorithm correctness algorithm design algorithm efficiency algorithm properties algorithm selection aliasing, [1], [2], [3] all(), [1], [2] alternation (|) alternative execution amortized cost anchor (regex) and operator anonymous function any(), [1] API API contract API endpoint API key arbitrary arguments (*args) arbitrary keyword arguments (**kwargs) argument, [1] argument packing (*args) argument unpacking arithmetic operator ASCII, [1] assert statement, [1] assert_called_once_with() assertAlmostEqual() assertEqual() assertion-based testing AssertionError assignment operator (=), [1] assignment statement async for async generator attribute shadowing augmented assignment (+=) Authorization header B backtracking balanced brackets base case, [1], [2] base conversion bearer token benchmarking, [1] Big O notation, [1], [2] bigram binary binary search binary search tree binary tree bisect module bisect_left() bisect_right() bisect_search() bisection debugging bit bit shift bitwise operator block structure bool() Boolean function Boolean value bound method bounds check breadth-first search break statement brute force BST insertion BST search bubble sort built-in function built-in type byte bytecode C call stack capturing group case-insensitive comparison chained conditional character class character encoding child class child node chr() class class definition class method class variable classmethod decorator (@classmethod) closure, [1] cls code point collection type comment comparison operator comparison sort compiled language compiler concatenation concrete implementation condition conditional execution conditional expression conditional statement constant time (O(1)), [1] constructor constructor function Content-Type header context manager contextmanager decorator (@contextmanager) continue statement control patterns copy.copy() copy.deepcopy() correctness check Counter, [1] counter pattern counter variable Counter.most_common() counting loop counting sort cursor-based pagination custom exception custom function custom iterator D data structure data type data validation, [1] dataclass dataclass decorator (@dataclass) dead code debugging decimal decorator (@) deep copy def keyword default parameter default value defaultdict defensive parsing degenerate tree del statement delimiter dependency injection depth-first search deque deque.popleft() dict inverting sorting by value, [1] dict comprehension dict() constructor dict.clear() dict.get(), [1] dict.items() dict.keys() dict.pop() dict.setdefault() dict.update() dict.values(), [1] dictionary, [1], [2] dictionary comprehension, [1] dictionary iteration, [1] dictionary literal dictionary subtraction difference set divide and conquer divmod() docstring, [1], [2] doctest dot notation E edge case elif clause else clause (try) empty set encapsulation, [1] enclosing scope enumerate(), [1], [2], [3] environment variable equality method (__eq__) escape sequence, [1] escaping metacharacters except clause, [1] exception handling exception object exponential backoff exponentiation (**) expression, [1] F f-string, [1] factorial failing test fake object falsy value Fibonacci sequence FIFO filter finally clause finiteness first-class function float() floor division (//) fold for loop, [1] formal language format specification, [1] frequency count frozen dataclass frozenset, [1] frozenset as dict key function composition function contract, [1] function definition function design function factory function header functional programming functools module G generator delegation generator expression generator function generator object generator pipeline GET request getter global keyword global scope graph graph edge graph traversal greedy matching group(), [1] growth rate, [1] H hash function hash method (__hash__) hash table, [1] set hash value hash() hash-based lookup hashable, [1], [2] hashable keys, [1] hexadecimal high-level language HTTP header HTTP method HTTP status code HTTPError I id(), [1] identity operator (is), [1] if statement immutability, [1], [2] immutable set implicit conversion import statement impure function in-place method in-place set operation in-place sorting indentation index-based loop indexing infinite generator infinite loop infinite recursion inheritance initializer method (__init__) inorder traversal input and output input validation input(), [1] insertion sort insort() instance instance variable int(), [1] interpreted language interpreter intersection set ipytest isinstance(), [1] issubclass() issubset() issuperset() iter method (__iter__) iterable, [1] iteration iterative binary search iterator iterator exhaustion iterator protocol itertools module itertools.chain() itertools.combinations() itertools.count() itertools.cycle() itertools.islice() itertools.permutations() itertools.zip_longest() J jitter JSON JSON serialization, [1] json.dumps() json.loads() jupyturtle K key key function, [1], [2], [3] key-value pair, [1] keyboard input keyword argument keywords L lambda expression lambda function, [1] lazy iterator leaf node leap of faith left child leftmost occurrence len(), [1] less-than method (__lt__) lexicographic comparison library LIFO line continuation linear search linear time (O(n)) linearithmic time (O(n log n)) list, [1], [2], [3] list argument list comprehension, [1], [2], [3] list concatenation list literal list methods list object list of tuples list repetition list() constructor list.append(), [1], [2] list.copy() list.count() list.sort(), [1] local scope local variable log level logarithmic time (O(log n)), [1], [2] logging module, [1] logging.basicConfig() logic error logical operator lookahead lookbehind loop body loop variable low-level language LRU cache lru_cache() M map(), [1] mapping, [1], [2] Markov chain Match object membership operator (in), [1] membership testing dict set memo, [1] memoization, [1], [2] merge sort metacharacter method method call method invocation method overriding mocking module modulus operator (%) multiple except clauses multiple return values, [1], [2] mutability, [1], [2] mutable set elements mutable class variable mutable sequence mutation mypy N n-gram name mangling named group namedtuple(), [1], [2] natural language negative index nested conditional nested dictionary nested function nested JSON nested list nested loop nested tuple next method (__next__) next() Node class non-capturing group (?:) non-greedy matching None, [1] nonlocal not in operator number systems O O(1) lookup object, [1] object ID, [1] object identity, [1] object representation (__repr__) object-oriented language object-oriented programming octal off-by-one error, [1] Open-Meteo API operator, [1] operator overloading operator precedence optional parameter or operator ord() ordered collection os.environ.get() P package page-based pagination pagination parameter parameter order parametrized test parent class parent node partial application partial() partition pass statement, [1] pattern validation percent-encoding pip pivot polymorphism POST request postorder traversal preorder traversal prepared request preprocessing cost print debugging, [1] print() private attribute procedural programming programming language programming paradigm Project Gutenberg property decorator (@property), [1] pseudocode punctuation pure function, [1] PyPI pytest, [1] pytest command pytest fixture pytest-cov pytest.mark.parametrize pytest.raises() Q quadratic time (O(n^2)), [1] quantifier query parameter queue, [1] quicksort R raise statement raise_for_status() random.choice() random.choices() randomized testing range() raw string, [1] re module re.compile() re.findall() re.fullmatch() re.IGNORECASE re.search() re.sub() reassignment, [1] record, [1] recursion recursion limit, [1] recursion on lists RecursionError recursive binary search recursive case, [1] reduce() reduce() initializer reference, [1] regex flags regular expression, [1] repr() request body request timeout RequestException requests library requests.ConnectionError requests.get() requests.Timeout, [1] response contract response.json() REST API retry return annotation return statement return value, [1] reverse parameter reversed() right child root node runtime check runtime error S scalar type scope search interval search strategy selection self, [1] sentinel loop sentinel value sequence set, [1] accessing elements set algebra set comprehension, [1] set literal set methods set of sets set operation set operator set() constructor set.add() set.clear() set.copy() set.difference_update() set.discard() set.intersection_update() set.pop() set.remove() set.update() setUp() shallow copy short-circuit evaluation, [1] shorthand character class side effect, [1], [2] single-element tuple, [1] single-purpose function slice notation ([:]) soft keyword sort key sorted(), [1], [2], [3] sorting algorithm, [1] space complexity special method, [1] specialization spell checking stable sort stack, [1] stack diagram stack frame star operator (*) starred unpacking state diagram statement formatting static method staticmethod decorator (@staticmethod) StopIteration str() str.casefold() str.find() str.format() str.isalpha() str.isdigit() str.join(), [1] str.lower() str.replace() str.split(), [1], [2] str.startswith() str.strip() str.upper() string string comparison string concatenation string indexing string literal string methods, [1] string repetition string representation (__str__) string slicing string substitution subclass subprocess module subroutine subset super() superset swapping variables symmetric difference syntax error sys.getrecursionlimit() T tearDown() ternary operator test coverage test discovery test naming convention TestCase text analysis text cleaning text generation time complexity, [1] time.perf_counter(), [1], [2] timeit module Timsort total_ordering decorator (@total_ordering) trace table, [1] traceback tree tree height tree traversal triple-quoted string true division (/) truthy value try statement tuple, [1], [2] as dict key tuple as function argument tuple assignment tuple comparison tuple concatenation, [1] tuple containing a list tuple indexing tuple literal tuple repetition, [1] tuple slicing tuple() constructor tuple.count() tuple.index() Turing complete two-pointer merge type casting type checking type coercion type conversion, [1] type hint, [1], [2] type(), [1], [2] TypeError U Unicode unicodedata.category() union set unique elements unique words unit test unittest module, [1] unittest.mock module unordered collection unpacking, [1] URL encoding urllib.parse.quote() urllib.parse.urlencode() urlparse() user-defined type UTF-8 V value variable, [1], [2] variable annotation variable: naming convention W while loop while True loop with statement word boundary (\b) word frequency word list worst case wrapper function wraps() Y yield from yield keyword Z zip object zip(), [1], [2], [3]