Introduction to Programming with Python Programming with Python

adventurescoldSoftware and s/w Development

Nov 7, 2013 (4 years and 1 day ago)

441 views

Introduction to
Programming with Python
Programming with Python
Marty Stepp (stepp@cs.washington.edu)
University of Washington
Special thanks to Scott Shawcroft, Ryan Tucker, and Paul Beck for their work on these slides.
Except where otherwise noted, this work is licensed under:
http://creativecommons.org/licenses/by-nc-sa/3.0
Outline
•Programming languages and Python
•Basic programs and numeric data

Control statements
2

Control statements
•Text processing
•What's next? / CSE 142 at UW
Languages
•Some influential ones:
–FORTRAN
•science / engineering
–COBOL
•business data

LISP
3

LISP
•logic and AI
–BASIC
•a simple language
Python
•Created in 1991 by Guido van Rossum (now at Google)
–Named for Monty Python
•Useful as a scripting language
–script: A program meant for use in small/medium projects
4
•Used by:
–Google, Yahoo!, Youtube
–Many Linux distributions
–Games and apps (e.g. Eve Online)
Installing Python
Windows:
•Download Python from
http://www.python.org
•Install Python.
•Run Idlefrom the Start Menu.
Mac OS X:
•Python is already installed.
•Open a terminal and run python
or run Idle from Finder.
Linux:

Chances are you already have
5

Chances are you already have
Python installed. To check, run
pythonfrom the terminal.
•If not, install from your
distribution's package system.
Note: For step by step installation
instructions, see the course web site.
Interpreted Languages
•interpreted
–Not compiled like many other languages (Java, C, C++)
–Code is written and then directly executed by an interpreter
–Type commands into interpreter and see immediate results
6
Computer
Runtime
Environment
Compiler
Code
Java:
Computer
Interpreter
Code
Python:
The Python Interpreter
•Allows you to type commands one-at-a-time and see results
•A great way to explore Python's syntax
7
Basic Programs and
Basic Programs and
Numeric Data
The printStatement
•A Python program's code is just written directly into a file
print "text"
print(a blank line)
hello.py
1
print "Hello, world!"
9
swallows.py
1
2
3
4
print "Hello, world!"
print
print "Suppose two swallows carry it together."
print "African or European swallow?"
1
print "Hello, world!"
Comments
•Syntax:
# comment text (one line)
swallows2.py
1
# Suzy Student, CSE 142, Fall 2097
10
1
2
3
4
5
6
# Suzy Student, CSE 142, Fall 2097
# This program prints important messages.
print "Hello, world!"
print
# blank line
print "Suppose two swallows \"carry\" it together."
print 'African or "European" swallows?'
Expressions
•expression: A value or operation(s) to compute a value.
Example:1 + 4 * 3
•Arithmetic operators:

+ -* /add, subtract/negate, multiply, divide

**
exponentiate
11

**

%modulus, a.k.a. remainder
•precedence: Order in which operations are computed.
* / % **have a higher precedence than + -
1 + 3 * 4is 13
(1 + 3)* 4is 16
Integer division
•When we divide integers with /, the quotient is an integer.
3
52
4 ) 14 27 ) 1425
12
135
2 75
54
21
is
12
35 / 5
is
7
84 / 10is 8
•The %operator computes a remainder from integer division.
3
43
4 ) 14 5 ) 218
12
20
218
15
3
Variables
•variable: A named piece of memory that stores a value.
•assignment: Stores a value into a variable.
–Syntax:
name= expression
13
–Examples:x = 5
gpa = 3.14
x 5 gpa 3.14
–A variable can be used in expressions.
x + 4is 9
Exercise
•This program's code is redundant. Improve it with variables:
print "Subtotal:"
print 38 + 40 + 30
print "Tax:"
print (38 + 40 + 30) * .09
print "Tip:"
14
print "Tip:"
print (38 + 40 + 30) * .15
print "Total:"
print 38 + 40 + 30 + (38 + 40 + 30) * .15 + (38 + 40 + 30) * .09
Data Types
•type: A category or set of data values.
–Constrains the operations that can be performed on the data
–Examples: integer, real number, text string
•Python is relaxed about types.

