#!/usr/bin/env python # coding: utf-8 # ###### The cell above loads the visual style of the notebook when run. # In[1]: from IPython.core.display import HTML css_file = '../styles.css' HTML(open(css_file, "r").read()) # # Programming with Python # --- # # *These lessons are modified from Software Carpentry's [python lesssons](http://swcarpentry.github.io/python-novice-inflammation) to be more specific to astronomy and cover Python 3.* # # 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. # # Our goal in this lesson isn't to teach you all of Python's syntax, but # to teach you the basic concepts that all programming depends upon. # # We are studying data on the brightnesses of stars in a small patch of sky. We have a dozen # data sets covering different time spans. The data sets are stored in [comma-seperated-values](http://swcarpentry.github.io/python-novice-inflammation/reference.html#comma-separated-values) # (CSV) format. Each row holds information for a single star, and the columns represent successive days. # The first few rows of our first file might 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 # 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 # 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 # 0,0,2,0,4,2,2,1,6,7,10,7,9,13,8,8,15,10,10,7,17,4,4,7,6,15,6,4,9,11,3,5,6,3,3,4 # 0,1,1,3,3,1,3,5,2,4,4,7,6,5,3,10,8,10,6,17,9,14,9,7,13,9,12,6,7,7,9,6,3,2,2,4 # ~~~ # # # We want to: # # * load that data into memory, # * calculate the average brightness per day across all stars, and # * plot the result. # # To do all that, we'll have to learn a little bit about programming. #
#
#

Learning Objectives

#
#
# # > Learners need to understand the concepts of files and directories # > (including the working directory) and how to start a Python # > interpreter before tackling this lesson. This lesson references the Jupyter # > Notebook although it can be taught through any Python interpreter. The commands in this # > lesson pertain to Python 3.2. #
#
#

Prerequisites

#
#
# # > If you haven't already you will need to download some files to follow this lesson: # > # > 1. Make a new folder somewhere on your computer called `python-bootcamp`. # > 2. Download the [zip archive](https://github.com/StuartLittlefair/python-bootcamp/zipball/master) of the Python bootcamp notebooks. Move the zip file to the python-bootcamp folder. # > 3. If it's not unzipped yet, double-click on it to unzip it. You should end up with a new folder called `data`, a few other folders and a number of Jupyter notebooks for you to run, including this one. # > 4. Start the Jupyter notebook server, and open this notebook - named '00-index.ipynb' # # ## Topics # # 1. Analysing Star Data: [notebook](01-numpy.ipynb) # 2. Repeating Actions with Loops: [notebook](02-loop.ipynb) # 3. Storing Multiple Values in Lists: [notebook](03-lists.ipynb) # 4. Analysing Data from Multiple Files: [notebook](04-files.ipynb) # 5. Making Choices: [notebook](05-cond.ipynb) # 6. Creating Functions: [notebook](06-func.ipynb) # 7. Errors and Exceptions: [notebook](07-errors.ipynb) # 8. Defensive Programming: [notebook](08-defense.ipynb) # # ## Other Resources # # * [Reference](reference.html)