Think Python Glossary by Alphabetic Order
Think Python Glossary by Alphabetic Order
absolute path: A path that starts from the topmost directory in the file system.
(Chapter 14)
analysis of algorithms: A way to compare algorithms in terms of their run time and/or space
requirements. (Chapter 20)
argument: A value provided to a function when the function is called. This value
is assigned to the corresponding parameter in the function. (Chapter
3)
assert statement: A statement that checks a condition and raises an exception if it fails.
(Chapter 16)
attribute: One of the named values associated with an object. (Chapter 15)
augmented assignment: A statement that updates the value of a variable using an operator
like +=. (Chapter 10)
base case: A conditional branch in a recursive function that does not make a
recursive call. (Chapter 5)
Big-Oh notation: Notation for representing an order of growth; for example, $O(n)$
represents the set of functions that grow linearly. (Chapter 20)
1
bytes object: An object similar to a string. (Chapter 14)
call graph: A diagram that shows every frame created during the execution of a
program, with an arrow from each caller to each callee. (Chapter 11)
child class: A new class created by inheriting from an existing class; also called a
``subclass''. (Chapter 18)
class attribute: An attribute associated with a class object. Class attributes are
defined inside a class definition but outside any method. (Chapter
18)
class diagram: A diagram that shows the classes in a program and the relationships
between them. (Chapter 18)
compound statement: A statement that consists of a header and a body. The header ends
with a colon (:). The body is indented relative to the header.
(Chapter 5)
conditional expression: An expression that has one of two values, depending on a condition.
(Chapter 19)
2
conditional statement: A statement that controls the flow of execution depending on some
condition. (Chapter 5)
crossover point: The problem size where two algorithms require the same run time or
space. (Chapter 20)
data encapsulation: A program development plan that involves a prototype using global
variables and a final version that makes the global variables into
instance attributes. (Chapter 18)
database: A file whose contents are organized like a dictionary with keys that
correspond to values. (Chapter 14)
dead code: Part of a program that can never run, often because it appears after
a {return} statement. (Chapter 6)
declaration: A statement like {global} that tells the interpreter something about a
variable. (Chapter 11)
deep copy: To copy the contents of an object as well as any embedded objects,
and any objects embedded in them, and so on; implemented by the
deepcopy function in the copy module. (Chapter 15)
dependency: A relationship between two classes where instances of one class use
instances of the other class, but do not store them as attributes.
(Chapter 18)
designed development: A development plan that involves high-level insight into the problem
and more planning than incremental development or prototype
development. (Chapter 16)
deterministic: Pertaining to a program that does the same thing each time it runs,
given the same inputs. (Chapter 13)
3
development plan: A process for writing programs. (Chapter 4)
dot notation: The syntax for calling a function in another module by specifying the
module name followed by a dot (period) and the function name.
(Chapter 3)
element: One of the values in a list (or other sequence), also called items.
(Chapter 10)
filter: A processing pattern that traverses a list and selects the elements
that satisfy some criterion. (Chapter 10)
4
floating-point: A type that represents numbers with fractional parts. (Chapter 1)
floor division: An operator, denoted //, that divides two numbers and rounds
down (toward negative infinity) to an integer. (Chapter 5)
formal language: Any one of the languages that people have designed for specific
purposes, such as representing mathematical ideas or computer
programs; all programming languages are formal languages.
(Chapter 1)
format operator: An operator, %, that takes a format string and a tuple and generates
a string that includes the elements of the tuple formatted as
specified by the format string. (Chapter 14)
format sequence: A sequence of characters in a format string, like { \%d}, that specifies
how a value should be formatted. (Chapter 14)
format string: A string, used with the format operator, that contains format
sequences. (Chapter 14)
function call: A statement that runs a function. It consists of the function name
followed by an argument list in parentheses. (Chapter 3)
function definition: A statement that creates a new function, specifying its name,
parameters, and the statements it contains. (Chapter 3)
function object: A value created by a function definition. The name of the function is
a variable that refers to a function object. (Chapter 3)
functional programming style: A style of program design in which the majority of functions
are pure. (Chapter 16)
5
generator expression: An expression with a {for} loop in parentheses that yields a
generator object. (Chapter 19)
global statement: A statement that declares a variable name global. (Chapter 11)
HAS-A relationship: A relationship between two classes where instances of one class
contain references to instances of the other. (Chapter 18)
hash function: A function used by a hashtable to compute the location for a key.
(Chapter 11)
hashable: A type that has a hash function. Immutable types like integers, floats
and strings are hashable; mutable types like lists and dictionaries are
not. (Chapter 11)
high-level language: A programming language like Python that is designed to be easy for
humans to read and write. (Chapter 1)
identical: Being the same object (which implies equivalence). (Chapter 10)
import statement: A statement that reads a module file and creates a module object.
(Chapter 3)
6
index: An integer value used to select an item in a sequence, such as a
character in a string. In Python indices start from 0. (Chapter 8)
infinite loop: A loop in which the terminating condition is never satisfied. (Chapter
7)
infinite recursion: A recursion that doesn't have a base case, or never reaches it.
Eventually, an infinite recursion causes a runtime error. (Chapter 5)
information hiding: The principle that the interface provided by an object should not
depend on its implementation, in particular the representation of its
attributes. (Chapter 17)
interactive mode: A way of using the Python interpreter by typing code at the prompt.
(Chapter 2)
interpreter: A program that reads another program and executes it. (Chapter 1)
IS-A relationship: A relationship between a child class and its parent class. (Chapter 18)
7
iterator: An object that can iterate through a sequence, but which does not
provide list operators and methods. (Chapter 12)
key-value pair: The representation of the mapping from a key to a value. (Chapter
11)
keyword: A reserved word that is used to parse a program; you cannot use
keywords like if, def, and while as variable names. (Chapter 2)
leading term: In a polynomial, the term with the highest exponent. (Chapter 20)
list comprehension: An expression with a {for} loop in square brackets that yields a new
list. (Chapter 19)
local variable: A variable defined inside a function. A local variable can only be
used inside its function. (Chapter 3)
logical operator: One of the operators that combines Boolean expressions: and, or,
and not. (Chapter 5)
lookup: A dictionary operation that takes a key and finds the corresponding
value. (Chapter 11)
8
memo: A computed value stored to avoid unnecessary future computation.
(Chapter 11)
method: A function that is associated with an object and called using dot
notation. (Chapter 4)
module object: A value created by an {import} statement that provides access to the
values defined in a module. (Chapter 3)
modulus operator: An operator, denoted with a percent sign %, that works on integers
and returns the remainder when one number is divided by another.
(Chapter 5)
natural language: Any one of the languages that people speak that evolved naturally.
(Chapter 1)
object diagram: A diagram that shows objects, their attributes, and the values of the
attributes. (Chapter 15)
9
object-oriented programming: A style of programming in which data and the operations that
manipulate it are organized into classes and methods. (Chapter 17)
object: Something a variable can refer to. An object has a type and a value.
(Chapter 10)
object: Something a variable can refer to. For now, you can use ``object''
and ``value'' interchangeably. (Chapter 8)
order of growth: A set of functions that all grow in a way considered equivalent for
purposes of analysis of algorithms. For example, all functions that
grow linearly belong to the same order of growth. (Chapter 20)
order of operations: Rules governing the order in which expressions involving multiple
operators and operands are evaluated. (Chapter 2)
parent class: The class from which a child class inherits. (Chapter 18)
polymorphic: Pertaining to a function that can work with more than one type.
(Chapter 17)
10
portability: A property of a program that can run on more than one kind of
computer. (Chapter 1)
positional argument: An argument that does not include a parameter name, so it is not a
keyword argument. (Chapter 17)
print statement: An instruction that causes the Python interpreter to display a value
on the screen. (Chapter 1)
prototype and patch: A development plan that involves writing a rough draft of a program,
testing, and correcting errors as they are found. (Chapter 16)
pure function: A function that does not modify any of the objects it receives as
arguments. Most pure functions are fruitful. (Chapter 16)
11
refactoring: The process of modifying a working program to improve function
interfaces and other qualities of the code. (Chapter 4)
reference: The association between a variable and its value. (Chapter 10)
relational operator: One of the operators that compares its operands: ==, !=, >,
<, >=, and <=. (Chapter 5)
relative path: A path that starts from the current directory. (Chapter 14)
return statement: A statement that causes a function to end immediately and return to
the caller. (Chapter 5)
reverse lookup: A dictionary operation that takes a value and finds one or more keys
that map to it. (Chapter 11)
rubber duck debugging: Debugging by explaining your problem to an inanimate object such
as a rubber duck. Articulating the problem can help you solve it,
even if the rubber duck doesn't know Python. (Chapter 13)
scaffolding: Code that is used during program development but is not part of the
final version. (Chapter 6)
script mode: A way of using the Python interpreter to read code from a script and
run it. (Chapter 2)
search (1): A pattern of traversal that stops when it finds what it is looking for.
(Chapter 8)
semantic error: An error in a program that makes it do something other than what
the programmer intended. (Chapter 2)
12
shallow copy: To copy the contents of an object, including any references to
embedded objects; implemented by the copy function in the copy
module. (Chapter 15)
shape error: An error caused because a value has the wrong shape; that is, the
wrong type or size. (Chapter 12)
shell: A program that allows users to type commands and then executes
them by starting other programs. (Chapter 14)
singleton: A list (or other sequence) with a single element. (Chapter 11)
special case: A test case that is atypical or non-obvious (and less likely to be
handled correctly). (Chapter 9)
state diagram: A graphical representation of a set of variables and the values they
refer to. (Chapter 2)
traceback: A list of the functions that are executing, printed when an exception
occurs. (Chapter 3)
13
traverse: To iterate through the items in a sequence, performing a similar
operation on each. (Chapter 8)
tuple assignment: An assignment with a sequence on the right side and a tuple of
variables on the left. The right side is evaluated and then its
elements are assigned to the variables on the left. (Chapter 12)
type-based dispatch: A programming pattern that checks the type of an operand and
invokes different functions for different types. (Chapter 17)
type: A category of values. The types we have seen so far are integers
(type int}), floating-point numbers (type float), and strings (type
str). (Chapter 1)
update: An assignment where the new value of the variable depends on the
old. (Chapter 7)
value (1): One of the basic units of data, like a number or string, that a
program manipulates. (Chapter 1)
value (2): An object that appears in a dictionary as the second part of a key-
value pair. This is more specific than our previous use of the word
``value''. (Chapter 11)
worst case: The input that makes a given algorithm run slowest (or require the
most space). (Chapter 20)
zip object: The result of calling a built-in function {zip}; an object that iterates
through a sequence of tuples. (Chapter 12)
14