python-handbook/ ├── 00-start-here/ │ ├── 00.1 README.md │ ├── 00.2 roadmap.md │ ├── 00.3 how-to-use-this-repo.md │ ├── 00.4 setup-python.md │ └── 00.5 first-program.md
├── 01-foundations/ │ ├── 01.01 py hello-world.md │ ├── 01.02 py program-structure.md │ ├── 01.03 py comments.md │ ├── 01.04 py print.md │ ├── 01.05 py input.md │ ├── 01.06 py escape-sequences.md │ ├── 01.07 py indentation.md │ ├── 01.08 py interpreted-vs-compiled.md │ ├── 01.09 py variables.md │ ├── 01.10 py dynamic-typing.md │ ├── 01.11 py type-functions.md │ ├── 01.12 py int.md │ ├── 01.13 py float.md │ ├── 01.14 py complex.md │ ├── 01.15 py bool.md │ ├── 01.16 py none.md │ ├── 01.17 py type-conversion.md │ ├── 01.18 py constants.md │ ├── 01.19 py naming-conventions.md │ └── 01.20 py common-mistakes.md
├── 02-operators/ │ ├── 02.01 py arithmetic.md │ ├── 02.02 py assignment.md │ ├── 02.03 py comparison.md │ ├── 02.04 py logical.md │ ├── 02.05 py identity.md │ ├── 02.06 py membership.md │ ├── 02.07 py bitwise.md │ ├── 02.08 py precedence.md │ ├── 02.09 py walrus.md │ └── 02.10 py examples.md
├── 03-control-flow/ │ ├── 03.01 if.md │ ├── 03.02 if-else.md │ ├── 03.03 elif.md │ ├── 03.04 nested-if.md │ ├── 03.05 match-case.md │ ├── 03.06 while.md │ ├── 03.07 for.md │ ├── 03.08 break.md │ ├── 03.09 continue.md │ ├── 03.10 pass.md │ ├── 03.11 loop-else.md │ ├── 03.12 range.md │ ├── 03.13 enumerate.md │ ├── 03.14 zip.md │ └── 03.15 real-examples.md
├── 04-data-structures/ │ │ ├── strings/ │ │ ├── 04.01 basics.md │ │ ├── 04.02 indexing.md │ │ ├── 04.03 slicing.md │ │ ├── 04.04 immutability.md │ │ ├── 04.05 methods-1.md │ │ ├── 04.06 methods-2.md │ │ ├── 04.07 formatting.md │ │ ├── 04.08 validation.md │ │ ├── 04.09 encoding.md │ │ └── 04.10 mistakes.md │ │ ├── lists/ │ │ ├── 04.11 basics.md │ │ ├── 04.12 indexing.md │ │ ├── 04.13 slicing.md │ │ ├── 04.14 modify.md │ │ ├── 04.15 methods.md │ │ ├── 04.16 comprehensions.md │ │ ├── 04.17 nested.md │ │ ├── 04.18 copy.md │ │ └── 04.19 mistakes.md │ │ ├── tuples/ │ │ ├── 04.20 basics.md │ │ ├── 04.21 indexing.md │ │ ├── 04.22 slicing.md │ │ ├── 04.23 immutability.md │ │ ├── 04.24 methods.md │ │ ├── 04.25 packing.md │ │ └── 04.26 mistakes.md │ │ ├── dicts/ │ │ ├── 04.27 basics.md │ │ ├── 04.28 access.md │ │ ├── 04.29 modify.md │ │ ├── 04.30 methods.md │ │ ├── 04.31 comprehension.md │ │ ├── 04.32 nested.md │ │ └── 04.33 mistakes.md │ │ └── sets/ │ ├── 04.34 basics.md │ ├── 04.35 add-remove.md │ ├── 04.36 operations.md │ ├── 04.37 methods.md │ ├── 04.38 frozen.md │ └── 04.39 mistakes.md
├── 05-functions/ │ ├── 05.01 basics.md │ ├── 05.02 calling.md │ ├── 05.03 parameters.md │ ├── 05.04 return.md │ ├── 05.05 none.md │ ├── 05.06 positional.md │ ├── 05.07 keyword.md │ ├── 05.08 default.md │ ├── 05.09 starargs.md │ ├── 05.10 kwargs.md │ ├── 05.11 ordering.md │ ├── 05.12 docstrings.md │ ├── 05.13 annotations.md │ ├── 05.14 recursion.md │ ├── 05.15 lambda.md │ ├── 05.16 map.md │ ├── 05.17 filter.md │ ├── 05.18 reduce.md │ ├── 05.19 closures.md │ └── 05.20 real-examples.md
├── 06-modules/ │ ├── 06.01 creating.md │ ├── 06.02 import.md │ ├── 06.03 from-import.md │ ├── 06.04 alias.md │ ├── 06.05 main.md │ ├── 06.06 sys-path.md │ ├── 06.07 reload.md │ ├── 06.08 packages.md │ └── 06.09 relative.md
├── 07-files/ │ ├── 07.01 open.md │ ├── 07.02 modes.md │ ├── 07.03 read.md │ ├── 07.04 write.md │ ├── 07.05 close.md │ ├── 07.06 with.md │ ├── 07.07 seek.md │ ├── 07.08 csv.md │ ├── 07.09 json.md │ ├── 07.10 text.md │ ├── 07.11 os.md │ ├── 07.12 shutil.md │ ├── 07.13 pathlib.md │ └── 07.14 examples.md
├── 08-errors/ │ ├── 08.01 try.md │ ├── 08.02 multiple.md │ ├── 08.03 else.md │ ├── 08.04 finally.md │ ├── 08.05 builtins.md │ ├── 08.06 raise.md │ ├── 08.07 custom.md │ ├── 08.08 assert.md │ ├── 08.09 chaining.md │ └── 08.10 debugging.md
├── 09-oop/ │ ├── 09.01 class.md │ ├── 09.02 object.md │ ├── 09.03 variables.md │ ├── 09.04 methods.md │ ├── 09.05 init.md │ ├── 09.06 self.md │ ├── 09.07 str-repr.md │ ├── 09.08 encapsulation.md │ ├── 09.09 property.md │ ├── 09.10 getter.md │ ├── 09.11 setter.md │ ├── 09.12 inheritance.md │ ├── 09.13 polymorphism.md │ ├── 09.14 overriding.md │ ├── 09.15 super.md │ └── 09.16 examples.md
├── 10-advanced/ │ ├── 10.01 generators.md │ ├── 10.02 iterators.md │ ├── 10.03 decorators.md │ ├── 10.04 wraps.md │ ├── 10.05 context-managers.md │ ├── 10.06 async.md │ ├── 10.07 asyncio.md │ ├── 10.08 regex.md │ ├── 10.09 metaclasses.md │ └── 10.10 memory.md
├── 11-standard-library/ │ ├── 11.01 math.md │ ├── 11.02 random.md │ ├── 11.03 datetime.md │ ├── 11.04 time.md │ ├── 11.05 json.md │ ├── 11.06 re.md │ ├── 11.07 collections.md │ ├── 11.08 itertools.md │ ├── 11.09 functools.md │ ├── 11.10 argparse.md │ └── 11.11 os-sys.md
├── 12-quality/ │ ├── 12.01 pep8.md │ ├── 12.02 naming.md │ ├── 12.03 docstrings.md │ ├── 12.04 typing.md │ ├── 12.05 mypy.md │ ├── 12.06 unittest.md │ ├── 12.07 pytest.md │ ├── 12.08 black.md │ └── 12.09 flake8.md
├── 13-performance/ │ ├── 13.01 timeit.md │ ├── 13.02 profiling.md │ ├── 13.03 memory.md │ ├── 13.04 optimization.md │ └── 13.05 caching.md
├── 14-patterns/ │ ├── 14.01 eafp.md │ ├── 14.02 lbly.md │ ├── 14.03 best-practices.md │ └── 14.04 anti-patterns.md
├── 15-mini-projects/ │ ├── 15.01 calculator-cli.md │ ├── 15.02 file-organizer.md │ ├── 15.03 password-generator.md │ ├── 15.04 json-parser.md │ ├── 15.05 log-analyzer.md │ ├── 15.06 todo-cli.md │ ├── 15.07 system-info-tool.md │ └── 15.08 url-downloader.md
└── 16-appendix/ ├── 16.01 cheatsheet.md ├── 16.02 glossary.md ├── 16.03 mistakes.md └── 16.04 roadmap-advanced.md