Day 2 – Lesson 8 Fruitful Functions Python Mini-Course University of Oklahoma Department of Psychology 1 Python Mini-Course: Day 2 - Lesson 8 05/02/09 Lesson objectives 1. Understand how to return values from functions in Python 2. Create “fruitful” functions 2 Python Mini-Course: Day 2 - Lesson 8 05/02/09 The power function revisited def power(base, exponent): val = base for x in range(1,exponent): val = val * base return val power(3,4) 3 Python Mini-Course: Day 2 - Lesson 8 05/02/09 The return statement Syntax return [expression] Exists the enclosing function and returns the value of expression as a result of the call to the function If expression is omitted, returns None 4 Python Mini-Course: Day 2 - Lesson 8 05/02/09 The return statement You can only return one value That value can be any Python data type (including both built-in and custom data structures) You can also use the return statement to exit a function early 5 Python Mini-Course: Day 2 - Lesson 8 05/02/09 Exercise Create a function that computes the distance between any two points when given their coordinates (in 2-D space) 6 Python Mini-Course: Day 2 - Lesson 8 05/02/09 Distance function def distance(x1, y1, x2, y2): """Return the distance between points (x1, y1) and (x2, y2) as a float""" return 0.0 7 Python Mini-Course: Day 2 - Lesson 8 05/02/09 Distance function def distance(x1, y1, x2, y2): """Return the distance between points (x1, y1) and (x2, y2) as a float""" dx = x2 - x1 dy = y2 - y1 print 'dx is ', dx print 'dy is ', dy return 0.0 8 Python Mini-Course: Day 2 - Lesson 8 05/02/09 Distance function def distance(x1, y1, x2, y2): """Return the distance between points (x1, y1) and (x2, y2) as a float""" dx, dy = x2 - x1, y2 - y1 result = math.sqrt(dx**2 + dy**2) return result 9 Python Mini-Course: Day 2 - Lesson 8 05/02/09 Distance function def distance(x1, y1, x2, y2): """Return the distance between points (x1, y1) and (x2, y2) as a float""" result = \ math.sqrt((x2-x1)**2 + (y2-y1)**2) return result 10 Python Mini-Course: Day 2 - Lesson 8 05/02/09 Distance function def distance(x1, y1, x2, y2): """Return the distance between points (x1, y1) and (x2, y2) as a float""" return math.sqrt((x2-x1)**2 + (y2-y1)**2) 11 Python Mini-Course: Day 2 - Lesson 8 05/02/09 Creating Boolean functions Functions that return a Boolean value (True or False) can be used in conditional statements (i.e. if…else…) 12 Python Mini-Course: Day 2 - Lesson 8 05/02/09 is_divisible function def is_divisible(x, y): if x % y == 0: return True else: return False is_divisible(16,4) is_divisible(16,3) 13 Python Mini-Course: Day 2 - Lesson 8 05/02/09 is_divisible function def is_divisible(x, y): return x % y == 0 is_divisible(16,4) is_divisible(16,3) x, y = 16, 5 if is_divisible(x, y): print x,'is divisible by',y 14 Python Mini-Course: Day 2 - Lesson 8 05/02/09 Next session Iteration methods: Recursion Loops and conditional execution The for loop The while loop Handling strings and text 15 Python Mini-Course: Day 2 - Lesson 8 05/02/09 Suggested exercises Exercise 5.1 – Fermat's Last Theorem Exercise 6.6 – Palindromes Exercise 6.7 – is_power function Turtle exercises from Chaps 4 & 5 16 Python Mini-Course: Day 2 - Lesson 8 05/02/09