Functions in Programming

 
Functions
CMSC 201
 
Motivation
 
Using the tools we have so far, we can easily write
code to find the largest number in a list, right?
 
Motivation
 
Using the tools we have so far, we can easily write
code to find the largest number in a list, right?
 
myList = [1, 2, 3, 4]
 
max = myList[0]
 
for item in myList:
 
if item > max:
  
max = item
 
print(max)
 
 
Motivation
 
What if we want to do this multiple times in our
program?  We don’t want to rewrite the code multiple
times.
 
What variables do we need access to in order to find
the maximum of a list?
 
What piece of information will we have when we’re
done?
 
Functions
 
We can create a 
function 
to find the maximum
whenever we want to!
 
Think of a function as a machine that you stick some
input into, and your results pop out.
 
 
 
 
 
 
So for our example, our listMax function would have
to have the list go in, and would spit the maximum
back out.
myList
 
Functio
n
code
maximum
 
Vocab
 
The inputs for a function are called 
arguments.  
A
function can have as many arguments as it needs to
fulfill its purpose.
For example, a function that counts the number of
times some number x appears in a list would need
the number x, as well as the list.
 
 
The result of a function is called the 
return value.
In the example above, the return value would be the
number of times x appears.
 
You’ve Called Functions
Before!
 
 
print(“Hello”)
 
The thing you want to print.
 
Print doesn’t return anything!  It has
a side effect, but doesn’t give
anything back.
 
You’ve Called Functions
Before!
 
 
width = int(input(“Please enter the box width: “))
 
“Please enter the box width: “ is the
argument, the prompt to the user.
 
The return value of the int function is
stored in width.
 
You’ve Called Functions
Before!
 
 
someVar = range(0, 40)
 
This function requires two arguments, the
start and end of the range you want.
 
The return value of this function is
stored in someVar (in this case, a list
of the numbers between 0 and 40)
 
Functions
 
So in general, when we want to call a function, we use
the following format:
 
resultValue = functionName(argument1,
argument2)
 
Writing a Function
 
That’s great, but where do functions come from?
 
Making a Function
 
Say we have the following code to find the maximum
of a list:
 
myList = [1, 2, 3, 4]
 
max = myList[0]
 
for item in myList:
 
if item > max:
  
max = item
 
And we want to be able to use it over and over.
 
Making a Function
 
 
def max(myList):
 
max = myList[0]
 
 
for item in myList:
  
if item > max:
   
max = item
 
return max
 
def is the
keyword for
defining a
function in
python
 
Max is the name of the
function
 
myList is the list we are finding
the max of.
 
‘return’ is how the function knows
what to send back to the main
program.
 
The Life Cycle of a Function
 
 
 
someList = [1, 2, 3, 4]
 
maxNum = max(someList)
 
 
def max(myList):
 
max = myList[0]
 
 
for item in myList:
  
if item > max:
   
max = item
 
return max
 
someList gets renamed my
list and this code is run
 
Whatever was in max gets
stored in maxNum
 
Calling Functions Multiple
Times
 
 
otherList = [8, 9, 10]
someList = [1, 2, 3, 4]
 
maxNum = max(someList)
 
 
 
 
 
 
 
otherNum = max(otherList)
 
 
def max(myList):
 
maxNum = myList[0]
 
 
for item in myList:
  
if item > maxNum :
   
maxNum = item
 
return maxNum
 
someList gets renamed
myList and this code is run
 
Whatever was in max gets
stored in maxNum
 
 
def max(myList):
 
maxNum = myList[0]
 
 
for item in myList:
  
if item > maxNum
:
   
maxNum = item
 
return maxNum
 
Next time,
otherList gets
copied
 
A different max gets
copied into otherNum
 
Note
 
In the last example, when someList gets put into the
function, it gets renamed as whatever argument that
function expects.  So someList becomes myList.
 
Also, a function only knows about the arguments it’s
given!  Variables from the original program don’t
carry over!
 