A variable's type does not need to be declared.
15

A variable's type does not need to be declared.
–A variable can change types as a program is running.
ValuePython type 42int
3.14float
"ni!"str
Parameters
•parameter: A value supplied to a command as you run it.
–Syntax:
command(
value
)
command(
value, value, ..., value
)

Example:
16

Example:
print sqrt(25)
print sqrt(15 + 10 * 10 + 6)
x = 5
print sqrt(x + sqrt(16))
Math commands
Function nameDescription
abs(value)
absolute value
ceil(value)
rounds up
cos(value)
cosine, in radians
floor(value)
rounds down
log10(value)
logarithm, base 10
max(
value1
,
value2
)
larger of two values
Constant Description
e
2.7182818...
pi
3.1415926...
17
•To use these commands, place this line atop your program:
from math import *
max(
value1
,
value2
)
larger of two values
min(value1,value2)
smaller of two values
round(value)
nearest whole number
sin(value)
sine, in radians
sqrt(value)
square root
input: Reads a number from the user's keyboard.
–You can store the result of inputinto a variable.
–Example:
age = input("How old are you? ")
print "Your age is", age
print "You have", 65
-
age, "years until retirement"
input
18
print "You have", 65
-
age, "years until retirement"
Output:
How old are you? 53
Your age is 53
You have 12 years until retirement
•Exercise: Modify the restaurant program to ask the user
how much of a tip to leave.
Control Statements
Control Statements
if
ifstatement: Executes a set of commands only if a certain
condition is True. Otherwise, the commands are skipped.
–Syntax:
if condition:
statements

Example:
20

Example:
gpa = input("What is your GPA? ")
if gpa > 2.0:
print "Your application is accepted."
if/else
if/elsestatement: Executes one set of statements if a
certain condition is True, and a second set if it is False.
–Syntax:
if condition:
statements
else:
statements
21
statements
–Example:
gpa = input("What is your GPA? ")
if gpa > 2.0:
print "Welcome to Mars University!"
else:
print "Your application is denied."
•Multiple conditions can be chained with elif
Logic
OperatorMeaningExampleResult
==
equals
1 + 1 == 2True
!=
does not equal
3.2 != 2.5True
<
less than
10 < 5False
>
greater than
10 > 5True
<=
less than or equal to
126 <= 100False
22
–Logical expressions can be combined using
logical operators
:
OperatorExampleResult
and(9 != 6) and (2 < 3) True
or(2 == 3) or (-1 < 5)True
notnot (7 > 0)False
>=
greater than or equal to
5.0 >= 5.0True
forloops
for namein range(start, end):
statements
for namein range(start, end, step):
statements
–Repeats for values start(inclusive) to end(exclusive)
>>> for i in range(2, 6):
23
>>> for i in range(2, 6):
print i
2
3
4
5
>>> for i in range(15, 0, -5):
print i, "squared is", (i * i)
15 squared is 225
10 squared is 100
5 squared is 25
Cumulative loops
•Some loops incrementally compute a value.
–sometimes called a
cumulative
loop
sum = 0
for i in range(1, 11):
sum = sum + (i * i)
print "sum of first 10 squares is", sum
24
print "sum of first 10 squares is", sum
Output:
sum of first 10 squares is 385
Exercise
•Write a program that reads a student's homework scores as
input and computes the student's homework percentage.
This program computes your average homework grade.
How many assignments were there? 3
Assignment 1
Points earned? 12
Points possible?
15
25
Points possible?
15
Assignment 2
Points earned? 10
Points possible? 20
Assignment 3
Points earned? 4
Points possible? 5
Your total score: 26 / 40 : 65 %
while
whileloop: Executes as long as a condition is True.
–good for
indefinite loops
(repeat an unknown number of times)
•Syntax:
while condition:
statements
26
statements
•Example:
number = 1
while number < 200:
print number,
number = number * 2
–Output:
1 2 4 8 16 32 64 128
Random numbers
from random import *
randint(min, max)
Produces a random value between minand max(inclusive)

