Programming with Python

June 22, 2026 ยท View on GitHub

GitHub release Create a Slack Account with us Slack Status

An introduction to Python for non-programmers using inflammation data.

About the Lesson

This lesson teaches novice programmers to write modular code to perform data analysis using Python. The emphasis, however, is on teaching language-agnostic principles of programming such as automation with loops and encapsulation with functions, see Best Practices for Scientific Computing and Good enough practices in scientific computing to learn more.

The example used in this lesson analyses a set of 12 files with simulated inflammation data collected from a trial for a new treatment for arthritis. Learners are shown how it is better to automate analysis using functions instead of repeating analysis steps manually.

The rendered version of the lesson is available at: https://swcarpentry.github.io/python-novice-inflammation/.

This lesson is also available in R and MATLAB.

Episodes

#EpisodeTimeQuestion(s)
1Python Fundamentals30What basic data types can I work with in Python?
How can I create a new variable in Python?
Can I change the value associated with a variable after I create it?
2Analyzing Patient Data60How can I process tabular data files in Python?
3Visualizing Tabular Data50How can I visualize tabular data in Python?
How can I group several plots together?
4Storing Multiple Values in Lists30How can I store many values together?
5Repeating Actions with Loops30How can I do the same operations on many different values?
6Analyzing Data from Multiple Files20How can I do the same operations on many different files?
7Making Choices30How can my programs do different things based on data values?
8Creating Functions30How can I define new functions?
What's the difference between defining and calling a function?
What happens when I call a function?
9Errors and Exceptions30How does Python report errors?
How can I handle errors in Python programs?
10Defensive Programming30How can I make my programs more reliable?
11Debugging30How can I debug my program?
12Command-Line Programs30How can I write Python programs that will work like Unix command-line tools?

Contributing

Travis Build Status

We welcome all contributions to improve the lesson! Maintainers will do their best to help you if you have any questions, concerns, or experience any difficulties along the way.

We'd like to ask you to familiarize yourself with our Contribution Guide and have a look at the more detailed guidelines on proper formatting, ways to render the lesson locally, and even how to write new episodes!

Maintainers

Lesson maintainers are Toan Phung, Indraneel Chakraborty and Olushola Ogunkelu.

Authors

A list of contributors to the lesson can be found in AUTHORS.

License

Instructional material from this lesson is made available under the Creative Commons Attribution (CC BY 4.0) license. Except where otherwise noted, example programs and software included as part of this lesson are made available under the MIT license. For more information, see LICENSE.md.

Citation

To cite this lesson, please consult with CITATION.

About Software Carpentry

Software Carpentry is a volunteer project that teaches basic computing skills to researchers since 1998. More information about Software Carpentry can be found here.

About The Carpentries

The Carpentries is a registered 501(c)3 non-profit organisation based in Delaware, USA. We are a global community teaching foundational computational and data science skills to researchers in academia, industry and government. More information can be found here.