Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture 1 Introduction to Python Programming

Similar presentations


Presentation on theme: "Lecture 1 Introduction to Python Programming"— Presentation transcript:

1 Lecture 1 Introduction to Python Programming
Jeffery S. Horsburgh Hydroinformatics Fall 2014 This work was funded by National Science Foundation Grants EPS and EPS

2 Objectives Introduction to the Python programming language
Write and execute computer code to automate repetitive tasks Retrieve and use data from common hydrologic data sources

3 This Week’s Schedule Today Thursday Introduction to Python
Key Python coding concepts and conventions Introduction to the coding challenge Thursday Group work on coding challenge

4 Why Python? http://www.python.org Python is generally:
Comparatively easy to learn Freely available Cross-platform (Windows, Mac, Linux) Widely used – extensive capabilities, documentation, and support Access to advanced math, statistics, and database functions Integrated into ArcGIS and other applications Simple, interpreted language – no compilation step

5 What is Python?

6 Python Basics To run Python interactively, we will use Idle (the Python GUI) Command line interpreter – evaluates whatever you type in Text editor with syntax highlighting Menu commands for changing settings and running files Windows: Start  All Programs  Python 2.7  Idle (Python GUI) Mac: Applications  Python 2.7  Idle

7 Idle on Windows

8 >>>print 1 + 2 3 >>>
Simple Arithmetic >>>print >>> Try typing some mathematical expressions

9 >>>print ‘charles’ + ‘darwin’ charlesdarwin >>>
Manipulate Strings >>>print ‘charles’ + ‘darwin’ charlesdarwin >>> Try typing some string expressions

10 Variables Variables are names for values
Created by use – no declaration necessary >>>planet = ‘Pluto’ >>>print planet Pluto >>> variable value planet ‘Pluto’

11 Variables Variables are names for values
Created by use – no declaration necessary >>>planet = ‘Pluto’ >>>print planet Pluto >>>moon = ‘Charon’ >>> variable value planet ‘Pluto’ moon ‘Charon’

12 Variables Variables can be assigned to other variables
>>>p = planet >>> variable value planet ‘Pluto’ moon ‘Charon’ p

13 Variables Variables can be assigned to other variables
>>>p = planet >>>print p Pluto >>> variable value planet ‘Pluto’ moon ‘Charon’ p

14 Variables In Python, variables are just names
Variables do not have data types >>>planet = ‘Pluto’ >>> string variable value planet ‘Pluto’

15 Variables In Python, variables are just names
Variables do not have data types >>>planet = ‘Pluto’ >>>planet = 9 >>> variable value planet ‘Pluto’ 9 integer

16 Variables In Python, variables are just names
Variables do not have data types >>>planet = ‘Pluto’ >>>planet = 9 >>> variable value planet ‘Pluto’ 9 Python collects the garbage and recycles the memory (e.g., ‘Pluto’) integer

17 Variables You must assign a value to a variable before using it
>>>planet = ‘Sedna’ >>>

18 Variables You must assign a value to a variable before using it
>>>planet = ‘Sedna’ >>>print plant #Note the deliberate misspelling

19 Variables You must assign a value to a variable before using it
>>>planet = ‘Sedna’ >>>print plant #Note the deliberate misspelling Traceback (most recent call last): File "<pyshell#11>", line 1, in <module> print plant NameError: name 'plant' is not defined Unlike some languages – Python does not initialize variables with a default value

20 Values Do Have Types >>>string = ‘two’ >>>number = 3 >>>print string * number

21 Values Do Have Types >>>string = ‘two’ >>>number = 3 >>>print string * number #Repeated concatenation twotwotwo >>>

22 Values Do Have Types >>>string = ‘two’ >>>number = 3 >>>print string * number #Repeated concatenation twotwotwo >>>print string + number ‘two3’ ???? If so, then what is the result of ‘2’ + ‘3’ Should it be the string ‘23’ Should it be the number 5 Should it be the string ‘5’

23 Values Do Have Types >>>string = ‘two’ >>>number = 3 >>>print string * number #Repeated concatenation twotwotwo >>>print string + number Traceback (most recent call last): File "<pyshell#15>", line 1, in <module> print string + number TypeError: cannot concatenate 'str' and 'int' objects

24 Use Functions to Convert Between Types
>>>print int(‘2’) >>>

25 Arithmetic in Python + - * / ** Addition 35 + 22 57 ‘Py’ + ‘thon’
Subtraction - 13 Multiplication * 3 * 2 6 ‘Py’ * 2 ‘PyPy’ Division / 3.0 / 2 1.5 3 / 2 1 Exponentiation ** 2 ** 0.5

26 Comparisons >>>3 < 5 True >>>
Comparisons turn numbers or strings into True or False

27 Comparisons Single ‘=‘ is assignment Double ‘==‘ is comparison
3 < 5 True Less than 3 != 5 Not equal to 3 == 5 False Equal to (Notice double ==) 3 >= 5 Greater than or equal to 1 < 3 < 5 Multiple comparisons Single ‘=‘ is assignment Double ‘==‘ is comparison

