Functions: Difference between revisions

From Computer Science Wiki
Line 21: Line 21:


<code>return</code>: gives the value to the program. Callers of the function then have the actual data and data type (bool, int, etc...) return 3 would have the value 3 put in place of where the function was called.<ref>http://stackoverflow.com/questions/3881434/difference-between-returns-and-printing-in-python</ref>
<code>return</code>: gives the value to the program. Callers of the function then have the actual data and data type (bool, int, etc...) return 3 would have the value 3 put in place of where the function was called.<ref>http://stackoverflow.com/questions/3881434/difference-between-returns-and-printing-in-python</ref>
In general, you should <code>return</code> a value from a function and not directly print from a function.


==Example of a function==
==Example of a function==

Revision as of 10:52, 23 June 2019

A function f takes an input x, and returns a single output f(x). One metaphor describes the function as a "machine" or "black box" that for each input returns a corresponding output.[1]

Introduction[edit]

In programming, a named section of a program that performs a specific task is called a function. In this sense, a function is a type of procedure or routine. Some programming languages make a distinction between a function, which returns a value, and a procedure, which performs some operation but does not return a value.

Most programming languages come with a prewritten set of functions that are kept in a library. You can also write your own functions to perform specialized tasks. [2]

We use function so we don't need to repeat ourselves. Please watch the video below and remember the content.


Content gratefully used with permission : [3]

The difference between returning and printing[edit]

Students often print from within a function. Please understand the difference between printing a result from a function and returning a result from a function.

print: gives the value to the user as an output string. print(3) would give a string '3' to the screen for the user to view. The program would lose the value.

return: gives the value to the program. Callers of the function then have the actual data and data type (bool, int, etc...) return 3 would have the value 3 put in place of where the function was called.[4]

In general, you should return a value from a function and not directly print from a function.

Example of a function[edit]

#
# this is a simple function
#

def likesHamburgers(name):
    if name == "Alisher":
        likes_hamburgers ="yes"
    else:
        likes_hamburgers="no"
    return likes_hamburgers
    
print likesHamburgers("Bill")
print likesHamburgers("Alisher")    
print likesHamburgers("foo")

Another classic example of a function[edit]

#
# this is a simple function
#

def calculator(number1, number2):
    answer = number1 + number2
    return answer
    
print calculator(12,43)
print calculator(91,673)
print calculator(1,3)
print calculator(87,1098)

Some decent videos about functions in Python[edit]

In the video to the left, the programmer uses a different IDE than we do (we use canopy). The programmer also uses tests in this video, which we haven't covered yet. The video on the right is pretty good example of what a function is, and also discusses variable scope


Average level difficulty[edit]

1. Write a function that accepts two arguments. A name (as string) and a nice greeting (as a string). Your function should return a full sentence.

for example print my_function("joe","happy birthday")
returns -> Joe, I'd like to wish you a very happy birthday!


3. Write a function that takes a string and returns the letters shifted 2 spaces to the right.

 for example: encode("abcdefg")
 would return: cdefghi


4. Write a function that takes an integer and RETURNS a word which corresponds to that integer.

 for example description_of_monster(1)
 would return: Fluffy
def description_of_monster(value):
    if value == 1:
        return "fluffy"
    elif value == 2:
        return "spikey"
    elif value == 3:
        return "slimy"
    else:
         return "scary"
         
                     
print("One day, as I was walking along, I saw a " + description_of_monster(2) + " monster!") 
print("As you peek around the dark corner, you see a  " + description_of_monster(6) + " monster!") 
print("I don't really like " + description_of_monster(1) + " monsters.")

References[edit]