Example:
27

Example:
coinflip = randint(1, 2)
if coinflip == 1:
print "Heads"
else:
print "Tails"
Exercise
•Write a program that plays a guessing game with the user:
Let's play a game. Try to guess my number from 1-100!
Your guess? 40
Too low.
Your guess? 85
Too high.
Your guess?
68
28
Your guess?
68
Too high.
Your guess? 51
Too low.
Your guess? 57
Too low.
Your guess? 63
Too high.
Your guess? 61
You got it right in 7 guesses!
Text Processing
Text Processing
•string: A sequence of text characters in a program.
–Strings start and end with quote "or apostrophe 'characters.
"hello"
"This is a string"
"This, too, is a string. It can be very long!"
Strings
30
•A string can represent special characters with a backslash.
\"quotation mark character
\ttab character
\\backslash character
"Bob said, \"Hello!\" to Susan."
Indexes
•Characters in a string are numbered with
indexes
:
name = "P. Diddy"

Accessing an individual character from a string:
index01234567
character
P.Diddy
31

Accessing an individual character from a string:
variable[index]
print name, "starts with", name[0]
Output:
P. Diddy starts with P
String properties
len(
string
)-number of characters in a string
(including spaces)
str.lower(
string
)-lowercase version of a string
str.upper(
string
)-uppercase version of a string

Example:
32

Example:
name = "Martin Douglas Stepp"
big_name = str.upper(name)
print big_name, "has", len(big_name), "characters"
Output:
MARTIN DOUGLAS STEPP has 20 characters
raw_input: Reads a string of text from the user's keyboard.
–Example:
name = raw_input("Howdy. What's yer name? ")
print name, "... what a silly name!"
raw_input
33
Output:
Howdy. What's yer name? Paris Hilton
Paris Hilton ... what a silly name!
Text processing
•text processing: Examining, editing, formatting text.
–Often uses loops that examine characters one by one.
•A forloop can examine each character in a string in order.
–Example:
for c in "booyah":
34
for c in "booyah":
print c
Output:
b
o
o
y
a
h
Strings and numbers
ord(text)-Converts a string into a number.
–Example: ord("a")is 97, ord("b")is 98, ...
–Characters use standard mappings such as
ASCII
and
Unicode
.

chr(
number
)
-
Converts a number into a string.
35

chr(
number
)
-
Converts a number into a string.
–Example: chr(99)is "c"
Exercise
•Write a program that "encrypts" a secret message by shifting
the letters of the message by 1:
–e.g. "Attack"when rotated by 1 becomes "buubdl"
36
What's Next?
What's Next?
Further programming
•What do students learn next?
–Arrays, data structures
–Objects and object-oriented programming
–Algorithms: searching, sorting, recursion, etc.
–Graphical user interfaces, drawing, event-driven programming
38
CSE 142 Homework
•Our homeworks process interesting data and text
39
•Around the 3rd week, we assign a graphical program
•Two parts:
–draw a particular figure using loops and parameters
–draw any figure you want
•figures posted on course web site and voted on by students
Student pictures
40
Critter simulation
•Students write several
small classes to
represent animals in a
simulation world
•Each student writes a
custom "Husky" animal
41
custom "Husky" animal
with their choice of
behavior
•The best huskies
compete in a
tournament for prizes
Facebook integration
42
Links
•Python for math teachers:
–http://showmedo.com/videos/series?id=101
•Physics and 3D in Python:
–http://showmedo.com/videos/series?name=pythonThompsonVPythonSeries

Handbook of the Physics Computing Course (Python):
43

Handbook of the Physics Computing Course (Python):
–http://www-teaching.physics.ox.ac.uk/computing/handbook_Python/handbook_Python.html
•Biopython -Python tools for biology:
–http://biopython.org/wiki/Main_Page
•Python course in Bioinformatics:
–http://www.pasteur.fr/recherche/unites/sis/formation/python/index.html