cs 111: program design i€¦ · cs 111: program design i lecture 8: functions (cont.), if, midterm...
TRANSCRIPT
![Page 1: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/1.jpg)
CS 111: Program Design ILecture 8: Functions (cont.), if, Midterm 1
Robert H. Sloan & Richard WarnerUniversity of Illinois at ChicagoSeptember 19, 2019
![Page 2: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/2.jpg)
This Class
n More on functions, if elsen Any fast Lab 4 questionsn Discuss midterm topicsn Go over practice examples
n Answer any questions
![Page 3: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/3.jpg)
FUNCTIONS CONCLUDED (AT LEAST FOR NOW)
![Page 4: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/4.jpg)
Formal vs. actual parameters
def triple(x):return 3 * x
In [1]: n = 17In [2]: triple(n)Out[2]: 51In [3]: 4 + triple(20)Out[3]: 64
formal parameter(which happens tobe x in this example)
actual parameter
![Page 5: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/5.jpg)
What will print after this code?
def add_three(x):x = x + 3return x
>>> x = 5>>> n = add_three(x)>>> print(x)
A. 3B. 5C. 8D. This will cause an
error
![Page 6: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/6.jpg)
What will print after this code?
def add_three(x0):x0 = x0 + 3return x0
>>> x = 5>>> n = add_three(x)>>> print(x)
A. 3B. 5C. 8D. This will cause an
error
![Page 7: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/7.jpg)
Parameter of function is local to function
n Ultimately because of how things are stored in memory
n Name x in parameter is distinct from any x after end of function running
n More generally, formal parameters and and variables assigned to inside a function are local variables to that function, and they exist only when function is running
![Page 8: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/8.jpg)
How do I know which functions exist? Python documentation
![Page 9: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/9.jpg)
What should I do to make z the smaller of integers x and y?
x = 10y = 3
A. z = max(x,y)B. z = min(x,y)C. z = memoryview(x)D. z = memoryview(y)
![Page 10: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/10.jpg)
Coming attraction: Additional built-in functions from modules
n Useful for certain kinds of things, e.g., math, internet, making graphs, available in modulesthat must be imported before can be used
n Will discuss some later as needed
![Page 11: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/11.jpg)
functions for strings
n Strings examples of "built-in class" and String class comes with some built-in functions (and class functions also called methods). (A little more much later)
n Same as other built-in functions except calling syntax is .fn_nameq st = "60 votes for cloture"q st.upper() à "60 VOTES FOR CLOTURE"q st.find("V") à -1q st.find("v") à 3
![Page 12: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/12.jpg)
Some Notes on Programming Style
n Remember: Code needs to be understood by both computers and people
n Should try to make code as easy to read as possible
n Pro tip: This will make it easier for our TAs and I to give you partial credit on assignments, exams, etc
![Page 13: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/13.jpg)
Good Python Programming Style
n Meaningful variable & function namesq Generally starting with lower-case letterq Python style: Use underscore not camel case for
2-word names: two_word (not twoWord)n Blank line between functionsn Use of docstring to briefly describe input-
output behavior of functionn And, of course, be very careful with
indentation
![Page 14: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/14.jpg)
Why functions instead of e.g., cut & paste same coden Code length (repeating same thing)n Bugs: If there's bug or error, replicated in
multiple placesn If we want to change something, need to
change it in every copy
![Page 15: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/15.jpg)
Analogy
n Imagine you are writing cake cookbook with 17 recipes that use buttercream frosting
n Do you put the buttercream instructions in each of the 17 recipes?
![Page 16: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/16.jpg)
Even if a function used only once
n Helps modularize code and make it easier for humans to read and understand
![Page 17: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/17.jpg)
functions as aid to problem solving
n Problem solving strategy: q Describe how to solve your problem assuming
whenever you like that you have a function to do some of the workn Figure out what input-output behavior it needsn Then write those functionsn This is called functional decompositionn Tend to use it on slightly larger problems than we have
worked on so far; will revisit
![Page 18: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/18.jpg)
Testing. . . .
n Early and oftenn Each functionn The Called before the callersn Edge cases
![Page 19: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/19.jpg)
Recall: Sequential coding elements
n Generally Python statements run one at a time, in order we write them in
n Assignment statementsn Function calls
n But if, for, (and while) change execution order
![Page 20: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/20.jpg)
if else conditionals
if <condition>:<body1>
else:<body2>
n If the condition is True, then run <body1>; otherwise, run <body2>
![Page 21: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/21.jpg)
What will this print
x = "Roberts"if len(x) < 3:
print("Hi!")else:
print("Bye!")
A. NothingB. "Hi!"C. "Bye!"D. "Hi!" and "Bye!"
![Page 22: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/22.jpg)
What will be the value of z after this code runs?def foo(x):
if x < 3:return 1
else:return 2
z=foo(-1)
A. 1B. 2C. 3D. -1E. This will cause an
error
![Page 23: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/23.jpg)
Will function foo ever return 3?
def foo(x):if x < 3:
return 1else:
return 2return 3
A. Yes B. No
![Page 24: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/24.jpg)
Will function foo ever return 3?
def foo(x):if x < 3:
return 1else:
return 2return 3
A. Yes B. No
![Page 25: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/25.jpg)
Will function foo ever return 3?
def foo(x):if x < 3:
return 1else:
print(2)return 3
A. Yes B. No
![Page 26: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/26.jpg)
MIDTERM REVIEW
![Page 27: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/27.jpg)
Recall: Learning programming…
1) Expect it to be different!
2) Don�t feel you need to memorize it
3) Immersion == Experimentation
![Page 28: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/28.jpg)
The Secret of Happiness is…(in programming)
n Don’t memorize!n Look at examples of similar problemsn Experimentn Syntax that looks weird now will become
second nature soon
![Page 29: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/29.jpg)
Bring UIC ID to Midterm Tuesday!
![Page 30: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/30.jpg)
Midterm I: Topics Covered
n Objects & Variablesn Mathematical operatorsn Statementsn Typesn Strings
q []s (i.e., indexing), slicing, .find()n Functionsn Relational, Boolean, and membership operatorsn if-elsen simple for over a string's characters
![Page 31: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/31.jpg)
Midterm I: Topics, continued
n What is an algorithm, computer, RAM, etc.n Encryptionn Encryption keys and government access
![Page 32: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/32.jpg)
Any general questions?
![Page 33: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/33.jpg)
What type of variable would you use to store the length of a plaintext?
A. int
B. float
C. list
D. boolean
E. string
![Page 34: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/34.jpg)
What type of variable would you use to store the length of a plaintext?
A. int
B. float
C. list
D. boolean
E. string
![Page 35: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/35.jpg)
What type would you use for a variable to store the fraction of Chicago wards with more than 20 homicides per 100,000 population? A. int
B. float
C. list
D. boolean
E. string
![Page 36: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/36.jpg)
What type would you use for a variable to store the fraction of Chicago wards with more than 20 homicides per 100,000 population? A. int
B. float
C. list
D. boolean
E. string
![Page 37: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/37.jpg)
What type would you use for a variable to store whether a plaintext contains any space characters?A. int
B. float
C. list
D. boolean
E. string
![Page 38: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/38.jpg)
What type would you use for a variable to store whether a plaintext contains any space characters?A. int
B. float
C. list
D. boolean
E. string
![Page 39: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/39.jpg)
What type would you use for a variable for that plaintext?
A. int
B. float
C. list
D. boolean
E. string
![Page 40: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/40.jpg)
What type would you use for a variable for that plaintext?
A. int
B. float
C. list
D. boolean
E. string
![Page 41: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/41.jpg)
What type is expression on the last line?
x = 13z = 2.5z * x
A. int
B. float
C. list
D. boolean
E. string
![Page 42: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/42.jpg)
Suppose you have the following function defined:
def square(x): return x**2
Write a function that takes integers x and y and prints the larger of x2 and y2. Don't forget the docstring!
![Page 43: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/43.jpg)
key ="LEMON"
n Write an expression that returns the first character in key
n Write an expression that returns the last character in key
n Write an expression that returns every other position in this key, starting with the first
n Write an expression that returns key reversed
![Page 44: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/44.jpg)
key ="LEMON"
n Write an expression that returns the first character in key key[0]
n Write an expression that returns the last character in key key[-1] or key[len(key) - 1]
n Write an expression that returns every other position in this key, starting with the firstkey[::2]
n Write an expression that returns key reversedkey[::-1]
![Page 45: CS 111: Program Design I€¦ · CS 111: Program Design I Lecture 8: Functions (cont.), if, Midterm 1 Robert H. Sloan & Richard Warner University of Illinois at Chicago September](https://reader033.vdocument.in/reader033/viewer/2022060312/5f0b29737e708231d42f2736/html5/thumbnails/45.jpg)
The 4th and 5th Amendment
(a)The 4th and 5th Amendment protect against government searches.
(b)The 4th Amendment protects against self-incrimination.
(c)The 5th Amendment protects against government searches.
(d)The 4th Amendment protects against government searches and the 5th Amendment protects against self-incrimination.