Scope
 
 
 
someList = [1, 2, 3, 4]
b = 6
 
maxNum = max(someList)
 
 
def someFunction(myList):
 
max = myList[0]
 
 
for item in myList:
  
if item > max:
   
max = item
 
b = 10
 
return max
 
Even though the
original program
has a variable
named b, this
function doesn’t
know about it!
 
Scope
 
This concept is called 
scope.
 
The variables given to a function as arguments and
the variables defined inside the function constitute
the scope of the function.
 
Exercise
 
Write a function called average that returns the
average of a list.  Then show how you would call this
function.
 
Exercise
 
Write a function called average that returns the
average of a list.  Then show how you would call this
function.
 
def average(myList):
 
sum = 0
 
for item in myList:
  
sum = sum + item
 
return sum/len(myList)
 
 
result = average(myList)
 
Functions With Multiple
Parameters
 
In order to make a function with multiple parameters,
you can simply say:
 
def someFunction(parameter1, parameter2):
 
You would call someFunction as follows:
 
someFunction(10, 20)
 
Parameter1 would have the value of 10, and
parameter2 would have the value of 20.
 
The parameters always go in order.
 
The Life Cycle of a Function
 
 
a = 10
b = 15
 
result = sum(a, b)
 
 
def sum(num1, num2):
 
return num1 + num2
 
a and b are copied into num1
and num2 respectively.
 
num1+num2 gets returned
into result.
 
Exercise
 
 
Write a function that takes two lists as arguments
and finds the sum of both lists.
 
For example:
 
listA = [1, 2, 3]
listB = [3, 4, 5]
 
result = sumTwoLists (listA, listB)
 
print(result)
 
Prints: 18
 
Exercise
 
 
Write a function that takes two lists as arguments
and finds the sum of both lists.
 
def sumTwoLists(list1, list2):
 
sum = 0
 
for item in list1:
  
sum = sum + item
 
for item in list2:
  
sum = sum + item
 
return sum
 
Exercise
 
 
Note: Functions can call each other!
 
def sumTwoLists(list1, list2):
 
return sum(list1) + sum(list2)
 
def sum(list1):
 
sum = 0
 
for item in list1:
  
sum = sum + item
 
return sum
 
 
Exercise
 
 
Note: Functions can call each other!
 
myList = [1, 2, 3]
 
otherList = [4, 5, 6]
 
result =sumTwoLists(myList, otherList)
 
 
 
 
 
def sum(list1):
 
sum = 0
 
for item in list1:
  
sum = sum + item
 
return sum
 
def sumTwoLists(list1, list2):
 
return sum(list1) + sum(list2)
 
 
Even More Arguments
 
 
Three arguments work the exact same way:
 
someFunction(arg1, arg2, arg3)
 
 
 
def someFunction(arg1, arg2, arg3):
 
#code goes here
 
 
 
 
 
Return Statements
 
 
A function can have multiple return statements!
 
Imagine a function that just takes two numbers
and returns the larger.
 
def max(number1, number2):
 
if number1 > number2:
  
return number1
 
else:
  
return number2
 
Either return statement ends the program.
 
Return Statements
 
 
 
def max(number1, number2):
 
if number1 > number2:
  
return number1
 
else:
  
return number2
 
a = 5
b = 10
result = max(a, b)
 
Only one of these values
gets returned!
 
Return Statements
 
A return statement immediately stops the function.
 
This code doesn’t make sense!  Line-3 will never be
reached, because the return statement ends the
function!
 
def someFunction(arg1):
 
line-1
 
line-2
 
return someVariable
 
line-3
 
 
 
Exercise
 
Write a function called factorial that finds the
factorial of a single argument.
 
 
Exercise
 
Write a function called factorial that finds the
factorial of a single argument.
 
def factorial(num):
 
result = 1
 
for count in range(1, num+1):
  
result = count * result
 
return num
 
