CSE 160 Section 3
Functions!
Logistics
Lecture Review: If/ Else Statements
If/ Else Structure
is_raining = True
is_sprinkling = False
if is_raining:
print(“Bring an umbrella”)
elif is_sprinkling:
print(“Bring a raincoat”)
else:
print(“Bring sunglasses”)
Output:
Bring an umbrella
Boolean Zen
num = 0
def is_num_2(num):
if num == 2:
return True
else:
return False
num = 0
def is_num_2(num):
return num == 2
Without boolean zen:
With boolean zen:
Lecture Review: Nested Loops
Nested Loops
Example:
for i in [0, 1, 2, 3]:
for j in [0, 1, 2]:
print(i)
Nested Loops
for i in [0, 1, 2, 3]:
for j in [0, 1, 2]:
print(i)
Nested Loops
Example:
for i in [0, 1, 2, 3]:
for j in [0, 1, 2]:
print(i)
Lecture Review: Functions
Functions: an overview
Why do we use functions?
Function Syntax
# Writing a function
def func_name(parameter1,...):
function body
return value
# To call that function:
func_name(parameter1,...)
def | word needed to define a function |
func_name | a name you give the function |
parameter1, | a list of parameters you pass in a function. (Optional) |
function body | the code inside the function |
return | tells the function to return value back to the caller. (Optional) |
Functions run only when called
def winter():
x = “Happy Winter!”
print(x)
Output:
def fall():
x = “Happy Fall!”
print(x)
fall()
Output:
Happy Fall!
Functions run only when called
def winter():
x = “Happy Winter!”
print(x)
Output:
def fall():
x = “Happy Fall!”
print(x)
fall()
Output:
Happy Fall!
Include parentheses in function call
Parameters
def print_twice(x):
print(x)
print(x)
print_twice(“Hi!”)
Output:
Hi!
Hi!
Return Value
This function does have a return value, what will this print?
def two_times_seven():
x = 2 * 7
return x
print(two_times_seven())
Output:
14
Return Value
This function does have a return value, what will this print?
def two_times_seven():
x = 2 * 7
return x
print(two_times_seven())
Output:
14
You must have a return statement if you want your function call to have access to x in two_times_seven()! Otherwise, it will return None
Return vs Print in Functions
Function with a return
Function with a print statement
Output: ?
Can you see the difference?
def add(a, b):
return a + b
def add_print(a, b):
print(a + b)
Function with a Return
Function with a return
def add(a, b):
return a + b
print(add(1,2))
Output:
3
Function with a Print
Function with a print statement
print(add_print(1,2))
Output:
3
None
def add_print(a, b):
print(a + b)
Docstrings
def abs(x):
‘’’Takes in a number (x), and returns its absolute value’’’
if x < 0:
return x * -1
else:
return x
Mod Operator Overview
Mod
Modulo operator, denoted as %, is a mathematical operation that calculates the remainder when one number is divided by another.
Mod
Mod
What is the output of the following code?
for i in range(5):
print(i % 3)
Mod
What is the output of the following code?
for i in range(5):
print(i % 3)
Answer:
0
1
2
0
1
Section Handout Problems
Problem 1
Write a function avg_age(ages) that calculates and returns the average of a list of ages. You are not allowed to use Python’s built in sum() function. Your function should take the list ages as a parameter and return the average. For example, given ages = [20, 21, 22], avg_age(ages) should return 21.
Problem 2
Given a list of students’ names (student_lst), write a function max_height(student_lst) that returns the maximum height in inches. Assume a function get_height(student) is given to you, and will return the height (in inches) of any student when given a student name.
For example: get_height(“Nicholas”) will return 75.
a) Implement the function max_height(student_lst)
b) What is the return type of max_height(student_lst)?
c) Suppose you printed the max height instead of returning it. What would be the return
type of max_height(student_lst)
Problem 5
Write a function called among_us(crewmates, imposter), where given a list of crewmates and the names of an imposter, returns True if the name of that imposter is in the list of crewmates. Do not use the Python keyword “in” unless it is part of the for-loop. For example, among_us([“cyan”, “yellow”, “pink”], “pink”) returns True.
Additional Problems
Problem 3
Write a function count_letters(word_list, target) that counts the number of times a target letter appears in a list of strings and returns it. For example, given word_list = [“this”, “is”, “a”, “list”] and target = “s”, count_letters(word_list, target) should return 3.
Problem 4
Write a function called budget_saver(cost, budget) that takes the price of a product and a budget. The function should return “too expensive” if the price is more than the budget, “great deal” if the price is less than the budget, and “okay” if the cost and budget are equal.
For example, budget_saver(250, 100) returns “too expensive”.