> For the complete documentation index, see [llms.txt](https://rteff.gitbook.io/learning/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://rteff.gitbook.io/learning/formal-science/computer_science/computer_languages/programming_languages/python.md).

# Python

TODO

## Articles

* [Python изнутри. Введение](https://habr.com/ru/company/buruki/blog/189972/)
* [Understand Python swapping: why is a, b = b, a not always equivalent to b, a = a, b?](https://stackoverflow.com/questions/68152730/understand-python-swapping-why-is-a-b-b-a-not-always-equivalent-to-b-a-a)
* [What does the operator += return in Python](https://stackoverflow.com/questions/66373149/what-does-the-operator-return-in-pythonw)
* [You don't really need a virtualenv](https://frostming.com/2021/01-22/introducing-pdm/)
* [Why you shouldn't invoke setup.py directly](https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html)
* [Packaging without setup.py](https://pgjones.dev/blog/packaging-without-setup-py-2020)
* [Never Run ‘python’ In Your Downloads Folder](https://glyph.twistedmatrix.com/2020/08/never-run-python-in-your-downloads-folder.html)
* [The Many Ways to Exit in Python](https://adamj.eu/tech/2021/10/10/the-many-ways-to-exit-in-python/)
* [In CPython, the global interpreter lock, or GIL, is a mutex that protects access to Python objects, preventing multiple threads from executing Python bytecodes at once](https://wiki.python.org/moin/GlobalInterpreterLock)
* [What the global statement really means in Python](https://blog.chiodini.org/posts/python-global/)
* [Multithreading & Multiprocessing in Python3](https://medium.com/mindful-engineering/multithreading-multiprocessing-in-python3-f6314ab5e23f)
* [Python behind the scenes #13: the GIL and its effects on Python multithreading](https://tenthousandmeters.com/blog/python-behind-the-scenes-13-the-gil-and-its-effects-on-python-multithreading/)
* [Understanding all of Python, through its builtins](https://sadh.life/post/builtins/)
* [Зачем Python столько знаков подчеркивания?](https://nuancesprog.ru/p/14193/)
* [Docker Best Practices for Python Developers](https://testdriven.io/blog/docker-best-practices/)
* [Tips for debugging with print()](https://adamj.eu/tech/2021/10/08/tips-for-debugging-with-print/)
* [50 Python Basic Question Answered](https://levelup.gitconnected.com/50-python-interview-question-and-answers-404e08bc054c)
* [Must Know Python Developer Interview Questions](https://python.plainenglish.io/python-must-know-questions-7436625315bc)
* [Five Python Features You (Probably) Didn’t Know](https://towardsdatascience.com/five-python-features-you-probably-didnt-know-d48faa0b892e)
* [Python Features You Should Know](https://medium.com/swlh/python-features-you-should-know-aff75b3159e3)
* [Как работать с типизацией в Python](https://tproger.ru/articles/python-typing/)
* [30 уловок на языке Python, которые сделают вас лучшим программистом](https://proglib.io/p/30-ulovok-na-yazyke-python-kotorye-sdelayut-vas-luchshim-programmistom-2021-02-14)
* [What's the pythonic way to use getters and setters?](https://stackoverflow.com/questions/2627002/whats-the-pythonic-way-to-use-getters-and-setters)
* [Пользовательские атрибуты в Python](https://habr.com/ru/post/137415/)
* [Getter and Setter in Python](https://www.geeksforgeeks.org/getter-and-setter-in-python/)
* [Where does all the effort go? Looking at Python core developer activity](https://lukasz.langa.pl/f15a8851-af26-4e94-a4b1-c146c57c9d20/)
* [An oral history of Bank Python](https://calpaterson.com/bank-python.html)
* [A Python Script Template, with and without Type Hints and Async](https://adamj.eu/tech/2021/10/09/a-python-script-template-with-and-without-type-hints-and-async/)
* [The math behind Python's slices](https://sadh.life/post/slices/)
* [Structural pattern matching in Python 3.10](https://benhoyt.com/writings/python-pattern-matching/)
* [Debugging by starting a REPL at a breakpoint is fun](https://jvns.ca/blog/2021/09/16/debugging-in-a-repl-is-fun/)
* [Python in 2021: The Good, The Bad, and the Ugly](https://new.pythonforengineers.com/blog/python-in-2021-the-good-the-bad-and-the-ugly/)
* [Python Anti-Pattern](https://valinsky.me/articles/python-anti-pattern/)
* [The best Docker base image for your Python application](https://pythonspeed.com/articles/base-image-python-docker-images/)
* [Python Best Practices for a New Project in 2021](https://mitelman.engineering/blog/python-best-practice/automating-python-best-practices-for-a-new-project/)
* [Writing fast async HTTP requests in Python](https://blog.jonlu.ca/posts/async-python-http)
* [The hidden performance overhead of Python C extensions](https://pythonspeed.com/articles/python-extension-performance/)
* [Why you really need to upgrade pip](https://pythonspeed.com/articles/upgrade-pip/)
* [How not to be slow using Python: Functions](https://pawroman.dev/how-not-to-be-slow-using-python-functions/)
* [Tracing the Python GIL](https://www.maartenbreddels.com/perf/jupyter/python/tracing/gil/2021/01/14/Tracing-the-Python-GIL.html)
* [Modern Python Environments - dependency and workspace management](https://testdriven.io/blog/python-environments/)
* [Virtual Environments Demystified](https://meribold.org/python/2018/02/13/virtual-environments-9487/)
* [Python at Scale: Strict Modules](https://instagram-engineering.com/python-at-scale-strict-modules-c0bb9245c834)
* [Writing Performant Parallel Python Code](https://medium.com/swlh/writing-performant-parallel-python-code-7e2f0292f438)
* [Asynchronous Python and Databases](https://techspot.zzzeek.org/2015/02/15/asynchronous-python-and-databases/)
* [Beginners Introduction to using Standard I/O](https://alecthegeek.github.io/2020/05/04/Intro-to-stdio.html)
* [Options for Python packaging: Wheels, Conda, Docker, and more](https://pythonspeed.com/articles/distributing-software/)
* [Clinging to memory: how Python function calls can increase memory use](https://pythonspeed.com/articles/function-calls-prevent-garbage-collection/)
* [Development with Nix: Python](https://thomazleite.com/posts/development-with-nix-python/)
* [Advanced pytest techniques I learned while contributing to pandas](https://levelup.gitconnected.com/advanced-pytest-techniques-i-learned-while-contributing-to-pandas-7ba1465b65eb)
* [Using enumerated types in Python](https://johnlekberg.com/blog/2020-06-06-enum.html)
* [Ultimate Guide to Python Debugging](https://martinheinz.dev/blog/24)
* [Hypermodern Python](https://cjolowicz.github.io/posts/hypermodern-python-01-setup/)
* [Automating Every Aspect of Your Python Project](https://martinheinz.dev/blog/17)
* [Ultimate Setup for Your Next Python Project](https://towardsdatascience.com/ultimate-setup-for-your-next-python-project-179bda8a7c2c)
* [Distill: Why do we need Flask, Celery, and Redis? (with McDonalds in Between)](https://ljvmiranda921.github.io/notebook/2019/11/08/flask-redis-celery-mcdo/)
* [Math Symbols Explained with Python](https://amitness.com/2019/08/math-for-programmers/)
* [Making Python Programs Blazingly Fast](https://martinheinz.dev/blog/13)
* [Iterables vs. Iterators vs. Generators](https://nvie.com/posts/iterators-vs-generators/)
* [New features planned for Python 4.0](https://charlesleifer.com/blog/new-features-planned-for-python-4-0/)
* [Your Guide to the CPython Source Code](https://realpython.com/cpython-source-code-guide/)
* [Writing a simple Python compiler: 1. hello, fibonacci](https://notes.eatonphil.com/writing-a-simple-python-compiler.html)
* [Разбор параметров командной строки в Python](https://jenyay.net/Programming/Argparse)
* [It’s time to stop using Python 3.6](https://pythonspeed.com/articles/stop-using-python-3.6/)
* [Garbage Collection for Python](http://www.arctrix.com/nas/python/gc/)
* [Python Garbage Collection: What It Is and How It Works](https://stackify.com/python-garbage-collection/)
* [Memory management in Python](https://rushter.com/blog/python-memory-managment/)
* [Dismissing Python Garbage Collection at Instagram](https://instagram-engineering.com/dismissing-python-garbage-collection-at-instagram-4dca40b29172)
* [PEP 374 -- Choosing a distributed VCS for the Python project](https://www.python.org/dev/peps/pep-0374/)
* [Python — серьезный язык для разработки backend](https://habr.com/ru/company/raiffeisenbank/blog/593047/)
* [Как PyPy ускоряет Python до уровня C?](https://nuancesprog.ru/p/14989/)
* [Введение в Data classes](https://habr.com/ru/post/415829/)
* [Руководство к дескрипторам](https://habr.com/ru/post/122082/)
* [Cython: более чем 30-кратное ускорение Python-кода](https://habr.com/ru/company/ruvds/blog/462487/)
* [Как сделать ваш код в 80 раз быстрее](https://habr.com/ru/company/otus/blog/349230/)
* [Введение в функциональное программирование на Python](https://habr.com/ru/post/257903/)
* [Как хранить объекты Python со сложной структурой](https://proglib.io/p/kak-hranit-obekty-python-so-slozhnoy-strukturoy-moduli-pickle-i-dill-2020-04-30)
* [Как опубликовать свою Python библиотеку на PyPI](https://proglib.io/p/kak-opublikovat-svoyu-python-biblioteku-na-pypi-2020-01-28)
* [Приоритетность и ассоциативность операторов / для начинающих](https://pythonru.com/uroki/29-prioritetnost-i-associativnost-operatorov-dlja-nachinajushhih)
* [Building a full-text search engine in 150 lines of Python code](https://bart.degoe.de/building-a-full-text-search-engine-150-lines-of-code/)
* [Генераторы для самых маленьких](https://habr.com/ru/post/560300/)
* [Разборки в террариуме. Изучаем виды интерпретаторов Python](https://xakep.ru/2015/02/04/python-interpretators/)
* [Timsort (original explanation by Tim Peters)](https://bugs.python.org/file4451/timsort.txt)
* [Сложность алгоритмов и операций на примере Python](https://proglib.io/p/slozhnost-algoritmov-i-operaciy-na-primere-python-2020-11-03)
* [Введение в аннотации типов Python](https://habr.com/ru/company/lamoda/blog/432656/)

## Books

* Как устроен python. Гид для разработчиков, программистов и интересующихся. (Харрисон М.)
* Программирование на Python, том 1, 4-е издание. Марк Лутц
* Чистый питон`[0/288]`
* Data Engineering with Python (Paul Crickard)
* Algorithmic Trading with Python (Chris Conlan)

## Courses / Videos

* [Object-Oriented Programming in Python](https://learn.datacamp.com/courses/object-oriented-programming-in-python)
* [Python for Everybody Specialization](https://www.coursera.org/specializations/python)
* [Практика программирования на Python 3 - 2019](https://www.youtube.com/playlist?list=PLRDzFCPr95fLuusPXwvOPgXzBL3ZTzybY)
* [Практика программирования на Python 3 - 2020](https://www.youtube.com/playlist?list=PLRDzFCPr95fIDJUvFxvzWxg-V9BmZlMMe)
* [SciPy 2021 Tutorials](https://youtube.com/playlist?list=PLYx7XA2nY5Geb1XY6mZU-35lgIfkDqaem)
* [Школа бэкенд-разработки 2019](https://youtube.com/playlist?list=PLQC2_0cDcSKBHamFYA6ncnc_fYuEQUy0s)
* [Łukasz Langa / Designing With Immutability \[eng\]](https://youtu.be/0RInKZR8Weo)
* [Creator of Python Programming Language, Guido van Rossum | Oxford Union](https://youtu.be/7kn7NtlV6g0)
* [Python API Development - Comprehensive Course for Beginners](https://youtu.be/0sOvCWFmrtA)
* [What's New in Python 3.10: featuring Brandt Bucher, Lukasz Llanga and Sebastian Ramirez](https://youtu.be/JteTO3EE7y0)
* [Python Backend Web Development Course (with Django)](https://youtu.be/jBzwzrDvZ18)
* [**new** vs **init** in Python](https://youtu.be/-zsV0_QrfTw)
* [David Beazley - Python Concurrency From the Ground Up: LIVE! - PyCon 2015](https://youtu.be/MCs5OvhV9S4) - about multithreading and asynchrony, building your event loop from scratch

## Links

* [Official website of Python language](https://www.python.org/)
* [Python 3 docs](https://docs.python.org/3/)
* [Pythontutor](https://pythontutor.com/visualize.html#mode=edit) - VISUALIZE CODE EXECUTION
* [Full stack python](https://www.fullstackpython.com/) - open source book that explains technical concepts in plain language.
* [Learning Python Test Automation](https://automationpanda.com/2020/11/09/learning-python-test-automation/amp/)
* [Coding Patterns for Python Extensions](https://pythonextensionpatterns.readthedocs.io/en/latest/index.html)
* [Real Python Tutorials (Articles)](https://realpython.com/)
* [Python behind the scenes (Articles)](https://tenthousandmeters.com/) - series, which is a dive into the internals of CPython, Python's interpreter.
* [Solve Challenge (Python)](https://www.hackerrank.com/domains/python)
* [Python Interview Questions](https://www.interviewbit.com/python-interview-questions/)
* [Learn X in Y minutes Where X=Python](https://learnxinyminutes.com/docs/python/)
* [PySDR: A Guide to SDR and DSP using Python](https://pysdr.org/index.html)
* [Futurecoder](https://futurecoder.io/) - Learn Python from scratch
* [Python Tutorial (W3Schools)](https://www.w3schools.com/python/default.asp)
* [Pypi](https://pypi.org/) - Find, install and publish Python packages with the Python Package Index
* [Moscow Python Podcast](https://podcast.python.ru/) - подкасты для тех, кто хочет лучше разобраться в Python и не только!
* [Talk Python](https://www.youtube.com/channel/UCKPSmMfDsXTKrCZApukcJ7A) - weekly podcast hosted by Michael Kennedy
* [mCoding](https://www.youtube.com/c/mCodingWithJamesMurphy/videos)
* [Codebasics](https://www.youtube.com/c/codebasics/videos)
* [Python Multithreading without GIL](https://github.com/colesbury/nogil)
* [Cyberbrain](https://github.com/laike9m/Cyberbrain) - Python debugging, redefined
* [mypy](https://github.com/python/mypy) - Optional static typing for Python
* [Replacing Bash Scripting with Python](https://github.com/ninjaaron/replacing-bash-scripting-with-python)
* [vulture](https://github.com/jendrikseipp/vulture) - Find dead Python code
* [pipx](https://github.com/pypa/pipx) - Install and Run Python Applications in Isolated Environments
* [wtfpython](https://github.com/satwikkansal/wtfpython)
* [Python reference](https://github.com/rasbt/python_reference) - Useful functions, tutorials, and other Python-related things
* [Comprehensive Python Cheatsheet](https://github.com/gto76/python-cheatsheet)
* [setup.py](https://github.com/navdeep-G/setup.py)
* [Free Python Books](https://github.com/pamoroso/free-python-books)
* [CPython Internals](https://github.com/zpoint/CPython-Internals) - Dive into CPython internals, trying to illustrate every detail of CPython implementation
* [Python Mini Projects](https://github.com/Python-World/python-mini-projects)
* [IPython](https://github.com/ipython/ipython) - command shell for interactive computing in multiple programming languages, originally developed for the Python programming language, that offers introspection, rich media, shell syntax, tab completion, and history
* [Ipython notebooks](https://github.com/jdwittenauer/ipython-notebooks) - A collection of IPython notebooks covering various topics
* [Python is cool](https://github.com/chiphuyen/python-is-cool) - features for machine learning that I used to be too afraid to use.
* [Python Roadmap](https://github.com/GnuriaN/Python-Roadmap) - Дорожная карта по изучению Python
* [30 seconds of python](https://github.com/30-seconds/30-seconds-of-python) - Short Python code snippets for all your development needs
* [Learn Python 3](https://github.com/jerry-git/learn-python3) - Jupyter notebooks for teaching/learning Python 3
* [Python patterns](https://github.com/faif/python-patterns) - A collection of design patterns/idioms in Python
* [Awesome asyncio](https://github.com/timofurrer/awesome-asyncio) - A curated list of awesome Python asyncio frameworks, libraries, software and resources
* [Awesome Scientific Python](https://github.com/rossant/awesome-scientific-python) - A curated list of awesome scientific Python resources
* [Awesome Flake8 Extensions](https://github.com/DmytroLitvinov/awesome-flake8-extensions) - A curated awesome list of flake8 extensions. Feel free to contribute
* [Awesome Python Typing](https://github.com/typeddjango/awesome-python-typing) - Collection of awesome Python types, stubs, plugins, and tools to work with them.
* [Awesome Python scientific audio](https://github.com/faroit/awesome-python-scientific-audio) - Curated list of python software and packages related to scientific research in audio
* [Awesome Python in education](https://github.com/quobit/awesome-python-in-education) - A curated list about Python in Education
* [Awesome Python Applications](https://github.com/mahmoud/awesome-python-applications) - Free software that works great, and also happens to be open-source Python
* [Awesome Python](https://github.com/vinta/awesome-python) - A curated list of awesome Python frameworks, libraries, software and resources
* [cpython](https://github.com/python/cpython) - Python language src
* [Peps](https://github.com/python/peps) - Python Enhancement Proposals
