Day 1 – Lesson 4 Beginning Functions Python Mini-Course University of Oklahoma Department of Psychology 1 Python Mini-Course: Day 1 - Lesson 4 4/5/09 Lesson objectives 1. State the purpose of functions 2. 3. 4. 5. 2 and modules in Python Use built-in functions Import modules and use imported functions Create custom void functions Discuss the concept of variable scope Python Mini-Course: Day 1 - Lesson 4 4/5/09 Functions Function A named sequence of statements that performs a computation or action Functions are called by name Most functions accept inputs (arguments) Some functions return results (return value) 3 Python Mini-Course: Day 1 - Lesson 4 4/5/09 Functions We’ve already seen some functions: type() Type casting functions int(), float(), str() 4 Python Mini-Course: Day 1 - Lesson 4 4/5/09 Modules Module A file that contains a collection of related functions Python has hundreds of standard modules These are known as the Python Standard Library (http://docs.python.org/library/) You can also create and use add-in modules 5 Python Mini-Course: Day 1 - Lesson 4 4/5/09 Using import To use a module, you first have to import it into your namespace To import the entire module import module_name To import specific functions from module_name import function_name 6 Python Mini-Course: Day 1 - Lesson 4 4/5/09 The math module The standard math module includes: Number-theoretic and representation functions Power and logarithmic functions Trigonometric functions Hyperbolic functions Angular conversion Constants 7 Python Mini-Course: Day 1 - Lesson 4 4/5/09 Using the math module import math degrees = 45 radians = degrees / 360.0 \ * 2 * math.pi print math.sin(radians) x = math.sin(degrees / 360.0 \ * 2 * math.pi) 8 Python Mini-Course: Day 1 - Lesson 4 4/5/09 Dot notation Why did we use math.sin() instead of just sin()? Try this: print sin(radians) Dot notation allows the Python interpreter to organize and divide the namespace 9 Python Mini-Course: Day 1 - Lesson 4 4/5/09 More on Importing from math import * print sin(2) Be careful when using the import * command. It can easily lead to namespace conflicts. 10 Python Mini-Course: Day 1 - Lesson 4 4/5/09 Creating your own functions You have to define the function Example: def print_lyrics(): print "I'm a lumberjack, and I'm okay." print "I sleep all night and I work all day." 11 Python Mini-Course: Day 1 - Lesson 4 4/5/09 Composing functions def repeat_lyrics(): print_lyrics() print_lyrics() repeat_lyrics() 12 Python Mini-Course: Day 1 - Lesson 4 4/5/09 Functions with arguments def print_twice(in_text): print in_text print in_text print_twice(‘Spam’) print_twice(‘Spam’*4) 13 Python Mini-Course: Day 1 - Lesson 4 4/5/09 Variable scope Scope The enclosing context where values and expressions are associated (partition in namespace) Variables inside functions are local 14 Python Mini-Course: Day 1 - Lesson 4 4/5/09 Variable scope def cat_string(part1, part2): cat = part1 + part2 print cat cat_string(‘This ‘, ‘works’) print cat 15 Python Mini-Course: Day 1 - Lesson 4 4/5/09 Documentation You can document functions in the code immediately after the function header Example: func_doc.py 16 Python Mini-Course: Day 1 - Lesson 4 4/5/09 Before next time Practice creating and using your own functions (try the exercises on pp 26-28) Practice using the math module (see http://docs.python.org/library/math.html for documentation) 17 Python Mini-Course: Day 1 - Lesson 4 4/5/09