- __init__, 142, 159, 306
- __str__, 146, 162
- absolute path, 116
- algorithm, 335, 418
- API, 249, 250, 254, 309
- append(), 141, 201, 226
- argparse, 305, 389, 417
- argument, 62, 114, 148, 239
- attribute, 128, 139, 159, 207
- automation, 170, 171, 184, 187, 199
- backup, 33, 118, 170, 245, 406
- BeautifulSoup, 391
- boolean, 56, 93, 156
- break, 34, 64, 110, 131, 281
- bytecode, 15, 128
- class, 138, 141, 148, 149, 150
- class variable, 149, 173
- comment, 35, 45, 174, 214, 246
- composition, 158, 161
- condition, 58, 65, 94, 102, 275
- configuration, 170, 173, 264, 307
- continue, 25, 64, 280, 357
- cron, 239, 317, 366
- CSV files, 195, 196, 198, 213
- csv module, 131, 191, 197, 232, 364
- datetime, 121, 134, 187, 220, 235
- debugger, 27, 280
- debugging, 110, 270, 274, 280
- decorator, 323
- def, 90, 109, 324
- dictionary, 75, 78, 141, 262, 430
- dry run, 182, 185, 305, 389
- elif, 53, 71, 109
- email, sending, 352, 417
- encoding, 115, 279
- environment variables, 24, 253, 350, 433, 434
- errors
- AttributeError, 128, 159
- FileNotFoundError, 114, 239
- IndexError, 76
- KeyError, 79, 141
- ModuleNotFoundError, 200, 301, 434
- NameError, 45, 90
- SyntaxError, 15, 34, 56
- TypeError, 78, 427
- ValueError, 48, 103, 154, 232, 264
- ZeroDivisionError, 286
- Excel files, 196, 199, 223, 240, 296
- exception, 15, 101, 176, 232, 252
- file extension, 186, 433
- files
- reading, 113
- writing, 107, 114
- Flask, 321, 322, 343, 417
- float, 41, 97, 109, 199, 225
- flowchart, 6
- for loop, 65, 76, 324
- f-string, 44, 84, 146, 173, 228
- function, 89, 90, 93, 94
- GET and POST, 259, 325
- GitHub, 7, 18, 37, 50, 62
- glob(), 408
- HTML, 215, 321, 417
- IDE, 27
- if statement, 61, 105, 214, 324
- import, 71, 98, 121, 126, 302
- indentation, 15, 27, 53, 90
- index (position), 75, 278
- inheritance, 158, 171, 252
- input(), 35, 43, 91, 198, 239
- instance, 140, 149, 173, 210
- instance variable, 149
- integer, 41, 91, 198, 220
- interactive shell, 26, 42, 53, 276
- interpreter, 13, 31, 38, 298, 433
- Jinja, 324
- JSON, 250, 261, 262, 264
- lambda, 109, 132, 313, 384
- len(), 68, 91
- list, 65, 75, 379, 398, 430
- list comprehension, 94, 246
- logging, 107, 115, 170, 173, 175
- machine learning, 17, 301, 332, 335, 389
- macOS, 20, 25, 239, 434
- matplotlib, 332, 411, 418
- method, 57, 77, 139, 144, 325
- module, 15, 125, 127, 350, 431
- None, 53, 85, 92, 101
- object, 114, 140, 163, 209
- open(), 113, 167
- PATH, 21, 433
- pathlib, 116, 125, 173, 193, 239
- PDF files, 223, 224, 226, 370, 385
- Pillow, 370
- pip, 26, 200, 298, 434
- pipeline, 191, 261, 264, 265
- Playwright, 391, 417
- print(), 13, 38, 43, 91, 146
- pytest, 286, 296, 310, 334
- Python install manager, 21, 25, 433
- Python Virtual Machine, 15
- raise, 106, 160, 178, 269, 292
- random, 5, 16, 34, 73, 126
- range(), 65, 76, 91
- regular expressions, 206, 209, 223, 320
- relative path, 116, 245
- requests, 206, 232, 237, 251
- requirements.txt, 299, 422
- return, 62, 91, 93, 106, 135
- route, 2, 21, 323, 324
- scheduling, 117, 180, 239
- scikit-learn, 337, 418
- scraping, 254, 391, 417
- self, 131, 143, 174, 292
- set, 6, 12, 75, 80, 430
- shutil, 118, 125, 173, 186, 354
- slicing, 76, 199, 218, 343
- sorted(), 76, 185
- string, 41, 43, 44, 198, 210
- string methods, 57, 114, 186, 214, 225
- super(), 159
- templates, 324, 354
- terminal, 21, 23, 30, 350, 433
- testing, 285, 286, 288, 316
- traceback, 15, 102, 175, 277
- try and except, 97, 103, 114, 180, 237
- tuple, 58, 75, 77, 92, 430
- type(), 41
- variable, 24, 39, 149, 429
- virtual environment, 296, 297, 300, 434
- VS Code, 27, 28, 30, 432, 434
- Python extension, 29, 434
- Run button, 30, 69, 434
- while loop, 66
- Windows, 20, 21, 239, 433
- Word documents, 219, 227, 296, 379
- working directory, 115, 239
- zip(), 257
Back matter