Programming with Python

This is the version taught at the Software carpentries workshop beginning on Monday 11 February 2019.

The best way to learn how to program is to do something useful, so this introduction to Python is built around a common scientific task: data analysis.

Arthritis Inflammation

We are studying inflammation in patients who have been given a new treatment for arthritis, and need to analyze the first dozen data sets of their daily inflammation. The data sets are stored in comma-separated values (CSV) format:

The first three rows of our first file look like this:

0,0,1,3,1,2,4,7,8,3,3,3,10,5,7,4,7,7,12,18,6,13,11,11,7,7,4,6,8,8,4,4,5,7,3,4,2,3,0,0
0,1,2,1,2,1,3,2,2,6,10,11,5,9,4,4,7,16,8,6,18,4,12,5,12,7,11,5,11,3,3,5,4,4,5,5,1,1,0,1
0,1,1,3,3,2,6,2,5,9,5,7,4,5,4,15,5,11,9,10,19,14,12,17,7,12,11,7,4,2,10,5,4,2,2,3,2,2,1,1

So, we want to:

  1. Calculate the average inflammation per day across all patients.
  2. Plot the result to discuss and share with colleagues.

To do all that, we’ll have to learn a little bit about programming. In the first half of the course we’ll introduce the concepts of Python and in the second half we’ll apply these techniques to the data to perform the analysis.

Prerequisites

You need to understand the concepts of files and directories and have a basic knowledge of Shell before tackling this lesson

The commands in this lesson pertain to Python 3.

Getting Started

To get started, follow the directions on the “Setup” page to download data and install a Python interpreter.

Schedule

Setup Download files required for the lesson
00:00 1. Introduction to Python What is Python?
How do I get it to do things?
00:15 2. Types, Objects, Values and Variables How can I store and access basic information in Python?
00:40 3. Operators How do I manipulate objects and data in Python?
01:00 4. Storing Multiple Values in Collections How can I store many values together?
01:40 5. Writing Python Scripts How can I write and save complete Python programs?
02:00 6. Making Choices How can my programs do different things based on data values?
02:40 7. Repeating Actions with Loops How can I do the same operations on many different values?
03:40 8. Using External Modules How can I extend Python’s functionality?
How can I use code other people have written?
04:00 9. Creating Functions How can I define new functions?
What’s the difference between defining and calling a function?
What happens when I call a function?
04:40 10. Errors and Exceptions How does Python report errors?
How can I handle errors in Python programs?
05:10 11. Reading in Tabular Data How can I load tabular data files in Python?
06:00 12. Producing Plots How can I produce plots in Python?
06:50 13. Analyzing Data from Multiple Files How can I do the same operations on many different files?
07:15 14. Filtering Data How can I filter out bad data?
07:35 15. Tidying up the Analysis How can I facter the analysis code?
08:15 16. Command-Line Programs How can I write Python programs that will work like Unix command-line tools?
08:45 Finish

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.