Lecture 1 Introduction to Python Programming

Slides:



Advertisements
Similar presentations
CS 100: Roadmap to Computing Fall 2014 Lecture 0.
Advertisements

Intro to Python Welcome to the Wonderful world of GIS programing!
Control Flow Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See
Program Design and Development
 2002 Prentice Hall. All rights reserved. 1 Intro: Java/Python Differences JavaPython Compiled: javac MyClass.java java MyClass Interpreted: python MyProgram.py.
Programming Introduction November 9 Unit 7. What is Programming? Besides being a huge industry? Programming is the process used to write computer programs.
 2002 Prentice Hall. All rights reserved. 1 Chapter 2 – Introduction to Python Programming Outline 2.1 Introduction 2.2 First Program in Python: Printing.
PYTHON: LESSON 1 Catherine and Annie. WHAT IS PYTHON ANYWAY?  Python is a programming language.  But what’s a programming language?  It’s a language.
Recitation 1 Programming for Engineers in Python.
What is RobotC?!?! Team 2425 Hydra. Overview What is RobotC What is RobotC used for What you need to program a robot How a robot program works Framework.
Introduction to Python Lecture 1. CS 484 – Artificial Intelligence2 Big Picture Language Features Python is interpreted Not compiled Object-oriented language.
Introduction to Python
General Computer Science for Engineers CISC 106 Lecture 02 Dr. John Cavazos Computer and Information Sciences 09/03/2010.
Introduction to Python Basics of the Language. Install Python Find the most recent distribution for your computer at:
Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley C H A P T E R 2 Input, Processing, and Output.
Introduction to Computational Linguistics Programming I.
C463 / B551 Artificial Intelligence Dana Vrajitoru Python.
You Need an Interpreter!. Closing the GAP Thus far, we’ve been struggling to speak to computers in “their” language, maybe its time we spoke to them in.
Introduction to Python Dr. José M. Reyes Álamo. 2 Three Rules of Programming Rule 1: Think before you program Rule 2: A program is a human-readable set.
Trinity College Dublin, The University of Dublin GE3M25: Computer Programming for Biologists Python Karsten Hokamp, PhD Genetics TCD, 03/11/2015.
Basics Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See
Python 1 SIGCS 1 Intro to Python March 7, 2012 Presented by Pamela A Moore & Zenia C Bahorski 1.
Introduction to Programming Python Lab 7: if Statement 19 February PythonLab7 lecture slides.ppt Ping Brennan
PHP Tutorial. What is PHP PHP is a server scripting language, and a powerful tool for making dynamic and interactive Web pages.
Lecture 11 Introduction to R and Accessing USGS Data from Web Services Jeffery S. Horsburgh Hydroinformatics Fall 2013 This work was funded by National.
PROGRAMMING USING PYTHON LANGUAGE ASSIGNMENT 1. INSTALLATION OF RASPBERRY NOOB First prepare the SD card provided in the kit by loading an Operating System.
1 Agenda  Unit 7: Introduction to Programming Using JavaScript T. Jumana Abu Shmais – AOU - Riyadh.
Part 1 Learning Objectives To understand that variables are a temporary named location to store data and that programmers work with different data types.
Foundations of Programming: Java
PHP using MySQL Database for Web Development (part II)
Introduction to python programming
Fundamentals of Programming I Overview of Programming
Development Environment
Introduction to GIS PythonScript CGIS-NURIntroduction to ArcGIS II.
Whatcha doin'? Aims: To start using Python. To understand loops.
Python Programming Challenge
CSc 120 Introduction to Computer Programing II Adapted from slides by
Introduction to Python
CMSC201 Computer Science I for Majors Lecture 22 – Binary (and More)
Pamela Moore & Zenia Bahorski
Variables, Expressions, and IO
Introduction to Scripting
Python is a general-purpose interpreted, interactive, object-oriented, and high-level programming language. It was created by Guido van Rossum during.
PHP Introduction.
Week 1 Gates Introduction to Information Technology cosc 010 Week 1 Gates
PH2150 Scientific Computing Skills
Arithmetic operations, decisions and looping
Introduction to Python
Introduction to Programming
Topics Introduction to File Input and Output
WEB PROGRAMMING JavaScript.
T. Jumana Abu Shmais – AOU - Riyadh
CS 100: Roadmap to Computing
Introduction to Programming
A look at Python Programming Language 2018.
Python Primer 1: Types and Operators
12th Computer Science – Unit 5
Winter 2019 CISC101 4/28/2019 CISC101 Reminders
Chapter 1: Programming Basics, Python History and Program Components
PHP an introduction.
Programming In.
General Computer Science for Engineers CISC 106 Lecture 03
Introduction to Programming
Topics Introduction to File Input and Output
L L Line CSE 420 Computer Games Lecture #3 Introduction to Python.
CS 100: Roadmap to Computing
Introduction to Python
PYTHON - VARIABLES AND OPERATORS
Presentation transcript:

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

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

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

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 http://www.python.org

What is Python?

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

Idle on Windows

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

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

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

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’

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

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

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

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

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

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

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

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

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

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

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’

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

Use Functions to Convert Between Types >>>print int(‘2’) + 3 5 >>>

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

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

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

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’, 3.14159]

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'

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’

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

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

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

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)

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

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

Repetition - Loops >>>numMoons = 3 >>>while numMoons > 0: print numMoons numMoons -= 1 3 2 1 >>>

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

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

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

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.

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.

Import a Module into a Script

Some Python Resources Python 2.7.8 documentation: https://docs.python.org/2/index.html Software Carpentry: http://software-carpentry.org/index.html Python in Hydrology: http://www.greenteapress.com/pythonhydro/pythonhydro.html And many others…

Coding Challenge

Get the Data http://waterdata.usgs.gov/nwis/uv?cb_00060=on&format=rdb&site_no=10109000&period=&begin_date=2014-08-18&end_date=2014-08-25

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: http://maps.waterdata.usgs.gov/mapper/index.html 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

Example Solution “The most recent streamflow value for USGS Gage 10109000 was 109 cfs on 2014-08-25 3:15.”

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

Credits Some instructional materials adapted from the Software Carpentry website http://software-carpentry.org Copyright © Software Carpentry Support: EPS 1135482