- Python Documentation (https://www.python.org/doc/): everything about Python
- Official Python 3 Documentation (https://docs.python.org/3/library/index.html): "official"/technical explanation of what a particular function/operator does, examples of correct syntax, what the various libraries are, etc.
- The Python Standard Library (https://docs.python.org/3/library/): it's nice to know the standard library.
- Reserved Keywords in Python (https://docs.python.org/3.0/reference/lexical_analysis.html#id8): don't use these as variable names.
- Python for Non-Programmers (https://wiki.python.org/moin/BeginnersGuide/NonProgrammers):
- Dive Into Python (http://www.diveintopython3.net/): another survey of Python syntax, datatypes, etc.
- The Official Python Tutorial (https://docs.python.org/3/tutorial/): self-explanatory.
- Learn Python the Hard Way (https://learnpythonthehardway.org/python3/): a very good and free online textbook.
- Think Python (http://greenteapress.com/wp/think-python-2e/): by Allen Downey. This book offers a very "computer science"-style introduction to Python.
- Python for You and Me (http://pymbook.readthedocs.org/en/latest/): Simple and clear. This is a great book for absolute newcomers, or to keep as a quick reference as you get used to the language. The latest version is Python 3.
- Python 101 (http://www.blog.pythonlibrary.org/2014/06/03/python-101-book-published-today/) Available as a reasonably priced ebook. This is a new one from a popular Blogger about Python. Lots of practical examples.
- Python Essential Reference (http://www.dabeaz.com/per.html): The definitive reference for both Python and much of the standard library.
- Writing Idiomatic Python (https://www.jeffknupp.com/writing-idiomatic-python-ebook): Focused on not just getting the code to work, but how to write it in a really "Pythonic" way.
- Fluent Python (http://shop.oreilly.com/product/0636920032519.do): All python3, and focused on getting the advanced details right. Good place to go once you've got the basics down.
- CheckIO (https://checkio.org/): learn Python by exploring a game world
- Invent with Python (https://inventwithpython.com/): develop your Python skills by making games or hacking ciphers.
- Python Tutor (http://www.pythontutor.com/): interactive tutorial sequence of exercises.
- Problem Solving with Algorithms and Data Structures (http://interactivepython.org/runestone/static/pythonds/index.html): Links to an external site.
- CS for All(https://www.cs.hmc.edu/csforall/): an open book by professors at Harvey Mudd College which teaches the fundamentals of computer science using Python. It's an accessible read and perfect for programming beginners.
- A Byte of Python (https://python.swaroopch.com/): now it is using Python 3
- Introduction to Programming with Python (http://opentechschool.github.io/python-beginners/en/index.html): goes over the basic syntax and control structures in Python. The free book has numerous code examples to go along with each topic.
- Python Course (http://www.python-course.eu/python3_course.php): Links to an external site
- Codecademy (https://www.codecademy.com/learn/python): (note: for Python 2) learn Python by building web apps and manipulating data; interactive tutorial sequence.
- Software carpentry (https://v4.software-carpentry.org/python/)
- edX Python courses (https://www.edx.org/course?search_query=python)
- coursera Python courses (https://www.coursera.org/courses?languages=en&query=python)
- Udacity Python courses (https://www.udacity.com/course/programming-foundations-with-python--ud036)
- Google's Python Class (https://developers.google.com/edu/python): kinda old, used within Google to introduce Python to people who have just a little programming experience. (note: for Python 2)
- Dataquest.io Learning Python (https://www.dataquest.io/subject/learning-python)
- Python Tutor (http://www.pythontutor.com/): an excellent way to actually visualize how the interpreter actually reads and executes your code.
- DiffChecker (https://www.diffchecker.com/): compares two sets of text and shows you which lines are different.
- Debugging in Python (https://pythonconquerstheuniverse.wordpress.com/2009/09/10/debugging-in-python/): steps you can take to try to debug your program.
- Stack Overflow (http://stackoverflow.com/questions/tagged/python): a large Q&A forum for programming concepts (not just Python).
- Python Subreddit (https://www.reddit.com/r/python)
- The Python IAQ: Infrequently Answered Questions (http://norvig.com/python-iaq.html) by Peter Norvig
- Python Challenge (http://www.pythonchallenge.com/): a series of puzzles you can try to test your Python abilities.
- Advent of Code (https://adventofcode.com/): really fun; the first couple of questions are good for beginners.
- Project Euler (https://projecteuler.net/): additional programming challenges you can try once your Python knowledge becomes stronger; problems are sorted by increasing difficulty.
- Coding Bat (http://codingbat.com/python): problems you can solve within an online interpreter.
- Codewars (https://www.codewars.com/?language=python): improve your skills by training on real code challenges.
- hackerrank Python challenges (https://www.hackerrank.com/domains/python/py-introduction)
- Google's Python Exercises (https://developers.google.com/edu/python/exercises/basic)
- LeetCode Online Judge (https://leetcode.com/)
- Google Code Jam (https://code.google.com/codejam)
- TopCoder (https://www.topcoder.com/community/data-science/data-science-tutorials/)
- Codeforces (http://codeforces.com/)
- Timus Online Judge (http://acm.timus.ru/)
- Codechef (https://www.codechef.com/)
- LeetCode OJ (https://leetcode.com/problemset/algorithms/)
- HackerRank Programming problems and Competitions (https://www.hackerrank.com/)
- Sphere Online Judge (SPOJ) (http://www.spoj.com/)
- Practical Business Python (http://pbpython.com/)
- Writing your first Django app (https://docs.djangoproject.com/en/dev/intro/tutorial01/): for Django developers.
- Python for Programmers(https://wiki.python.org/moin/BeginnersGuide/Programmers)
- Learn Python in y minutes(https://learnxinyminutes.com/docs/python/): provides a whirlwind tour of the Python language. The guide is especially useful if you're coming in with previous software development experience and want to quickly grasp how the language is structured.
- How to Develop Quality Python Code (https://districtdatalabs.silvrback.com/how-to-develop-quality-python-code): a good read to begin learning about development environments, application dependencies and project structure.
- The Python module of the week chapters (https://pymotw.com/2/contents.html): a good way to get up to speed with the standard library. Doug Hellmann is also now updating the list for changes brought about from the upgrade to Python 3 from 2.x.
- Kenneth Reitz's The Hitchhiker’s Guide to Python (http://docs.python-guide.org/en/latest/): contains a wealth of information both on the Python programming language and the community.
- Composing Programs (http://composingprograms.com/): shows how to build compilers with Python 3, which is a good undertaking if you're looking to learn both more about the Python language and how compiles work.
- Good to Great Python Reads (http://jessenoller.com/good-to-great-python-reads/): a collection of intermediate and advanced Python articles around the web focused on nuances and details of the Python language itself.
- Easy-Python (http://easy-python.readthedocs.io/en/latest/): a list of awesome things you didn’t know you would need.
- Awesome Python Awesome (https://github.com/vinta/awesome-python): a curated list of awesome Python frameworks, libraries, software and resources.
- Best Python Videos ((http://www.fullstackpython.com/best-python-videos.html))
- Hidden features of Python (http://stackoverflow.com/questions/101268/hidden-features-of-python)
- PEP 8 (https://www.python.org/dev/peps/pep-0008/): Style Guide for Python Code: learn what is good and bad style in Python.
- PEP 257 -- Docstring Conventions (https://www.python.org/dev/peps/pep-0257/)
- Google Python Style Guide (https://google.github.io/styleguide/pyguide.html): style guidelines for Google code.
- The Elements of Python Style (https://github.com/amontalenti/elements-of-python-style)
It can be helpful to read existing code to get a better idea of how to organize your own programs. Here are some good examples of short Python programs, with explanations:
- Solving Every Sudoku Puzzle (http://norvig.com/sudoku.html)
- How to Write a Spelling Corrector (http://norvig.com/spell-correct.html)
- Natural language processing (http://norvig.com/ngrams/)
- Python Cookbook (http://shop.oreilly.com/product/0636920027072.do)