2. writing simple programs rocky k. c. chang september 10, 2015 (adapted from john zelle’s slides)
TRANSCRIPT
![Page 1: 2. WRITING SIMPLE PROGRAMS Rocky K. C. Chang September 10, 2015 (Adapted from John Zelle’s slides)](https://reader036.vdocument.in/reader036/viewer/2022062500/5697c0201a28abf838cd2718/html5/thumbnails/1.jpg)
2. WRITING SIMPLE PROGRAMS
Rocky K. C. Chang
September 10, 2015
(Adapted from John Zelle’s slides)
![Page 2: 2. WRITING SIMPLE PROGRAMS Rocky K. C. Chang September 10, 2015 (Adapted from John Zelle’s slides)](https://reader036.vdocument.in/reader036/viewer/2022062500/5697c0201a28abf838cd2718/html5/thumbnails/2.jpg)
Objectives• To be able to understand and write Python statements to
output information to the screen, assign values to variables, get numeric information entered from the keyboard, and perform a counted loop
![Page 3: 2. WRITING SIMPLE PROGRAMS Rocky K. C. Chang September 10, 2015 (Adapted from John Zelle’s slides)](https://reader036.vdocument.in/reader036/viewer/2022062500/5697c0201a28abf838cd2718/html5/thumbnails/3.jpg)
The Software Development Process
Source: http://en.wikibooks.org/wiki/Introduction_to_Software_Engineering/Process/Life_Cycle#mediaviewer/File:SDLC_-_Software_Development_Life_Cycle.jpg
![Page 4: 2. WRITING SIMPLE PROGRAMS Rocky K. C. Chang September 10, 2015 (Adapted from John Zelle’s slides)](https://reader036.vdocument.in/reader036/viewer/2022062500/5697c0201a28abf838cd2718/html5/thumbnails/4.jpg)
Example Program: Temperature Converter
• Analysis – the temperature is given in Celsius, user wants it expressed in degrees Fahrenheit.
• Specification• Input – temperature in Celsius• Output – temperature in Fahrenheit• Output = 9/5(input) + 32
![Page 5: 2. WRITING SIMPLE PROGRAMS Rocky K. C. Chang September 10, 2015 (Adapted from John Zelle’s slides)](https://reader036.vdocument.in/reader036/viewer/2022062500/5697c0201a28abf838cd2718/html5/thumbnails/5.jpg)
Example Program: Temperature Converter
• Design• Input, Process, Output (IPO)• Prompt the user for input (Celsius temperature)• Process it to convert it to Fahrenheit using F = 9/5(C) + 32• Output the result by displaying it on the screen
![Page 6: 2. WRITING SIMPLE PROGRAMS Rocky K. C. Chang September 10, 2015 (Adapted from John Zelle’s slides)](https://reader036.vdocument.in/reader036/viewer/2022062500/5697c0201a28abf838cd2718/html5/thumbnails/6.jpg)
Example Program: Temperature Converter
• Before we start coding, let’s write a rough draft of the program in pseudocode.
• Pseudocode is precise English that describes what a program does, step by step.
• Using pseudocode, we can concentrate on the algorithm rather than the programming language.
![Page 7: 2. WRITING SIMPLE PROGRAMS Rocky K. C. Chang September 10, 2015 (Adapted from John Zelle’s slides)](https://reader036.vdocument.in/reader036/viewer/2022062500/5697c0201a28abf838cd2718/html5/thumbnails/7.jpg)
Example Program: Temperature Converter
• Pseudocode:• Input the temperature in degrees Celsius (call it celsius)• Calculate fahrenheit as (9/5)*celsius+32• Output fahrenheit
• Now we need to convert this to Python!
![Page 8: 2. WRITING SIMPLE PROGRAMS Rocky K. C. Chang September 10, 2015 (Adapted from John Zelle’s slides)](https://reader036.vdocument.in/reader036/viewer/2022062500/5697c0201a28abf838cd2718/html5/thumbnails/8.jpg)
Example Program: Temperature Converter
#convert.py# A program to convert Celsius temps to Fahrenheit# by: Susan Computewell
def main(): celsius = eval(input("What is the Celsius temperature? "))
fahrenheit = 9/5 * celsius + 32 print("The temperature is", fahrenheit, "degrees Fahrenheit.")
main()
![Page 9: 2. WRITING SIMPLE PROGRAMS Rocky K. C. Chang September 10, 2015 (Adapted from John Zelle’s slides)](https://reader036.vdocument.in/reader036/viewer/2022062500/5697c0201a28abf838cd2718/html5/thumbnails/9.jpg)
Example Program: Temperature Converter
• Once we write a program, we should test it!
>>> What is the Celsius temperature? 0The temperature is 32.0 degrees Fahrenheit.>>> main()What is the Celsius temperature? 100The temperature is 212.0 degrees Fahrenheit.>>> main()What is the Celsius temperature? -40The temperature is -40.0 degrees Fahrenheit.>>>
![Page 10: 2. WRITING SIMPLE PROGRAMS Rocky K. C. Chang September 10, 2015 (Adapted from John Zelle’s slides)](https://reader036.vdocument.in/reader036/viewer/2022062500/5697c0201a28abf838cd2718/html5/thumbnails/10.jpg)
EXERCISE 2.1Modify convert.py so that it will take the degree in Fahrenheit and change it back to Celsius.
A sample output:>>> What is the Celsius temperature? 100The temperature is 212.0 degrees Fahrenheit.The temperature is 100.0 degrees Celsius.>>>
![Page 11: 2. WRITING SIMPLE PROGRAMS Rocky K. C. Chang September 10, 2015 (Adapted from John Zelle’s slides)](https://reader036.vdocument.in/reader036/viewer/2022062500/5697c0201a28abf838cd2718/html5/thumbnails/11.jpg)
Naming the identifiers• Names are given to variables (celsius, fahrenheit),
modules (main, convert), etc.• These names are called identifiers.• Every identifier must begin with a letter or underscore
(“_”), followed by any sequence of letters, digits, or underscores.• Note that “—”, “.” and many other symbols are not allowed.
• Identifiers are case sensitive.• Identifiers cannot be Python’s keywords.
![Page 12: 2. WRITING SIMPLE PROGRAMS Rocky K. C. Chang September 10, 2015 (Adapted from John Zelle’s slides)](https://reader036.vdocument.in/reader036/viewer/2022062500/5697c0201a28abf838cd2718/html5/thumbnails/12.jpg)
Python’s keywords
![Page 13: 2. WRITING SIMPLE PROGRAMS Rocky K. C. Chang September 10, 2015 (Adapted from John Zelle’s slides)](https://reader036.vdocument.in/reader036/viewer/2022062500/5697c0201a28abf838cd2718/html5/thumbnails/13.jpg)
EXERCISE 2.2
Say, if you suspect that a word might be a Python keyword, how would you find out without looking up the table of the keywords?
![Page 14: 2. WRITING SIMPLE PROGRAMS Rocky K. C. Chang September 10, 2015 (Adapted from John Zelle’s slides)](https://reader036.vdocument.in/reader036/viewer/2022062500/5697c0201a28abf838cd2718/html5/thumbnails/14.jpg)
Expressions• The fragments of code that produce or calculate new data
values are called expressions.• A (numeric/string) literal, which is the simplest kind of
expression, is used to represent a specific value, e.g. 10 or “rocky”.• A simple identifier can also be an expression.
• Simpler expressions can be combined using operators +, -, *, /, and **.• The normal mathematical precedence applies.• Only round parentheses can be used to change the precedence,
e.g., ((x1 – x2) / 2*n) + (spam / k**3).
• Try “i” + “love” + “you”.
![Page 15: 2. WRITING SIMPLE PROGRAMS Rocky K. C. Chang September 10, 2015 (Adapted from John Zelle’s slides)](https://reader036.vdocument.in/reader036/viewer/2022062500/5697c0201a28abf838cd2718/html5/thumbnails/15.jpg)
EXERCISE 2.3
If you assign 5 to x and then type x, the shell will return 5 to you. What if you type y but without assigning any value to it before?
![Page 16: 2. WRITING SIMPLE PROGRAMS Rocky K. C. Chang September 10, 2015 (Adapted from John Zelle’s slides)](https://reader036.vdocument.in/reader036/viewer/2022062500/5697c0201a28abf838cd2718/html5/thumbnails/16.jpg)
Output statements• Recall from your previous print exercises:
• Each print statement will print their content on a different line.• The items are separated by a single space
• Formally, • print(*objects, sep=' ', end='\n', file=sys.stdout)
• To make it simple,• print(<expr>, <expr>, …, <expr>, sep=' ', end='\n', file=sys.stdout)
• sep: how are the items separated?• end: how is the printed content ended?• file: where is the content printed?
![Page 17: 2. WRITING SIMPLE PROGRAMS Rocky K. C. Chang September 10, 2015 (Adapted from John Zelle’s slides)](https://reader036.vdocument.in/reader036/viewer/2022062500/5697c0201a28abf838cd2718/html5/thumbnails/17.jpg)
EXERCISE 2.4
o By setting sep appropriately, print out 1*2*3*4.o Use a print statement to print 1 and 2, and a
second print statement to print 3 and 4. By setting end appropriately, 1, 2, 3, and 4 are printed on the same line.
![Page 18: 2. WRITING SIMPLE PROGRAMS Rocky K. C. Chang September 10, 2015 (Adapted from John Zelle’s slides)](https://reader036.vdocument.in/reader036/viewer/2022062500/5697c0201a28abf838cd2718/html5/thumbnails/18.jpg)
Assignment statements• Simple assignment: <variable> = <expr>
variable is an identifier, expr is an expression• The expression on the RHS is evaluated to produce a
value which is then associated with the variable named on the LHS.
![Page 19: 2. WRITING SIMPLE PROGRAMS Rocky K. C. Chang September 10, 2015 (Adapted from John Zelle’s slides)](https://reader036.vdocument.in/reader036/viewer/2022062500/5697c0201a28abf838cd2718/html5/thumbnails/19.jpg)
Behind the scene• Python does not recycle these memory locations.• Assigning a variable is more like putting a “sticky note” on
a value and saying, “this is x”.• The memory for the old value will be “released”
automatically (i.e., garbage collection).
![Page 20: 2. WRITING SIMPLE PROGRAMS Rocky K. C. Chang September 10, 2015 (Adapted from John Zelle’s slides)](https://reader036.vdocument.in/reader036/viewer/2022062500/5697c0201a28abf838cd2718/html5/thumbnails/20.jpg)
Assigning Input• The purpose of an input statement is to get input from the
user and store it into a variable.• <variable> = input(<prompt>)• E.g., x = eval(input(“Enter a temperature in Celsius: ”))• Print the prompt.• Wait for the user to enter a value and press <enter>.• The expression that was entered is evaluated and assigned to the
input variable.
• Two kinds of input: character string or number
![Page 21: 2. WRITING SIMPLE PROGRAMS Rocky K. C. Chang September 10, 2015 (Adapted from John Zelle’s slides)](https://reader036.vdocument.in/reader036/viewer/2022062500/5697c0201a28abf838cd2718/html5/thumbnails/21.jpg)
EXERCISE 2.5
o Prompt user for a number and then print it out using just input(<prompt>).
o Prompt user for a number and then print it out using eval(input(<prompt>)).
o What is the difference between the two?o Remove eval() from convert.py and does it still
run?
![Page 22: 2. WRITING SIMPLE PROGRAMS Rocky K. C. Chang September 10, 2015 (Adapted from John Zelle’s slides)](https://reader036.vdocument.in/reader036/viewer/2022062500/5697c0201a28abf838cd2718/html5/thumbnails/22.jpg)
EXERCISE 2.6
Ask users to input two numbers and print out the two numbers in a reversed order.
![Page 23: 2. WRITING SIMPLE PROGRAMS Rocky K. C. Chang September 10, 2015 (Adapted from John Zelle’s slides)](https://reader036.vdocument.in/reader036/viewer/2022062500/5697c0201a28abf838cd2718/html5/thumbnails/23.jpg)
Simultaneous Assignment• Several values can be calculated at the same time.• <var>, <var>, … = <expr>, <expr>, …• Evaluate the expressions in the RHS and assign them to
the variables on the LHS.• E.g., sum, diff = x+y, x-y• E.g., x, y = eval(input("Input the first and second numbers separated by a comma: "))
![Page 24: 2. WRITING SIMPLE PROGRAMS Rocky K. C. Chang September 10, 2015 (Adapted from John Zelle’s slides)](https://reader036.vdocument.in/reader036/viewer/2022062500/5697c0201a28abf838cd2718/html5/thumbnails/24.jpg)
EXERCISE 2.7
Simplify your codes in exercise 2.6 using simultaneous assignment statements.
![Page 25: 2. WRITING SIMPLE PROGRAMS Rocky K. C. Chang September 10, 2015 (Adapted from John Zelle’s slides)](https://reader036.vdocument.in/reader036/viewer/2022062500/5697c0201a28abf838cd2718/html5/thumbnails/25.jpg)
Definite Loops• A definite loop executes a definite number of times, i.e., at
the time Python starts the loop it knows exactly how many iterations to do.
• for <var> in <sequence>:<body>
• The beginning and end of the body are indicated by indentation.
• The variable after for is called the loop index. It takes on each successive value in sequence.
• E.g., for i in range(10):
x = 3.9 * x * (1 - x) print(x)
![Page 26: 2. WRITING SIMPLE PROGRAMS Rocky K. C. Chang September 10, 2015 (Adapted from John Zelle’s slides)](https://reader036.vdocument.in/reader036/viewer/2022062500/5697c0201a28abf838cd2718/html5/thumbnails/26.jpg)
EXERCISE 2.8
o Replace range(10) by [0,1,2,3,4,5,6,7,8,9] and rerun chaos.py. Any difference?
o Replace [0,1,2,3,4,5,6,7,8,9] with [0,1,3,5,7,9] and rerun chaos.py. Any difference?
![Page 27: 2. WRITING SIMPLE PROGRAMS Rocky K. C. Chang September 10, 2015 (Adapted from John Zelle’s slides)](https://reader036.vdocument.in/reader036/viewer/2022062500/5697c0201a28abf838cd2718/html5/thumbnails/27.jpg)
Flow chart for the definite loop
![Page 28: 2. WRITING SIMPLE PROGRAMS Rocky K. C. Chang September 10, 2015 (Adapted from John Zelle’s slides)](https://reader036.vdocument.in/reader036/viewer/2022062500/5697c0201a28abf838cd2718/html5/thumbnails/28.jpg)
END