CSC1015_Slides02_MKuttel_PythonInputOutput_2013 OA

advertisement
CSC1015F – Python Chapter2
Michelle Kuttel
mkuttel@cs.uct.ac.za
Programming languages

A program is a sequence of instructions telling a
computer what to do.

Human languages still don’t work for this



Programming languages express computations in an
exact and unambiguous way

2
Ambiguous and imprecise
E.g. “They are hunting dogs.”
Precise SYNTAX (form) and
(meaning)
SEMANTICS
Origins of the Python
language

Created by Dutch computer programmer
Guido van Rossum in the early 1990’s


Intellectual property now owned by the
Python Software Foundation (PSF)




3
Benevolent Dictator for Life (BDFL)
We are using Python Version 3
Free and well documented
runs everywhere
Clean syntax
Integrated Development Environment (IDE)
Graphical interface with menus and windows, much like a
word processor
We recommend Wingware 101




free, scaled-down Python IDE designed for use in teaching
introductory programming classes.
It omits many features found in Wing IDE Professional and
makes simplifications appropriate for beginners.
you are welcome to use any other tools – e.g. IDLE


even a separate text editor and interpreter if you wish to
simply do things the hard way

4
Michelle likes to do this sometimes…
Python expressions
Programs are made up of commands (or statements)
that a computer executes or evaluates.
One kind of statement is an expression statement, or
expression.
5
Elements of programs:
Expressions
Expressions are fragments of code that produce or
calculate new data values, such as


Literals


Variables


e.g. x
Simple expressions combined with operators, e.g:




e.g. 3.9, “hello”, 1
5+2
x**2
“bat”+”man”
e.g. mathematical expressions like:


6
>>> 4 + 3
will be evaluated as 7.
Python interactive shell
The >>> part is called a prompt, because it prompts us to
type something.
7
Elements of programs: Variables and
assigment
x=3
x+4


x is a variable
A variable is used to name a value so that we can
refer to it later
an assignment statement assigns a value to a
variable
8
Elements of programs:
Assignment statements
One of the most important kinds of statement in Python.
e.g.:

x=5
x
5
x=x+1
x
6
Basic form:

<variable> = <expr>
9
Elements of programs: Names

We name:




Modules
Functions
Variables
Examples of valid names:





10
X
y
happy
dazed_and_Confused
Dazed_and_Confused2
Elements of programs: Names

BUT you
can’t use
Python
keywords
(reserved
words) as
names.
These are:
False
None
11
True
and
as
assert
break
class
continue
def
del
elif
else
except
finally
for
from
global
if
import
in
is
lambda
nonlocal
not
or
pass
raise
return
try
while
with
yield
Checkpoint
height = 1.69
weight = 71.5
weight/(height*height)
From this Python code, give an example of:
 a variable
 an assignment statement
 a literal
12
Comments

And text on a line after the ‘#” symbol will be ignored by
the Python interpreter:
# algorithm to calculate BMI
height = 1.69
weight = 71.5
weight/(height*height) #calculates BMI

It is essential to include comments to explain your code
to others (and your future self!)
13
Elements of programs:
Output statements


The print function will display text to the screen
e.g.
>>> print("Hello")
>>> Hello

e.g.
# algorithm to calculate BMI
height = 1.69
weight = 71.5
BMI = weight/(height*height) #calculates BMI
print("Body mass index = ",BMI)
14
Checkpoint
# file BobBill.py
Bob="Bob"
Bill="Bill"
Bob=Bill
Bill=Bill*3
print(Bob,Bill)
From this code, give an example of:
 a variable
 a literal
 an expression
 an assignment statement
15
Checkpoint: What is the output of this
code?
# file BobBill.py
Bob="Bob"
Bill="Bill"
Bob=Bill
Bill=Bill*3
print(Bob,Bill)
16
Elements of programs:
More about print


print is a built in function with a precise set of rules for
its syntax and semantics
e.g. two forms:
print(<expr>,<expr>,…,<expr>)
print()

By default, print puts a single blank space between the
displayed values
17
More about “print()” function
To print a series of values separated by spaces:
print("The values are", x, y, z)

To suppress or change the line ending, use the
end=ending keyword argument. e.g.:
print("The values are", x, y, z, end=‘’)

To change the separator character between items, use the
sep=sepchr keyword argument. e.g.
print("The values are", x, y, z,sep=’*’)

18
Escape sequences
Escape sequences are special characters that represent
non-printing characters
 tabs, newlines e.g:
\a - bell (beep)
\b – backspace
\n – newline
\t – tab
\’ – single quote
\” – double quote
\v - vertical tab
19
Checkpoint: What is the exact output
of this code?
x=20
y=30
z=40
print(x)
print(y,'\n',z)
20
Checkpoint: What is the exact output
of this code?
x=20
y=30
z=40
print("The values are", x, y, z,
end='!!!',sep='!***')
21
Elements of programs:
Input statements


The purpose of an input statement is to get some
information from the user and store it into a variable.
In Python, input is accomplished using an assignment
statement combined with a special expression called
input. This template shows the standard form:
<variable> = input(<prompt>)
Here, prompt is usually some text asking the user for input
e.g.
weather = input(“What is the weather like today?”)
22
Elements of programs:
Input statements

the input statement treats whatever the user types as
an expression to be evaluated. e.g.
n = input("Please enter a number: ")
personA = input(“What is your name?”)
23
Checkpoint: What is the exact output
of this code?
name = input("What is your name? ")
print("Hellooooo", name*3, end='!!!',sep='…')
24
Elements of programs:
Input statements and numbers
the input expression is evaluated as a string (text)
 this must be converted into a number if you are going to
