Open resources for learning and using the Python programming language.
Python is a popular general-purpose programming language, with a lot of available materials covering lots of different topics. This list is focused on curating materials focused on learning the basics of the Python programming language (the standard library), as well as the tools available for numerical and scientific computing.
The Python programming language is managed by the Python Software Foundation, which hosts their own documentation page, as well as their own guide on getting started with Python.
In terms of version, Python is now firmly on Python3, and it is recommended to use the most recent 3.X stable release of Python. Note that Python2 is effectively retired, and there are many useful updates that make Python3 worth updating to.
In terms of distributions and/or platforms to manage Python, there are many, but a pretty typical approach is to use the anaconda distribution to get and manage Python, and to use the Jupyter ecosystem, including their notebooks, for interactive computing.
For more generalized lists of Python resources, there are some other relevant lists:
- the awesome Python list of everything Python
- the awesome Jupyter list of everything Jupyter
- the awesome scientific Python list of scientific Python
The following are openly available courses, resources and/or tutorials for learning standard library Python.
The Python cheatsheet is a comprehensive collection of notes on standard library Python.
Introduction to Python is a course taught and developed at UC San Diego (as COGS18) with openly available materials for learning Python.
Software Carpentry creates lessons aimed at scientists, and has some lessons on the Python programming language.
Homepage - Python Lesson 1 - Python Lesson 2
Codecademy has an online tutorial for Python, with an online interactive interpreter to try out some code.
You may need to sign-up for codecademy, but you can do many of the lessons for free.
Whirlwind tour of Python, by Jake VanderPlas, is a quick introduction to the Python programming language, aimed at people who already have a general sense of programming and want to learn the Python syntax.
PY4E, by Dr. Chuck, is a set of free materials, including lessons and videos, for learning to program in Python.
Practical Python Programming, by David Beazley, is an openly available course on the Python programming language.
This video lesson, from freeCodeCamp.Org, is brief course introducing the Python programming language.
Intermediate Python is a collection of materials for learning intermediate-level tips and tricks in Python.
'Scientific Python' refers to the tools and communities in Python that focus on numerical, scientific & data applications.
Generally, this is clustered around the scipy ecosystem.
The core scientific computing tools in Python include:
- numpy for numerical computing, and data array management
- pandas for managing and analyzing heterogeneous data
- matplotlib for plotting and all kinds of visualizations
- scipy for general scientific computing
- scikit-learn for machine learning
Each of the above tools have their own documentation, user guides and tutorials for learning their respective tools and applications.
The scipy organization has a course for learning the scipy ecosystem.
The Python Data Science Handbook, by Jake VanderPlas, is an openly available resource for learning data science in Python.
Data Science in Practice is a course taught and developed at UC San Diego (as COGS108) with openly available materials for learning data science with Python.
Numerical tours in Python is a collection of materials exploring topics within numerical computing.
From Python to Numpy, by Nicolas Rougier, is an in depth introduction to numpy, for those who have some familiarity with the standard library.
The IPython Cookbook is an openly available collection of numerical computing examples and workflows, in Jupyter notebooks.
Python for Data Analysis, by Luke Thompson, is an introduction to doing data science in Python, with Jupyer notebooks.
Introductory materials, starting at basic Python and working through numerical computation and data management, using practice notebooks.
This online textbook covers data science work in Python, using real-world datasets, related to the COVID-19 pandemic.
The following are collections of exercises to practice using Python.
The following are exercises related to standard library Python:
- Pytudes is a collection of practice problems
- Python Koans is a collection of problems for learning Python
- The Python Challenge is a series of 'riddles' that can be solved using Python
The following are exercises & collections related to scientific computing with Python:
- A collection of 100 numpy exercises
- A collection of algorithms
- The 100 days of algorithms challenge
- The Project Euler collection of math problems
The following are guides for specific topics in the Python language:
- A post on working with lists
- An explainer of list comprehensions
- An overview of Python Decorators
- An explainer of @staticmethod & @classmethod