Table of Contents
Python Distilled Index
Return to Python Distilled, Python books
Python: Python Variables, Python Data Types, Python Control Structures, Python Loops, Python Functions, Python Modules, Python Packages, Python File Handling, Python Errors and Exceptions, Python Classes and Objects, Python Inheritance, Python Polymorphism, Python Encapsulation, Python Abstraction, Python Lists, Python Dictionaries, Python Tuples, Python Sets, Python String Manipulation, Python Regular Expressions, Python Comprehensions, Python Lambda Functions, Python Map, Filter, and Reduce, Python Decorators, Python Generators, Python Context Managers, Python Concurrency with Threads, Python Asynchronous Programming, Python Multiprocessing, Python Networking, Python Database Interaction, Python Debugging, Python Testing and Unit Testing, Python Virtual Environments, Python Package Management, Python Data Analysis, Python Data Visualization, Python Web Scraping, Python Web Development with Flask/Django, Python API Interaction, Python GUI Programming, Python Game Development, Python Security and Cryptography, Python Blockchain Programming, Python Machine Learning, Python Deep Learning, Python Natural Language Processing, Python Computer Vision, Python Robotics, Python Scientific Computing, Python Data Engineering, Python Cloud Computing, Python DevOps Tools, Python Performance Optimization, Python Design Patterns, Python Type Hints, Python Version Control with Git, Python Documentation, Python Internationalization and Localization, Python Accessibility, Python Configurations and Environments, Python Continuous Integration/Continuous Deployment, Python Algorithm Design, Python Problem Solving, Python Code Readability, Python Software Architecture, Python Refactoring, Python Integration with Other Languages, Python Microservices Architecture, Python Serverless Computing, Python Big Data Analysis, Python Internet of Things (IoT), Python Geospatial Analysis, Python Quantum Computing, Python Bioinformatics, Python Ethical Hacking, Python Artificial Intelligence, Python Augmented Reality and Virtual Reality, Python Blockchain Applications, Python Chatbots, Python Voice Assistants, Python Edge Computing, Python Graph Algorithms, Python Social Network Analysis, Python Time Series Analysis, Python Image Processing, Python Audio Processing, Python Video Processing, Python 3D Programming, Python Parallel Computing, Python Event-Driven Programming, Python Reactive Programming.
Variables, Data Types, Control Structures, Loops, Functions, Modules, Packages, File Handling, Errors and Exceptions, Classes and Objects, Inheritance, Polymorphism, Encapsulation, Abstraction, Lists, Dictionaries, Tuples, Sets, String Manipulation, Regular Expressions, Comprehensions, Lambda Functions, Map, Filter, and Reduce, Decorators, Generators, Context Managers, Concurrency with Threads, Asynchronous Programming, Multiprocessing, Networking, Database Interaction, Debugging, Testing and Unit Testing, Virtual Environments, Package Management, Data Analysis, Data Visualization, Web Scraping, Web Development with Flask/Django, API Interaction, GUI Programming, Game Development, Security and Cryptography, Blockchain Programming, Machine Learning, Deep Learning, Natural Language Processing, Computer Vision, Robotics, Scientific Computing, Data Engineering, Cloud Computing, DevOps Tools, Performance Optimization, Design Patterns, Type Hints, Version Control with Git, Documentation, Internationalization and Localization, Accessibility, Configurations and Environments, Continuous Integration/Continuous Deployment, Algorithm Design, Problem Solving, Code Readability, Software Architecture, Refactoring, Integration with Other Languages, Microservices Architecture, Serverless Computing, Big Data Analysis, Internet of Things (IoT), Geospatial Analysis, Quantum Computing, Bioinformatics, Ethical Hacking, Artificial Intelligence, Augmented Reality and Virtual Reality, Blockchain Applications, Chatbots, Voice Assistants, Edge Computing, Graph Algorithms, Social Network Analysis, Time Series Analysis, Image Processing, Audio Processing, Video Processing, 3D Programming, Parallel Computing, Event-Driven Programming, Reactive Programming.
Python Glossary, Python Fundamentals, Python Inventor: Python Language Designer: Guido van Rossum on 20 February 1991; PEPs, Python Scripting, Python Keywords, Python Built-In Data Types, Python Data Structures - Python Algorithms, Python Syntax, Python OOP - Python Design Patterns, Python Module Index, pymotw.com, Python Package Manager (pip-PyPI), Python Virtualization (Conda, Miniconda, Virtualenv, Pipenv, Poetry), Python Interpreter, CPython, Python REPL, Python IDEs (PyCharm, Jupyter Notebook), Python Development Tools, Python Linter, Pythonista-Python User, Python Uses, List of Python Software, Python Popularity, Python Compiler, Python Transpiler, Python DevOps - Python SRE, Python Data Science - Python DataOps, Python Machine Learning, Python Deep Learning, Functional Python, Python Concurrency - Python GIL - Python Async (Asyncio), Python Standard Library, Python Testing (Pytest), Python Libraries (Flask), Python Frameworks (Django), Python History, Python Bibliography, Manning Python Series, Python Official Glossary - Python Glossary, Python Topics, Python Courses, Python Research, Python GitHub, Written in Python, Python Awesome List, Python Versions. (navbar_python - see also navbar_python_libaries, navbar_python_standard_library, navbar_python_virtual_environments, navbar_numpy, navbar_datascience)
ADD the ddg> and the python> Python Docs search feature to each item below.
Fair Use Source: B094CMKN2J, PyDis
Index
- ( ) (parentheses)
- for functions, 22, 56, 101
- for tuples, 15
- * (star)
- in function arguments, 102–104, 108–109
- in module imports, 229–230, 240–241
- in variable names, 46
- operator, 5, 38–40, 47, 57, 298, 307, 310, 313
- ** (double star)
- in function arguments, 104, 108–109
- operator, 5, 40, 56, 57
- *=, **= operators, 7, 41
- + (plus sign)
- in file modes, 258
- in numbers converted to text strings, 250–251
- operator, 5, 10–11, 14, 38–40, 47, 57, 91, 298, 307, 310, 313
- += operator, 7, 41, 92, 111
- , (comma)
- in numbers converted to text strings, 250–251
- separating values, 276
- - (minus sign)
- in byte formatting, 253
- in numbers converted to text strings, 250–251
- operator, 5, 18, 39–40, 50, 57, 309
- -= operator, 7, 41, 92
- . (dot) operator, 56, 79, 154
- .. (double dots), in relative imports, 237
- … (ellipsis), in extended slices, 96
- / (slash)
- as path separator, 281
- in function signature, 105
- operator, 5, 40, 57
- // operator, 5, 40, 57
- /=, //= operators, 7, 41
- : (colon)
- for dictionaries, 18
- for slicing operator, 10, 47–49
- := operator, 8, 12, 39, 54, 57
- = operator, 3, 51
- == operator, 6, 42, 57, 93
- testing for None with, 87
- [] (square brackets), 13
- # comments, 2
- % (percent sign)
- in byte formatting, 253
- in numbers converted to text strings, 251
- operator, 5, 9, 39–40, 57, 298, 310
- %=, &=, ^= operators, 7, 41
- &, ^ operators, 6, 18, 40, 50, 57, 309
- _ (undescore)
- as variable, 2, 17, 46, 61
- in function names, 106
- in names of internal variables, 27
- in numeric literals, 38
- in private attribute and method names, 176
- __ (double undescore)
- in attribute names, 177–179
- in method names, 27, 88
- ~ operator, 6, 40, 57
- \ (backslash), as path separator, 281
- | operator, 6, 18, 40, 50, 57, 302, 309
- |= operator, 7, 41
- >, < operators, 6, 42, 57
- >=, ⇐ operators, 6, 42, 57, 93
- », « operators, 6, 40, 57
- »=, «= operators, 7, 41
- »> prompt, 1
- { } (curly braces), 20
- for dictionaries, 18
- in f-strings, 252
A
- Python abc module, 185
- Python abs() function, 5, 40, 297
- Python @abstractmethod decorator, 130, 185
- Python add() method, 18, 50, 309
- Python __add__() method, 27, 80, 90–91
- Python all() function, 47, 297
- Python __all__ variable, 229, 240–241
- Python and operator, 6–7, 43, 57, 92
- Python __annotations__ attribute, 107, 129, 222, 242
- Python any() function, 47, 297
- Python append() method, 13, 26, 300, 307, 313
- Python archives, working with, 284
- Python argparse module, 33, 255
- Python args attribute, 64–65, 70–315
- Python arguments, see Python functions, arguments of
- Python arithmetic operators, 5, 40
- Python ArithmeticError exception, 67–68, 314–318
- Python as qualifier, 31, 64, 75, 99, 226
- Python ascii() function, 253, 297
- Python assert statement, 77–78
- Python AssertionError exception, 68, 77, 315
- Python assignments, 38–39, 41, 83
- Python augmented, 7, 41, 47, 92, 111
- Python async keyword, 135, 136
- Python asyncio module, 135, 137, 151, 271–274, 285
- Python AttributeError exception, 68, 98, 207, 304, 315
- Python attributes, 79, 98
- Python attributes binding, 167, 207–208
- Python attributes internal, 177–179
- Python attributes of functions, 129–130
- Python attributes of objects, 157–158, 304, 310
- Python await statement, 135–137, 151
- Python awaitables, 135
B
banker’s rounding, 5
base classes, 160
abstract, 185–188
invoking menthods of, 313
linking to, 207
__slots__ variable and, 210
tuple of, 222
used for type hinting, 184–185
base64 module, 274
BaseException exception, 67–68, 314
__bases__ attribute, 207, 222
bash shell, 1
bin() function, 37, 297
binary data structures, 288
binary integers, 6
binascii module, 274
bit manipulation, 6
bit_length() method, 305
bitwise operators, 6, 40, 57
blocking, 269–273
BlockingIOError exception, 270, 316
bool class, 297
bool type, 298
__bool__() method, 93–95
Boolean values, 6–7, 38, 43–44, 297
bound methods, 158, 183
break statement, 8, 12, 62–63, 141
breakpoint() function, 298
BrokenPipeError exception, 316
BSD socket interface, 286
BufferedXXX classes, 260
BufferError exception, 315
byte arrays, 247, 266, 298–300
bytearray type, 247, 298
bytes, 247–248
comparing, 43
converting to text, 274
formatting, 253–254
operations on, 298–300
serializing objects into, 268
bytes module, 274
bytes type, 247–248, 298
__bytes__() method, 94–95
BytesIO class, 280
C
C programming language, 281, 286, 288
__call__() method, 98, 219
callable() function, 301
callback functions, 114, 116
passing arguments to, 118–121
returning results from, 121–123
CallbackError exception, 122
capitalize() method, 298, 310
casefold() method, 310
category() function, 295
__cause__ attribute, 65, 71–73, 315
__ceil__() method, 91
center() method, 298, 310
cgi module, 275
characters
end of file (EOF), 2, 68, 315
line-feed, see newline characters
ordinal values of, 307
check_output() function, 288–289
child classes, see subclasses
ChildProcessError exception, 316
chr() function, 301
circular dependency, 82
class methods, 89, 170–172, 222, 301
class statement, 27, 154–155, 215–218
base-class names in, 160
class variables, 169–172, 222
mutating, 112
__class__ attribute, 206, 223
classes, 80, 153–223
adding methods to, 28
body of, 215
built-in, 313
creating, 160, 215–218
duplicating definitions of, 221
extending, 160
inspecting, 318
internal variables in, 27
linking instances to, 206, 223
membership testing for, 183
names of, 222
namespace of, 215, 218
static methods in, 173
type-checking, 162
uniformity of, 183
user-defined, 179, 206–207
with a single method, 166
classmethod object, 125
@classmethod decorator, 125, 170–171, 183, 197, 213, 301
classobj type, 305
cleanup, 66, 141
clear() method, 300, 302, 309
click module, 255
close() method, 12, 147, 202, 258, 262, 315
closed attribute, 263
__closure__ attribute, 129
closures, 116–117, 129
cls object, 125, 171, 220, 222
code, see also programs
generating, 222, 233
Pythonic, 99–100, 160, 176
readability of, 103, 223
testing, 223
code-checking tools, 87, 107
__code__ attribute, 129–130
collect() function, 82
collections module, 20, 81, 168, 240, 318
comma-separated values (CSVs), 276
command-line options, 15, 33, 254–255, 317, 319
comments, 2
extracting, 55
comparisons, 6, 42, 93
between bytes and text, 248
compile() function, 301
complex() function, 301
__complex__() method, 94–95, 301
compound-interest calculation, 4
compute_usage() function, 282–283
concatenation, 47
of tuples, 16
concurrency, 148, 269, 273, 291–293
conditionals, 4, 7–9, 44–45, 59–60
configparser module, 276
conjugate() method, 303, 305
ConnectionXXXError exceptions, 316
containers, 95–96
__contains__() method, 95–96
context managers, 75–77, 99
asynchronous, 136–137
cleaning up with, 141
__context__ attribute, 65, 72–73, 315
contextlib module, 77, 148
@contextmanager decorator, 148
continue statement, 8, 62–63
control flow
with conditionals, 7–9, 59–60
with exceptions, 64–69, 77
with loops, 60–63
copy() method, 300, 302, 309
copying, of sequences, 47–48
coroutines, 135
generator-based, 146
inspecting, 318
cos() function, 318
count() method, 298, 307, 310, 313
Counter class, 318
cryptographic hash values, 278
csv module, 31, 276
ctime() function, 293
currentframe() function, 132
D
daemon flag, 291
data encapsulation, 176
data hiding, 178
@dataclass decorator, 134
dataclasses, 196, 233
datetime module, 293, 318
deadlocks, 25, 204
debug variable, 215
debug() function, 133, 281
debugging
breakpoint for, 298
error messages for, 66, 124
exception handling and, 74
in Python development environment, 3
introducing code for, 77–78
logging for, 280
making output for, 162
modules individually, 235
smaller tasks, 145
stack frames and, 133
when using dictionaries, 21
with __dict__ attribute, 211
with repr(), 11
with __repr__(), 28, 196
decode() method, 248, 259, 298, 310
decorators, 104, 124–127, 194–197, 220
deep copies, 83
deepcopy() function, 84
def statement, 22, 27, 101
DEFAULT_BUFFER_SIZE value, 259
defaultdict class, 318
del statement, 19, 50–51, 82–83, 89, 202, 207, 300–302, 307
__del__() method, 89, 201–206
delattr() function, 157, 179, 301
__delattr__() method, 98, 207
delegation, 208–210
__delete__() method, 211
__delitem__() method, 95–96
dependency injection, 165, 176
deque class, 81, 318
descriptors, 211–214, 220, 285
Design Patterns book, 176
detach() method, 261
dict type, 80, 301–302
dict() function, 20, 51, 168
__dict__ attribute, 206–207, 211, 215, 222–223, 242, 302, 313
dictionaries, 18–21
accessing members of, 18
adding unusual items to, 85–87
as literals, 38
assignments on, 83
converting to lists, 20
creating, 18, 20, 53–54
deep vs. shallow copies of, 83
dispatching through, 193
empty, 20, 43
initializing missing items automatically, 318
inserting objects into, 18
iterating over, 21
keys of, 20–21, 294–295
modifying objects of, 18
nested, 19
no ordered comparisons on, 43
number of items in, 306
operations on, 51, 301–302
passed as function parameters, 107
removing elements from, 19, 104
using tuples in, 19
values of, 21
dictionary comprehension, 20, 53–54
dictionary lookups, 176
DictReader class, 277
difference operation, 18, 50, 309
difference() method, 309
difference_update() method, 309
dir() function, 26, 31, 302
__dir__() method, 302
directories, 264
current working, 234
temporary, 289
discard() method, 18, 50, 309
distutils module, 243
division, 5, 303
divmod() function, 5, 40, 303
__divmod__() method, 90
Django library, 279
__doc__ attribute, 106, 129, 222, 242
docopt module, 255
documentation strings, 106, 129, 155, 222, 242
dot operator, see . operator
double-ended queues, 318
duck typing, 167
dump() function, 268
dumps() function, 280
dynamic binding, 167
E
e, E, in numbers, 37
echo servers, 286
.egg suffix, 234
elif statement, 7–8, 59–60, 193
Ellipsis object, 96
else statement, 7–9, 44–45, 57, 59–60, 63, 66, 193
emails, sending, 285
encode() method, 248, 259, 310
encoding attribute, 13, 259–260, 263
encodings, 248–249, 263
end keyword, 265, 308
endswith() method, 10, 298, 311
__enter__() method, 75, 99, 148
enumerate() function, 61, 303
env command, 256
environment variables, 256
EnvironmentError exception, 314–316
EOF (end of file) character, 2, 68, 315
EOFError exception, 68, 315
epoll() function, 285
__eq__() method, 93–94
errno attribute, 316
errno module, 277–278
errors
handling, 110–111
logging, 66
errors attribute, 259–260, 263
eval() function, 89, 301, 303, 308
Event class, 292
except statement, 24–25, 64–66, 70, 110
narrowness of, 74
Exception exception, 66–69, 314
exceptions, 24–25, 64–75
altering control flow, 67–69
asynchronous, 69
built-in, 67–68, 75, 314–318
catching, 64, 66, 70, 73–74
chained, 70–73, 315
defining new, 69–70, 74
expected vs. unexpected, 72–73
extracting values attached to, 141
handling, 24–25, 73–75, 110–111, 121–122, 277–278
hierarchy of, 67–68, 70
ignoring, 65–66
predefined, 315–318
propagating, 64
raising, 64, 69, 110, 147, 315
standard attributes of, 64–65
traceback messages of, 70, 73
user-defined, 69, 314
wrapping with a function, 54
exec() function, 133–134, 233, 301, 303
__exit__() method, 75, 99, 148
expandtabs() method, 298, 311
expressions, 3, 38–39
evaluating, 43, 303
extend() method, 300, 307
Extensible Markup Language (XML), 295
F
f-strings, 4, 9, 11, 251–252
False value, 6–7, 38, 43–45, 297–298
fast lookups, 19
fcntl module, 262, 278
fcntl() function, 278
file descriptors, 257, 262
file keyword, 265, 308
file modes, 258, 263
file objects, 258, 262, 307
attributes of, 263
implementing, 279
manipulating, 261
methods supported by, 261
standard, 263
file pointers, 262
__file__ attribute, 36, 242
__file__ variable, 241
FileExistsError exception, 258, 316
FileIO class, 260
filename attribute, 316–317
fileno() method, 262
FileNotFoundError exception, 277, 316
files
converting between binary and text, 261
copying, 284, 319
encoding of, 13, 263
locking, 278
metadata of, 282
names of, 257–258, 263
newline characters in, 260, 263
opening, 12, 256–258
overwritting, 258
parsing, 105
paths to, 281–283
reading, 12–13, 262
removing, 284, 319
state of, 263
temporary, 289
writing to, 262, 268
filter() function, 128, 303
filtering, 127–128
finally statement, 25, 66, 141
find() method, 10, 299, 311
first-class objects, 85–87, 115, 242
flag variables, 63
flask library, 279
float() function, 11, 303, 315
__float__() method, 94–95, 303
FloatingPointError exception, 67, 314–315
floats, 3, 5, 37–38, 303, 315
converting to text, 250–251
precision of, 288
rounding, 5, 308
flock() function, 278
__floor__() method, 91
__floordiv__() method, 90
flush() method, 259, 262
flyweight pattern, 176
for statement, 12–13, 21–22, 45, 60–63, 140, 176
for reading lines in a file, 262
implementing, 97
nested, 144–145
on lists, 52
format() function, 11, 94, 250, 304
format() method, 9, 252–253, 311
__format__() method, 94, 304
format_map() method, 311
from statement, 31, 228–230, 237, 316
from_ prefix, in method names, 172
from_bytes() method, 305
fromhex() method, 274, 303
fromkeys() method, 302
frozenset() function, 304, 309
__fspath__() method, 257
function call operator, 56
functions, 22–24, 101–131, 137
accepting iterables, 47
arguments of
default, 23, 101–102, 115
default values for, 87, 157
evaluated left-to-right, 101
keyword, 103–104
number of, 101–102
order of, 101
positional, 105–106
asynchronous, 135–137, 272, 317
attribute access, 207
attributes of, 129–130
built-in, 297–314
callback, 114, 116, 118–123
comparing, 131
debugging messages in, 124
defining, 22, 101
delayed execution of, 145
documenting, 106, 129, 155
emulating, 98
evaluating, 116
helper, 106
higher-order, 115–118
inspecting, 131–133, 318
invoking, 22, 101, 111
local variables in, 24, 107, 111–113, 149–151
metadata of, 124–125, 130
naming, 106, 129
nested, 113, 116–117, 129
recursive, 114
return values of, 23, 109–110
side effects in, 108
signature of, 130–131
type hints in, 107, 129, 155
wrappers around, 124
functools module, 94
futures, 123
G
garbage collection, 26, 81–83, 89, 141, 203–204
gc module, 82
__ge__() method, 93
generator expressions, 54–56, 128
GeneratorExit exception, 147, 314–315
generators, 97, 139–152
asynchronous, 317
creating, 54
delegating, 142–144
emitting I/O streams, 265–266
enhanced, 146–151, 266–267
for repeated iterations, 142
inspecting, 318
terminating, 315
get() method, 19, 302
__get__() method, 211–213
get_data() function, 242
getattr() function, 157, 179, 193–194, 304
__getattr__() method, 98, 207–211
__getattribute__() method, 98, 207, 211
__getitem__() method, 95–96, 159–308
getsize() function, 282
__getstate__() method, 268
glob() function, 264
global statement, 112
globals() function, 131, 303–304
__globals__ attribute, 129, 131
globbing, 264
gmtime() function, 293
__gt__() method, 93
H
hasattr() function, 157, 179, 304
hash() function, 304
__hash__() method, 93–94
hashlib module, 278
help() command, 22
hex() function, 37, 95, 304
hex() method, 274, 299, 303
higher-order functions, 115–118
http package, 279
httpx library, 279, 294
HyperText Markup Language (HTML), 279
Hypertext Transfer Protocol (HTTP), 279, 293–294
I
__iadd__(), __iand__() methods, 91–92
id() function, 80, 304
identifiers, 38
identity checks, 92
__idivmod__() method, 91–92
if statement, 7–9, 39, 44–45, 52, 57, 59–60, 193
__ifloordiv__(), __ilshift__(), __imatmul__(), __imod__() methods, 91–92
import statement, 15, 30–35, 59, 225–237, 241, 245, 316
inside a function, 228, 231
ImportError exception, 31, 67–68, 226, 237, 316
importlib library, 232
__imul__() method, 91–92
in operator, 19, 45, 50–52, 57, 96, 302
in-place assignment, see assignments, augmented
indent() function, 290
indentation, 4, 316
IndentationError exception, 316
index() method, 299, 307, 311, 313
__index__() method, 94–95
IndexError exception, 48, 49, 67, 314, 316
indexing operator, 13
on dictionaries, 18
on tuples, 16
info() function, 281
inheritance, 28–30, 160–163
breaking code with, 162
from built-in types, 167–169
multiple, 163, 187–192, 211
cooperative, 190–192
propagating metaclasses via, 220
__slots__ variable and, 210
supervised, 197–199
via composition, 164–166
via functions, 166–167
via implementation, 163–164
INI files, 276
__init__() method, 27, 70, 89, 134, 154–155, 161, 181–201, 219–220
__init__.py file, 34–35, 235–237, 239–241
__init_subclass__() method, 197–199, 220–222
input() function, 13, 33, 304, 315
input/output (I/O), 247–296
buffering, 258–260
consuming input, 266–267
error handling, 249, 256, 259, 316
generating output, 265–266
handling, 288, 291
in binary mode, 257–259
in text mode, 258–260
nonblocking, 270
polling channels of, 271, 273, 284
insert() method, 13, 26, 300, 307
inspect module, 318
instances, 79, 154–156
adding attributes to, 161, 206
alternate constructors of, 170–172
caching, 200–201, 204–206
creating, 89, 199
deleting an attribute of, 156
destroying, 89, 201
getting, 156
initializing, 89
linking to classes, 206, 223
setting, 156
state associated with, 206, 223
storing data of, 210–211
int class, 80
int() function, 11, 95, 305
__int__() method, 94–95
integers, 3, 305
as literals, 37
base of, 37
binary, 6
converting
to text, 251
to/from bytes, 305
creating strings from
binary, 37, 297
hexadecimal, 37, 299, 303–304
octal, 37, 307
iterating over, 21
precision of, 316
ranges of, 21–22, 308
testing values of, 303
interfaces, 184–188
interpreter, 1, 3
InterruptedError exception, 316
intersection operation, 18, 50, 309
intersection() method, 309
__invert__() method, 91
io module, 260–261, 279–280
ioctl() function, 278
IOError exception, 316
__ior__(), __ipow__() methods, 91–92
ipython shell, 2
__irshift__() method, 91–92 “is a” relationship, 163
is not operator, 42, 57, 80
is operator, 42, 57, 80, 92
is_integer() method, 303
IsADirectoryError exception, 316
isalnum(), isalpha() methods, 299, 311
isascii() method, 311
isatty() method, 262
isdecimal() method, 311
isdigit() method, 299, 311
isdir() function, 282
isdisjoint() method, 309
isfile() function, 282
isidentifier() method, 311
isinstance() function, 64, 81, 183, 305
islower() method, 299, 311
isnumeric(), isprintable() methods, 311
isspace() method, 299, 311
issubclass() function, 184, 305
issubset(), issuperset() methods, 309
istitle() method, 299, 311
__isub__() method, 91–92
isupper() method, 299, 311
items() method, 21, 51, 302
iter() function, 305
__iter__() method, 97–98, 142, 152, 160, 305
iterations, 21–22, 45–47, 60–62, 97–98, 305
ending, 69
handling, 307, 318
nested, 143
producing values for, 139
repeated, 142
reversed, 308
iterator objects
asynchronous, 136–137
creating, 22, 61
implementing, 98, 152
internal stack of, 146
reversed, 97
itertools module, 318
__itruediv__() method, 91–92
__ixor__() method, 91–92
J
join() function, 281
join() method, 299, 311
JSON format, 280
json module, 280
K
KeyboardInterrupt exception, 67, 69, 314, 316
KeyError exception, 67, 314, 316
keys() method, 20, 51, 302
kqueue() function, 285
L
lambda expression, 114–115, 117–118
late binding, 115
lazy evaluation, 116, 214
__le__() method, 93
left-fold operations, 128
len() function, 10, 47, 50, 51, 159, 298, 302, 306, 309–310, 313
__len__() method, 28, 93, 95, 159–160, 308
libraries, 235
line endings, see newline characters
lineno attribute, 317
list class, 14, 80
list comprehension, 17, 52, 55
filtering with, 127
list() function, 20, 47, 55, 81, 168, 306
listdir() function, 264
lists, 13–15
adding items to, 13, 307
as literals, 38, 46
as sequences, 47
assignments on, 83
comparing, 42
concatenating, 14
converting to, from data, 14
creating, 13
deep vs. shallow copies of, 83, 306
defining subtypes of, 81
empty, 14, 43–44, 306
iterating over, 13, 21
modifying, 49–50
nested, 14, 145–146
number of items in, 306–307
passed as function parameters, 107
processing, 52–53, 307
removing items from, 307
slicing, 14
sorting, 307, 310
literals, 37–38
ljust() method, 299, 311
load() function, 268
loads() function, 280
locals() function, 131, 303, 307
localtime() function, 293
Lock class, 291
locks, 25
Logger instance, 280–281
logging module, 254, 280–281
logical operators, 6–7, 43, 57, 92
LookupError exception, 67–68, 314, 316
loops, 4, 7–9, 21–22, 60–63
aborting, 141
flag variables in, 63
numerical indices in, 61
skipping the reminder of, 8, 62
taking items from different sequences, 62
loose coupling, 167
lower() method, 10, 299, 311
__lshift__() method, 90
lstrip() method, 299, 311
__lt__() method, 93–94
M
main() function, 33, 281
__main__ module, 234
__main__.py file, 235, 239, 245
maketrans() method, 299, 311
map() function, 128, 307
mappings, 18–19, 128, 307
opeations on, 51–52
math module, 318
mathematical operations, 5, 40, 90–92
__matmul__() method, 90
max() function, 47, 94, 128, 307
MD5 algorithm, 278
memory
allocating, 82
reducing usage of, 55, 210–211
MemoryError exception, 68, 316
metaclass keyword, 218–219
metaclasses, 217–222
Method Resolution Order (MRO, 190–192, 222
methods, 79, 154
abstract, 185, 222
available on an object, 26
bound, 158, 183
decorating automatically, 222
defining, 215
fully qualified, 158
implementing, 213
internal, 176
internal variables in, 27
invoking, 154
magic (special), 154, 210
naming, 172, 176
public, 176
redefining, 28, 160
rewriting, 195
static, 173–176, 310
user-defined, 180
Microsoft Excel, 276
min() function, 47, 94, 128, 307
mixin classes, 188–192, 220
__mod__() method, 90
mode attribute, 263
module objects, 226
__module__ attribute, 129, 222
__module__ variable, 215
ModuleNotFoundError exception, 316
modules, 30–32, 225–235
as first-class objects, 242–243
caching, 227–228, 231–233
compiling, 233
debugging, 235
importing, 31, 225–227, 232–234
circular, 230–232
specific definitions from, 228–230
listing contents of, 31
locating, 226
names of, 222, 226, 234, 242
namespaces of, 242, 304
organizing, 33
reloading and unloading, 232–233
renaming, 227
standard library, 31, 273–296, 318–319
third-party, 32
modulo, 5, 307
monads, 123
__mro__ attribute, 190, 207, 222
__mul__() method, 88, 90
multiplication, 5
N
name attribute, 263
name mangling, 177–179
__name__ attribute, 106, 129, 222, 242
__name__ variable, 33, 234
named fields, 19
namedtuple() function, 134
NameError exception, 68, 111, 316–317
namespace packages, 237
namespaces, 31, 158, 226, 242
global, 112
local, 111
of classes, 215, 218
of packages, 239–240
nc program, 274, 286
__ne__() method, 93
__neg__() method, 91
network programs, 286, 288, 291
__new__() method, 89, 199–201, 219
new_class() function, 216–217
newline attribute, 260
newline characters, 260, 263, 301, 304
controlling, in output, 265
in input, 266
newlines attribute, 263
next() function, 139–141, 307
next() method, 317
__next__() method, 97, 140, 152
None value, 6, 43–44, 87, 102, 108–110
normalize() function, 295
not in operator, 45, 57
not operator, 6–7, 43, 57, 92
NotADirectoryError exception, 316
NotImplemented object, 91, 93
NotImplementedError exception, 68, 93, 316
numbers
comparing, 42
complex, 301, 303, 305
converting
from objects, 94–95
from strings, 11
to text, 250–251
floating-point, 5, 37–38, 250–251, 288, 303, 308, 315
nonempty, 43
precision of, 251
random, 319
sum of, 312
numpy package, 50, 88, 96, 263
O
object class, 190, 307
inheriting from, 160, 191
objects, 26–30, 79–99, 153
attributes of, 56
built-in, 222–223
checking against classes, 183
comparing, 42, 80, 92–94
converting to built-in types, 94–95
coroutine, 135
deep vs. shallow copies of, 83
first-class, 85–87, 115
hash values of, 93–94, 304
identity of, 80, 304
immutable, 102
implementing operators for, 79
initializing, 27
invoked likes functions, 98
iterable, 45
listing available methods of, 26
location of, 38–39
management of, 89–90
methods available on, 26
mutable, 41, 83–84, 107–108
reference count of, 81–83
references to, 83–84
representations of, 84–85, 297, 308
serialization of, 268–269
sorting, 94
state of, 154
types of, 79, 154
unpacking values of, 45–46, 60
values of, 79, 84–85
oct() function, 37, 95, 307
offset attribute, 317
open() function, 12, 15, 241, 256–261, 279, 307
operating-system functions, 281, 316, 319
operators, 39–40
arithmetic, 5, 40
augmented, 7, 41, 47, 92, 111
bitwise, 6, 40, 57
comparison, 6, 42–43, 93
implementing, 79
logical, 6–7, 43, 57, 92
precedence rules for, 56–58
or operator, 6–7, 43, 57, 92
__or__() method, 90
ord() function, 307
os module, 258, 281, 319
os._exit() method, 317
os.chdir(), os.getcwd() methods, 257
os.environ variable, 256
os.path module, 281–282
os.system() function, 284
OSError exception, 64–65, 67–68, 277, 314, 316–318
output, see input/output (I/O)
OverflowError exception, 67, 314, 316
P
__package__ attribute, 242
packages, 33–34, 235–242
data files of, 241–242
deploying, 243–244
exporting, 240–241
importing files within, 34
imports within, 237
installing, 36, 244
locating, 36
namespaces of, 239–240
naming, 243
submodules of, running as scripts, 238–239
third-party, 50
pandas library, 277
parameters, see functions, arguments of
parent classes, see base classes
partial() function, 98
partition() method, 299, 311
pass statement, 7, 60, 65
Path class, 282
path separators, 281
__path__ attribute, 242
pathlib module, 257, 264, 281–283
patterns, 176
performance, 55
exception handling and, 111
local variables and, 149–151
optimizing, 210, 220–221
type checks and, 81
PermissionError exception, 277, 316
pickle module, 268–269
pip command, 35–36, 244
poll() function, 285
pop() method, 27, 104, 300, 302, 307, 309
Popen class, 289
popitem() method, 302
__pos__() method, 91
POSIX standard, 281
pow() function, 5, 40, 307
__pow__() method, 90
power, in math, 5, 307
__prepare__() method, 219
primitive types, 3
print() function, 4, 11–13, 84, 265, 308
ProcessLookupError exception, 316
programs, see also code
creating, 2–3
executing, 1, 3, 234–235
loading, 228, 233
side effects in, 108
specifying interpreter in, 3
starting from packages, 244
structuring, 34–35, 59, 235
terminating, 26, 69
properties, 180–183
functions associated with, 207, 211
implementing, 211
@property decorator, 180–182, 308
protocols, 87–99
proxies, 104, 208
push() method, 27
.py suffix, 2, 3, 30, 226, 233
__pycache__ directory, 233
pytest library, 319
Python
applying design patterns to, 176
flexibility of, 86
indentation in, 4, 316
interactive mode of, 1–2
no internal variables in, 27
optimized mode of, 77
package index of, 243
runtime environment of, 254, 319
python shell, 1
PYTHONPATH environment variable, 234
Q
__qualname__ attribute, 129, 222
__qualname__ variable, 215
Queue class, 292
quit(), in REPL, 2
R
__radd__() method, 90–91
raise statement, 25, 64, 69
__rand__() method, 91
random module, 319
range() function, 21–22, 308
raw_input() function, 315
__rdivmod__() method, 90
re module, 283–284, 319
read() function, 258
read() method, 12, 262, 315
read-evaluation-print loop (REPL), 1
readable() method, 262
readinto() method, 262–263
readline() method, 262, 315
readlines() method, 262
recursion, 114
limit of, 114, 143, 317
RecursionError exception, 317
reduce() function, 128
reference counting, 81–83, 201
reference cycle, 203
ReferenceError exception, 317
registries, 194, 197, 222
regular expressions, 283–284, 319
reload() function, 232
remote servers, 208
remove() method, 18, 50, 300, 307, 309
removeprefix() method, 299, 312
removesuffix() method, 299, 312
replace() method, 10, 299, 312
repr() function, 11, 85, 89, 252, 308
__repr__() method, 28, 89–90, 154–155, 159–199
default implementation of, 160
requests library, 279, 294
resources, controlling, 99
return statement, 59, 109, 135, 140
reverse() method, 300, 307
reversed() function, 97, 308
__reversed__() method, 97, 308
rfind() method, 299, 312
__rfloordiv__() method, 90
rglob() function, 264
rindex(), rjust() methods, 299, 312
__rlshift__() method, 91
__rmatmul__(), __rmod__(), __rmul__()
methods, 90
__ror__(), __round__() methods, 91
round() function, 5, 40, 308
rpartition(), rsplit() methods, 299, 312
__rpow__() method, 90
__rrshift__() method, 91
__rshift__() method, 90
rstrip() method, 300, 312
__rsub__(), __rtruediv__() methods, 90
run() function, 135, 270–271
RuntimeError exception, 68, 114, 316–317
__rxor__() method, 91
S
sandbox, 36
scripts, 32–33
seek(), seekable() methods, 262
select module, 271, 284–285
select() function, 285
selectors module, 271, 285
self object, 27, 154, 158, 169, 220
send() method, 152
sep keyword, 265, 308
sequences
comparing, 43
mutable, 49–50
operations on, 47–50
set comprehension, 17, 53
set() function, 17–18, 20, 47, 309
__set__() method, 211
__set_name__() method, 212
setattr() function, 157, 179, 310
__setattr__() method, 98, 207, 211
setdefault() method, 302
__setitem__() method, 95–96, 167
sets, 17–18
adding/removing items to/from, 50, 309
as literals, 38, 46
creating, 17, 309
empty, 18
immutable, 304
number of items in, 50, 306, 309
order of elements in, 17
processing, 50–51, 53–54, 309
__setstate__() method, 268
setup() function, 244
setup.py file, 244
setuptools module, 234, 243–244
SHA-1 algorithm, 278
shallow copies, 83
shell, 1, 284, 319
short-circuit evaluation, 43
shutil module, 284, 319
side effects, 108
SIGINT signal, 69
signal module, 69
signature() function, 130–131
__signature__ attribute, 131
Simple Mail Transfer Protocol (SMTP), 285
sin() function, 318
singletons, 176, 200
site-packages directory, 35, 244
sleep() function, 293
slice instance, 96
slice() function, 310
slicing operator, 10, 47–49, 298, 307, 310, 313
implementing, 96
on lists, 14
on tuples, 16
__slots__ variable, 210–211, 220–221, 223
smtplib module, 285–286
socket module, 286–287
sort() method, 108, 307
sorted() function, 47, 114, 310
splatting, 46
split() function, 281
split() method, 10, 300, 312
splitlines() method, 300, 312
sprintf() function (C), 253
sqrt() function, 38, 318
stack frames, 132–133
stack traceback objects, 65, 73
standard error, 263
standard input/output, 263, 304
start keyword, 62
startswith() method, 10, 300, 312
state machines, 176
statements, 59
executing, 303
@staticmethod decorator, 125, 173, 183, 213, 310
statistics module, 47, 319
stdin, stdout attributes, 289
StopAsyncIteration exception, 317
StopIteration exception, 67, 69, 97, 140–141, 147, 307, 317
str() function, 11, 84, 94, 168, 248, 251–252, 310
__str__() method, 94, 171, 310
default implementation of, 160
strategy pattern, 176
strerror attribute, 316
stride argument, 48, 49, 96
StringIO class, 279
strings, 3, 9–12
as literals, 38
as sequences, 47
checking characters of, 311
comparing, 43
concatenating, 10–11, 310
converting
from non-string values, 11, 304
from objects, 94
to numbers, 11
converting to upper/lowercase, 310–312
creating, 11, 310
encoding/decoding, 310
formatting, 9, 11, 250–253, 310–311
iterating over, 21
methods for, 10
nonempty, 43
number of items in, 10, 306, 310
processing, 310–312
representations of, 89–90
substrings of, 10, 310–312
triple-quoted, 9, 38
whitespace in, 312
strip() method, 10, 300, 312
struct module, 288
struct_time object, 293
__sub__() method, 90
subclasses, 81, 160
checking classes against, 184, 305
implementing interfaces, 185
subprocess module, 256, 288–289
subtraction, 5
subtypes, see subclasses
sum() function, 15, 47, 128, 312
super() function, 161, 189–192, 199, 207, 313
superclasses, see base classes
swapcase() method, 300, 312
symmetric difference operation, 18, 50, 309
symmetric_difference() method, 309
symmetric_difference_update() method, 309
SyntaxError exception, 316, 317
sys module, 15, 319
sys.argv list, 33, 254–255
sys.exit() function, 317
sys.getdefaultencoding() method, 259
sys.getfilesystemencoding() function, 257, 264
sys._getframe() function, 132
sys.getrecursionlimit() function, 114
sys.getrefcount() function, 82
sys.modules variable, 227, 232
sys.path variable, 31, 35, 226, 234, 244
sys.setrecursionlimit() function, 114
sys.stderr object, 69, 263–264
sys.stdin, sys.stdout objects, 263–264
SystemError exception, 317
SystemExit exception, 15, 26, 67, 69, 314, 317
T
TabError exception, 317
tabulation, 19, 311, 318
teletypewriter (TTY), 281
tell() method, 262
telnet program, 274, 286
tempfile module, 289–290
testing
smaller tasks, 145
using file objects for, 279
text, 247–248
converting from binary data, 274
encoding/decoding, 13, 248–250, 255, 259
fitting to terminal width, 290
handling lines of, 260, 263
text attribute, 317
TextIOWrapper class, 260
textwrap module, 290
threading module, 271, 291–293
threads, 271–272
throw() method, 147, 152
time module, 293, 319
time() function, 293
time, handling, 293, 318–319
TimeoutError exception, 316
title() method, 300, 312
to_bytes() method, 305
@trace decorator, 125–126
traceback messages, 24, 315
traceback module, 73
__traceback__ attribute, 65, 73, 315
translate() method, 299–300, 312
True value, 6–7, 38, 43–45, 297–298
__truediv__() method, 90
__trunc__() method, 91
truncate() method, 262
truncating division, 5
try statement, 24–25, 64, 66, 110, 141
tuple type, 313
tuple() function, 47
tuples, 15–17
as keys, 52
as literals, 38, 46
as sequences, 47
comparing, 42
concatenating, 16
creating, 15
empty, 43, 313
indexing, 16
iterating over, 17, 21
named, 109–110
number of items in, 306, 313
returning values from functions with, 23, 109
slicing, 16
unpacking, 16
using in dictionaries, 19
turtle module, 319
type class, 218–220, 313
type hints, 107, 129, 155, 179–180, 222
creating methods from, 197
module-level, 242
with base classes, 184–185
type() function, 70, 80, 154, 217, 313
type-based dispatch, 193–194
TypeError exception, 43, 68, 95, 101, 103, 122, 191, 211, 305, 317
types, 79, 313
built-in, 167–169
checking values against, 81, 305
conversions between, 94–95
types module, 313
V
UDP servers, 287
unary minus/plus, 5
UnboundLocalError exception, 68, 111, 317
Unicode encoding
code-point values in, 307
in source code, 2
operations on text strings in, 294–295
unicodedata module, 294–295
UnicodeError exception, 67–68, 249, 317
UnicodeXXXError exceptions, 317
union operation, 18, 50, 309
union() method, 309
unittest module, 319
universal newline mode, 260
UNIX
EOF character on, 2
executing files on, 3
low-level I/O control operations on, 278
newline characters on, 260
path separators on, 281
unpack() function, 288
update() method, 18, 168, 302
upper() method, 10, 300, 312
urlencode(), urlopen(), urlparse() functions, 293–294
urllib package, 293–294
urllib.parse package, 294
UserDict, UserList, UserString classes, 168
UTF-8 encoding, 2, 13, 249–250
V
ValueError exception, 25, 67–68, 317
values, 3, 79
checking against types, 81, 305
minimum/maximum, 307
printing, 265, 308
reducing, 128
representing, 84–85
updating in place, 41
values() method, 21, 51, 302
variables, 3
associated types of, 3, 167
free, 114–115
global, 111–113
local, 24, 111–113, 134, 149–151
names of, 3
reassigning, 108
starred, 46
type hints for, 107
unbound, 317
vars() function, 313
venv command, 36
virtual environment, 36
W
walrus operator, see := operator
warning() function, 281
weak references, 204–206, 317
weakref module, 204, 317
__weakref__ attribute, 206
web servers, 279
websites, 275, 294
while statement, 4, 7–9, 12, 39, 60–62
Windows
EOF character on, 2
executing files on, 3
failed system calls on, 318
newline characters on, 260
path separators on, 281
WindowsError exception, 318
with statement, 12, 25, 75–77, 99, 202, 256, 289–290
wrap() function, 290
wrappers, 104, 208
@wraps decorator, 124–125
writable() method, 262
write() function, 265
write() method, 13, 262
write_through attribute, 263
writelines() method, 262
X
xml package, 295–296
xml.etree package, 295
__xor__() method, 90
Y
yield from statement, 142–143
yield statement, 97, 139–142, 265
used as an expression, 146–147
Z
ZeroDivisionError exception, 67, 314, 318
zfill() method, 300, 312
zip() function, 62, 314
Fair Use Source
© 1994 - 2024 Cloud Monk Losang Jinpa or Fair Use. Disclaimers
SYI LU SENG E MU CHYWE YE. NAN. WEI LA YE. WEI LA YE. SA WA HE.