do math
text (strings) and numbers are handled differently by the
computer – more about this later!
eval() is a Python function that converts a string into a
number



25
eval(“20”) -> 20
Elements of programs:
Input statements and numbers
Useful example using eval…
# algorithm to calculate BMI, using input
height = input("Type in your height: ")
weight = input("Type in your weight: ")
height=eval(height) #change a string into a
number
weight=eval(weight) #change a string into a
number
BMI = weight/(height*height) #calculates BMI
print("Body mass index = ",BMI)
26
Saving programs to file

If you type them in directly, programs definition
are lost when you quit the shell

So, we usually type programs into a separate file,
called a module, or script
#file: greet3.py
person = “Bob”
threeTimes = person*3
print("Hello", threeTimes)
print("Oops.... ”)
27
Where to use comments



Brief description, author, date at top of function.
Brief description of purpose of each method (if
more than one).
Short explanation of non-obvious parts of code
within methods.
#My very first program
#Author: Michelle Kuttel
#date 21/2/2012
28
Simultaneous assignment

Can assign several values at once:
personA, personB, personC =“Tom”, “Dick”, “Harry”
x,y = 10,20
sum, diff = x+y, x-y
x,y = y,x
29
Checkpoint: What is the output of this
code?
x,y = 10,20
x,y = y,x
print(x,y)
30
Python first function
def hello():
print(“Hello”)
print(“I love CSC1015F”)
Defines a new function called hello
 Indentations show that the lines below hello
belong to the function
 Invoked like this:
hello()

31
Python second function
def hello2():
name = input("What is your name? ")
print("Hellooooo", name*3,
end='!!!',sep='…')
32
Parameters

Functions can have changeable parameters (or
arguments) that are placed within parenthesis. E.g.
def greet(person):
print(“hello”, person)
print(“How are you?”)
n = input(”What is your name?”)
greet(n)
33
Checkpoint
def greet(person):
print(“hello”, person)
print(“How are you?”)
n = input(”What is your
name?”)
greet(n)
example of:






From this code, give an
34
a variable
a literal
an expression
an assignment statement
a parameter
a function
Checkpoint: What is the exact output
of this code?
# function checkpoint OneTwoThree.py
def A(word1, word2, word3):
print(word3,word2,word1,sep='...',end='STOP')
A("green","orange","red")
35
Checkpoint: What is the exact output
of this code?
# function checkpoint OneTwoThree.py
def A(word1, word2, word3):
print(word3,word2,word1,sep='...',end='STOP')
print(“Testing…”)
x,y,z="green","orange","red"
A(x,y,z)
A(z*2,y*2,x*2)
36
Example program:
Miles-to-kilometres converter

You’re visiting the USA and distances are all quoted in
miles

I mile = 1.61 km

Write a program to do this conversion

Algorithm conforms to a standard pattern:


37
Input, Process, Output (IPO)
Ask user for input in miles, convert to kilometers, output result
by displaying it on the screen
Algorithms and Pseudocode


Pseudocode is just precise English that describes what a
program does
Communicate the algorithm without all the details e.g.
38
Algorithms and Pseudocode


Pseudocode is just precise English that describes what a
program does
Communicates the algorithm without all the details e.g.
Input the distance in miles (call it miles)
Calculate kilometres as miles x 1.61
Output kilometres
The next step is to convert this into a Python program
39
Miles.py
#miles.py
# A program to convert miles to kilometres
# by: Michelle Kuttel
def main():
miles = eval(input("What is the distance in miles? "))
kilometres = miles* 1.61
print("The distance in kilometres is",kilometres,"km.")
main()
40
Breakdown of Miles.py
#miles.py
# A program to convert miles to kilometres
# by: Michelle Kuttel
def main():
miles = eval(input("What is the distance in miles? "))
kilometres = miles* 1.61
print("The distance in kilometres is",kilometres,"km.")
main()

Defines a function called main (which has a special
meaning)
41
Breakdown of Miles.py
#miles.py
# A program to convert miles to kilometres
# by: Michelle Kuttel
def main():
miles = eval(input("What is the distance in
miles? "))
kilometres = miles* 1.61
print("The distance in kilometres is",kilometres,"km.")
main()
42
Breakdown of Miles.py
miles = eval(input("What is the distance in miles? "))

eval() is a Python function that converts a string into a
number

eval(“20”) -> 20

for now, think of a string as a word or sentence (more on
strings later)

the input statement treats whatever the user types as an
expression to be evaluated
43
Breakdown of Miles.py
#miles.py
# A program to convert miles to kilometres
# by: Michelle Kuttel
def main():
miles = eval(input("What is the distance in miles? "))
kilometres = miles* 1.61
print("The distance in kilometres is",kilometres,"km.")
main()

An expression which assigns a value to the variable
kilometres using the multiplication operator
44
Breakdown of Miles.py
#miles.py
# A program to convert miles to kilometres
# by: Michelle Kuttel
def main():
miles = eval(input("What is the distance in miles? "))
kilometres = miles* 1.61
print("The distance in kilometres
is",kilometres,"km.")

main()

An output statement
45
Breakdown of Miles.py
#miles.py
# A program to convert miles to kilometres
# by: Michelle Kuttel
def main():
miles = eval(input("What is the distance in miles? "))
kilometres = miles* 1.61
print("The distance in kilometres is",kilometres,"km.")
main()

Calls the main method automatically when
this module is run
46
More Python statements in future
lectures…
We also also have statements to:
47

Perform selections

Iterate (loop)

This work is licensed under a Creative Commons
Attribution-ShareAlike 2.5 South Africa License.
48
Download