Download presentation
Presentation is loading. Please wait.
Published byAnne Woods Modified over 8 years ago
1
Functions Chapter 4 Python for Informatics: Exploring Information www.pythonlearn.com Slightly modified by Recep Kaya Göktaş on March 2015
2
Unless otherwise noted, the content of this course material is licensed under a Creative Commons Attribution 3.0 License. http://creativecommons.org/licenses/by/3.0/. Copyright 2010- Charles R. Severance
3
Stored (and reused) Steps Output: Hello Fun Zip Hello Fun Program: def thing(): print 'Hello’ print 'Fun’ thing() print 'Zip’ thing() def print 'Hello' print 'Hello' print 'Fun' thing() print “Zip” We call these reusable pieces of code “functions”. thing(): thing()
4
Python Functions There are two kinds of functions in Python. Built-in functions that are provided as part of Python - raw_input(), type(), float(), int()... Functions that we define ourselves and then use We treat the built-in function names as "new" reserved words (i.e. we avoid them as variable names)
5
Function Definition In Python a function is some reusable code that takes arguments(s) as input does some computation and then returns a result or results We define a function using the def reserved word We call/invoke the function by using the function name, parenthesis and arguments in an expression
6
>>> big = max('Hello world') >>> print big w >>> tiny = min('Hello world') >>> print tiny >>> big = max('Hello world') Argument 'w' Result Assignment
7
Max Function >>> big = max('Hello world') >>> print big w max()function “Hello world” (a string) ‘w’ (a string) A function is some stored code that we use. A function takes some input and produces an output. Guido wrote this code
8
Max Function >>> big = max('Hello world') >>> print big w def max(inp): blah blah for x in y: for x in y: blah blah “Hello world” (a string) ‘w’ (a string) A function is some stored code that we use. A function takes some input and produces an output. Guido wrote this code
9
Type Conversions When you put an integer and floating point in an expression the integer is implicitly converted to a float You can control this with the built in functions int() and float() >>> print float(99) / 100 0.99 >>> i = 42 >>> type(i) >>> f = float(i) >>> print f 42.0 >>> type(f) >>> print 1 + 2 * float(3) / 4 - 5 -2.5 >>>
10
String Conversions You can also use int() and float() to convert between strings and integers You will get an error if the string does not contain numeric characters >>> sval = '123' >>> type(sval) >>> print sval + 1 Traceback (most recent call last): File " ", line 1, in TypeError: cannot concatenate 'str' and 'int' >>> ival = int(sval) >>> type(ival) >>> print ival + 1 124 >>> nsv = 'hello bob' >>> niv = int(nsv) Traceback (most recent call last): File " ", line 1, in ValueError: invalid literal for int()
11
len function Another very common built-in function is the len function which tells us how many items are in its argument. If the argument to len is a string, it returns the number of characters in the string.
12
Random numbers The random module in phyton provides functions that generate pseudorandom numbers. The function random returns a random float between 0.0 and 1.0 (including 0.0 but not 1.0).
13
Random numbers
16
Math functions
17
Building our Own Functions We create a new function using the def keyword followed by optional parameters in parenthesis. We indent the body of the function This defines the function but does not execute the body of the function def print_lyrics(): print "I'm a lumberjack, and I'm okay.” print 'I sleep all night and I work all day.'
18
x = 5 print 'Hello' def print_lyrics(): print "I'm a lumberjack, and I'm okay.” print 'I sleep all night and I work all day.' print 'Yo' x = x + 2 print x Hello Yo 7 print "I'm a lumberjack, and I'm okay." print 'I sleep all night and I work all day.' print_lyrics():
19
Definitions and Uses Once we have defined a function, we can call (or invoke) it as many times as we like This is the store and reuse pattern
20
x = 5 print 'Hello' def print_lyrics(): print "I'm a lumberjack, and I'm okay.” print 'I sleep all night and I work all day.' print 'Yo' print_lyrics() x = x + 2 print x Hello Yo I'm a lumberjack, and I'm okay.I sleep all night and I work all day. 7
21
Arguments An argument is a value we pass into the function as its input when we call the function We use arguments so we can direct the function to do different kinds of work when we call it at different times We put the arguments in parenthesis after the name of the function big = max('Hello world') Argument
22
Parameters A parameter is a variable which we use in the function definition that is a “handle” that allows the code in the function to access the arguments for a particular function invocation. >>> def greet(lang):... if lang == 'es':... print 'Hola’... elif lang == 'fr':... print 'Bonjour’... else:... print 'Hello’... >>> greet('en') Hello >>> greet('es') Hola >>> greet('fr') Bonjour >>>
23
Return Values Often a function will take its arguments, do some computation and return a value to be used as the value of the function call in the calling expression. The return keyword is used for this. def greet(): return "Hello” print greet(), "Glenn” print greet(), "Sally" Hello Glenn Hello Sally
24
Return Value A “fruitful” function is one that produces a result (or return value) The return statement ends the function execution and “sends back” the result of the function >>> def greet(lang):... if lang == 'es':... return 'Hola’... elif lang == 'fr':... return 'Bonjour’... else:... return 'Hello’... >>> print greet('en'),'Glenn’ Hello Glenn >>> print greet('es'),'Sally’ Hola Sally >>> print greet('fr'),'Michael’ Bonjour Michael >>>
25
Return Values Sometimes it is useful to have multiple return statements, one in each branch of a conditional. But be careful not to write dead code!
26
Return Values What is wrong with this function?
27
Arguments, Parameters, and Results >>> big = max('Hello world') >>> print big w def max(inp): blah blah for x in y: for x in y: blah blah return ‘w’ return ‘w’ “Hello world” ‘w’‘w’ Argument Parameter Result
28
Multiple Parameters / Arguments We can define more than one parameter in the function definition We simply add more arguments when we call the function We match the number and order of arguments and parameters def addtwo(a, b): added = a + b return added x = addtwo(3, 5) print x
30
Exercise
31
Definitions and Uses
32
Parameters and Arguments
33
Void (non-fruitful) Functions When a function does not return a value, we call it a "void" function Functions that return values are "fruitful" functions Void functions are "not fruitful"
34
Math functions are fruitful functions.
35
A Void Function
36
Incremental Development Adding and testing a small amount of code at a time. 1. Start with a working program and make small incremental changes. At any point, if there is an error, you should have a good idea where it is. 2. Use temporary variables to hold intermediate values so you can display and check them. 3. Once the program is working, you might want to remove some of the scaffolding or consolidate multiple statements into compound expressions, but only if it does not make the program difficult to read.
37
Exercise
38
Composition You can call one function from within another. circle_area is a function that takes two points, the center of the circle and a point on the perimeter, and computes the area of the circle:
39
Boolean Functions Functions can return booleans.
40
Exercise
41
A function can call itself! Too difficult to follow the flow of execution here! Use the “leap of faith”: If you assume that the two recursive calls work correctly, then it is clear that you get the right result by adding them together.
42
Factorial factorial function that also checks the type of its argument: Exercise: Write this function with a try/except construct.
43
To function or not to function... Organize your code into “paragraphs” - capture a complete thought and “name it” Dont repeat yourself - make it work once and then reuse it If something gets too long or complex, break up logical chunks and put those chunks in functions Make a library of common stuff that you do over and over - perhaps share this with your friends...
44
Debugging If a function is not working, there are three possibilities to consider: There is something wrong with the arguments the function is getting. There is something wrong with the function. There is something wrong with the return value or the way it is being used.
45
Exercise Rewrite your pay computation with time-and-a- half for overtime and create a function called computepay which takes two parameters ( hours and rate). Enter Hours: 45 Enter Rate: 10 Pay: 475.0 475 = 40 * 10 + 5 * 15
46
Summary Functions Built-In Functions Type conversion (int, float) Math functions (sin, sqrt) Arguments Parameters
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.