A list of Python books in English that are free to read online or download.
I had been learning Python for a few weeks when, in January, 2019, I stumbled upon a Reddit post in r/learnpython seeking suggestions on how to become a better programmer.
One of the comments asked for good books or websites about algorithms and data structures. I had collected links to useful Python learning resources among which the free ebook Problem Solving with Algorithms and Data Structures using Python, so I shared the link in a comment.
My comment got a couple dozen upvotes, which hinted at the interest in good, easily accessible Python books. Therefore I later put together a list of all the free Python books I had found and posted it to r/Python.
I was right. My post got hundreds of upvotes and several redditors contributed links to more books and lists, thus confirming the interest in such a resource. The next step was to make my list more useful and widely available by integrating it with the suggestions I got in the Reddit post, publishing it to GitHub, and expanding it with more books.
It's the list you're reading now.
This list includes the entries I originally posted to Reddit, the books and other lists suggested in the comments, a few more I found since then, and any I'll discover.
What's a free Python book?
My definition is fuzzy and necessarily subjective. But I'd say it's an ebook file, a book-length document, or a website structured like a book that is about Python, is written in English, and can be read online or downloaded for free. Most short online tutorials and how-to pages probably don't qualify.
But in the end I recognize a free Python book when I see one.
The entries are grouped by category or application domain and include coverage at all skill levels, from basic to advanced. Within categories the entries are sorted alphabetically by title.
Some redditors shared links to other list of free programming books, some of which are about Python. I've included them too but there's of course some overlap with mine.
I don't mind paid content. In fact, I also purchased great paid Python ebooks and online resources and I'm going to get more.
However, free ebooks have several advantages such as often coming in additional handy or downloadable formats. It's also easier to get books on topics you may be interested in but don't have an immediate need for.
Thanks to the redditors who contributed book suggestions and links in my original post: AlSweigart, ASIC_SP, Bisalsn, bitcoin-dude, code_x_7777m isakar-elahim, lask757, mfitzp, pvc, warbird2k.
If you have books to suggest you can do a pull request or create an issue. Creating an issue is also a good way of providing other feedback.
Thanks!
- A Byte of Python
- Dive Into Python 3
- Exploring Python Basics
- Non-Programmer's Tutorial for Python 3
- Python 101
- A Python Book: Beginning Python, Advanced Python, and Python Exercises
- Python 3 Patterns, Recipes and Idioms
- Python Notes for Professionals
- Natural Language Processing with Python
- Neural Networks and Deep Learning
- Probabilistic Programming & Bayesian Methods for Hackers
- Annotated Algorithms in Python - With applications in Physics, Biology, and Finance
- How to Think Like a Computer Scientist: Interactive Edition
- Problem Solving with Algorithms and Data Structures using Python
- Think Python: How to Think Like a Computer Scientist
- Clean Architectures in Python: A practical approach to better software design
- Object Oriented Programming with Python: Learn essentials of OOP with Python 3
- Test-Driven Development with Python
- The Hitchhiker’s Guide to Python!
- Create a Simple Flask Application with Cloud9, Heroku and MongoDB
- Super Crash Course in Full Stack Web Development with Python and Django
- Getting Started With Python In The Lab: An Introductory Python Tutorial For Life Scientists
- Python Data Science Handbook
- Python for Scientists and Engineers
- Invent Your Own Computer Games with Python
- Learn Python With Arcade Academy
- Making Games with Python & Pygame
- Program Arcade Games With Python And Pygame
Each file in this repository is licensed under the CC BY 4.0 License.