28 Python Lists A container that holds a number of other objects in a given order To create a list, put a number of expressions in square brackets: >>> L1 = [] # This is an empty list >>> L2 = [90,91,92] # This list has 3 integers >>> L3 = [‘Captain America’, ‘Iron Man’, ‘Spider Man’] Lists do not have to be homogenous >>>L4 = [5, ‘Spider Man’, ]

29 Accessing Elements in a List
Access elements using an integer index item = List[index] List indices are zero based >>> L3 = [‘Captain America’, ‘Iron Man’, ‘Spider Man’] >>> print ‘My favorite superhero is’ + L3[2] My favorite superhero is Spider Man To get a range of elements from a list use: >>>L3[0:2] #Get the first two items in a list ['Captain America', 'Iron Man'] >>>len(L3) #Returns the number of elements in a list 3 >>L3[-1] #Get the last item in a list 'Spider Man'

30 Dictionaries A collection of pairs (or items) where each pair has a key and a value >>> D = {‘Jeff’: ‘a’, ‘Steve’:‘b’, ‘Jon’:‘c’} >>> D[‘Jeff’] ‘a’ >>> D[‘Steve’] = ‘d’ #update value for key ‘Steve’ >>> D[‘Steve’] ‘d’

31 Behold the Power of Programming!
The real power of programming comes from the ability to perform: Selection – the ability to do one thing rather than another Repetition – the ability to automatically do something many times

32 Selection – if, elif, and else
moons = 3 if moons < 0: print ‘less’ elif moons == 0: print ‘equal’ else: print ‘greater’ Always starts with if and a condition There can be 0 or more elif clauses The else clause has no condition and is executed if nothing else is done Tests are always tried in order Since moons is not less than 0 or equal to zero, neither of the first two blocks is executed

33 Selection – if, elif, and else
>>>moons = 3 >>>if moons < 0: print ‘less’ elif moons == 0: print ‘equal’ else: print ‘greater’ greater >>>

34 Indentation Python uses indentation to show which statements are in an if, elif, else statement Any amount of indentation will work, but the standard is 4 spaces (and you must be consistent)

35 Repetition - Loops Simplest form of repetition is the while loop
numMoons = 3 while numMoons > 0: print numMoons numMoons -= 1

36 Repetition - Loops Simplest form of repetition is the while loop
numMoons = 3 while numMoons > 0: print numMoons numMoons -= 1 While this is true Do this

37 Repetition - Loops >>>numMoons = 3 >>>while numMoons > 0: print numMoons numMoons -= >>>

38 Combine Looping and Selection
numMoons = 0 while numMoons < 5: if numMoons > 0: print numMoons numMoons += 1

39 Combine Looping and Selection
>>>numMoons = 0 >>>while numMoons < 5: if numMoons > 0: print numMoons numMoons += >>>

40 Saving and Executing Code
Writing and executing complex code is too difficult to do line by line at the command line As soon as you close the Python interpreter, all of your work is gone… Instead Write code using a text editor Save the code as a text file with a “.py” extension Execute code in the file from the command line

41 Using a Script File Start a new Python text file in Idle. You can write Python in Notepad, but if you use a formal editor, you get color coding! Click “File/New File”. This will open the script editor. Write your script and save it as a “*.py” file. Then click “Run/Run Module” to test it…. Results appear in the “shell” window.

42 Modules You may want to reuse a function that you have written in multiple scripts without copying the definition into each one Save the function(s) as a module Import the module into other scripts It’s like an “extension” or “plug-in” In the interpreter type, help(‘modules’) to get a list of all currently installed modules.

43 Import a Module into a Script

44 Some Python Resources Python documentation: Software Carpentry: Python in Hydrology: And many others…

45 Coding Challenge

46 Get the Data

47 Coding Challenge Divide into small groups of no more than 3-4 people
Choose a real-time streamflow gage from the USGS that you are interested in. It could be a nearby gage or one that is near and dear to your heart. To see an interactive map of gage locations, go to: Create a Python script that does the following: Download the most recent data from the USGS website Read the file Extract the most recent streamflow value from the file Print the most recent streamflow value and the date at which it occurred to the screen

48 Example Solution “The most recent streamflow value for USGS Gage was 109 cfs on :15.”

49 Some Hints Develop your solution as a script so you can save it as a file. The USGS website returns the data as a file, but you have to request it using a URL in your code. The Python module called “urllib2” is one option for downloading a file using a URL. The data are returned in a text file where each new line represents a new date/time and data value. The Python module called “re” is one option for splitting a string using delimiters such as tabs or new-line characters. Also – check out the Python “split” method

50 Credits Some instructional materials adapted from the Software Carpentry website Copyright © Software Carpentry Support: EPS


Download ppt "Lecture 1 Introduction to Python Programming"

Similar presentations


Ads by Google