Notes
 
The name of the variables in the functions have
nothing to do with anything outside of the function.
Feel free to name arguments whatever you like, as
long as it makes sense.
Never name a variable and a function the same
thing.  This 
wi
ll confuse python terribly.
 
The Main Function
 
From now on, we will be putting our code in a special
function known as main.  Main is always called first
whenever a program is run.
 
def main():
 
# All of you code should be here
 
def someOtherFunctions():
 
# More code
 
main()
 
When To Create Functions
 
We use functions to organize our code.  From now on
in this class, we will use functions whenever possible.
 
You should break your code up into functions when:
 
You have a clear, self contained process that can be
isolated from the code around it.
 
You have an operation that may need to be
performed multiple times.
 
It will simplify the readability of your code.
Slide Note
Embed
Share

In programming, functions are like machines that take input and produce output. They help in organizing code, making it reusable, and reducing redundancy. Functions have inputs called arguments and return values. By creating functions, you can easily perform tasks multiple times without rewriting the same code. This guide explores the concept of functions, their usage, and how they enhance code efficiency.

  • Functions
  • Programming
  • Reusability
  • Efficiency
  • Organization

Uploaded on Sep 27, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. Functions CMSC 201

  2. Motivation Using the tools we have so far, we can easily write code to find the largest number in a list, right?

  3. Motivation Using the tools we have so far, we can easily write code to find the largest number in a list, right? myList = [1, 2, 3, 4] max = myList[0] for item in myList: if item > max: max = item print(max)

  4. Motivation What if we want to do this multiple times in our program? We don t want to rewrite the code multiple times. What variables do we need access to in order to find the maximum of a list? What piece of information will we have when we re done?

  5. Functions We can create a function to find the maximum whenever we want to! Think of a function as a machine that you stick some input into, and your results pop out. Functio n code maximum myList So for our example, our listMax function would have to have the list go in, and would spit the maximum back out.

  6. Vocab The inputs for a function are called arguments. A function can have as many arguments as it needs to fulfill its purpose. For example, a function that counts the number of times some number x appears in a list would need the number x, as well as the list. The result of a function is called the return value. In the example above, the return value would be the number of times x appears.

  7. Youve Called Functions Before! print( Hello ) The thing you want to print. Print doesn t return anything! It has a side effect, but doesn t give anything back.

  8. Youve Called Functions Before! width = int(input( Please enter the box width: )) Please enter the box width: is the argument, the prompt to the user. The return value of the int function is stored in width.

  9. Youve Called Functions Before! someVar = range(0, 40) This function requires two arguments, the start and end of the range you want. The return value of this function is stored in someVar (in this case, a list of the numbers between 0 and 40)

  10. Functions So in general, when we want to call a function, we use the following format: resultValue = functionName(argument1, argument2)

  11. Writing a Function That s great, but where do functions come from?

  12. Making a Function Say we have the following code to find the maximum of a list: myList = [1, 2, 3, 4] max = myList[0] for item in myList: if item > max: max = item And we want to be able to use it over and over.

  13. Making a Function myList is the list we are finding the max of. Max is the name of the function def max(myList): max = myList[0] def is the keyword for defining a function in python for item in myList: if item > max: max = item return max return is how the function knows what to send back to the main program.

  14. The Life Cycle of a Function someList gets renamed my list and this code is run someList = [1, 2, 3, 4] maxNum = max(someList) def max(myList): max = myList[0] for item in myList: if item > max: max = item return max Whatever was in max gets stored in maxNum

  15. Calling Functions Multiple Times otherList = [8, 9, 10] someList = [1, 2, 3, 4] someList gets renamed myList and this code is run maxNum = max(someList) def max(myList): maxNum = myList[0] Whatever was in max gets stored in maxNum for item in myList: if item > maxNum : maxNum = item return maxNum Next time, otherList gets copied otherNum = max(otherList) def max(myList): maxNum = myList[0] A different max gets copied into otherNum : for item in myList: if item > maxNum return maxNum maxNum = item

  16. Note In the last example, when someList gets put into the function, it gets renamed as whatever argument that function expects. So someList becomes myList. Also, a function only knows about the arguments it s given! Variables from the original program don t carry over!

  17. Scope someList = [1, 2, 3, 4] b = 6 maxNum = max(someList) def someFunction(myList): max = myList[0] for item in myList: if item > max: max = item b = 10 return max Even though the original program has a variable named b, this function doesn t know about it!

  18. Scope This concept is called scope. The variables given to a function as arguments and the variables defined inside the function constitute the scope of the function.

  19. Exercise Write a function called average that returns the average of a list. Then show how you would call this function.

  20. Exercise Write a function called average that returns the average of a list. Then show how you would call this function. def average(myList): sum = 0 for item in myList: sum = sum + item return sum/len(myList) result = average(myList)

  21. Functions With Multiple Parameters In order to make a function with multiple parameters, you can simply say: def someFunction(parameter1, parameter2): You would call someFunction as follows: someFunction(10, 20) Parameter1 would have the value of 10, and parameter2 would have the value of 20. The parameters always go in order.

  22. The Life Cycle of a Function a = 10 b = 15 result = sum(a, b) a and b are copied into num1 and num2 respectively. def sum(num1, num2): return num1 + num2 num1+num2 gets returned into result.

  23. Exercise Write a function that takes two lists as arguments and finds the sum of both lists. For example: listA = [1, 2, 3] listB = [3, 4, 5] result = sumTwoLists (listA, listB) print(result) Prints: 18

  24. Exercise Write a function that takes two lists as arguments and finds the sum of both lists. def sumTwoLists(list1, list2): sum = 0 for item in list1: sum = sum + item for item in list2: sum = sum + item return sum

  25. Exercise Note: Functions can call each other! def sumTwoLists(list1, list2): return sum(list1) + sum(list2) def sum(list1): sum = 0 for item in list1: sum = sum + item return sum

  26. Exercise Note: Functions can call each other! myList = [1, 2, 3] def sumTwoLists(list1, list2): return sum(list1) + sum(list2) otherList = [4, 5, 6] result =sumTwoLists(myList, otherList) def sum(list1): sum = 0 for item in list1: sum = sum + item return sum

  27. Even More Arguments Three arguments work the exact same way: someFunction(arg1, arg2, arg3) def someFunction(arg1, arg2, arg3): #code goes here

  28. Return Statements A function can have multiple return statements! Imagine a function that just takes two numbers and returns the larger. def max(number1, number2): if number1 > number2: return number1 else: return number2 Either return statement ends the program.

  29. Return Statements a = 5 b = 10 result = max(a, b) def max(number1, number2): if number1 > number2: return number1 else: return number2 Only one of these values gets returned!

  30. Return Statements A return statement immediately stops the function. This code doesn t make sense! Line-3 will never be reached, because the return statement ends the function! def someFunction(arg1): line-1 line-2 return someVariable line-3

  31. Exercise Write a function called factorial that finds the factorial of a single argument.

  32. Exercise Write a function called factorial that finds the factorial of a single argument. def factorial(num): result = 1 for count in range(1, num+1): result = count * result return num

  33. Notes The name of the variables in the functions have nothing to do with anything outside of the function. Feel free to name arguments whatever you like, as long as it makes sense. Never name a variable and a function the same thing. This will confuse python terribly.

  34. The Main Function From now on, we will be putting our code in a special function known as main. Main is always called first whenever a program is run. def main(): # All of you code should be here def someOtherFunctions(): # More code main()

  35. When To Create Functions We use functions to organize our code. From now on in this class, we will use functions whenever possible. You should break your code up into functions when: You have a clear, self contained process that can be isolated from the code around it. You have an operation that may need to be performed multiple times. It will simplify the readability of your code.

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#