Tutorialspoint.dev

Functions in Python

A function is a set of statements that take inputs, do some specific computation and produces output. The idea is to put some commonly or repeatedly done task together and make a function, so that instead of writing the same code again and again for different inputs, we can call the function.
Python provides built-in functions like print(), etc. but we can also create your own functions. These functions are called user-defined functions.

# A simple Python function to check
# whether x is even or odd
def evenOdd( x ):
    if (x % 2 == 0):
        print "even"
    else:
        print "odd"
  
# Driver code
evenOdd(2)
evenOdd(3)

Output:

even
odd

Pass by Reference or pass by value?
One important thing to note is, in Python every variable name is a reference. When we pass a variable to a function, a new reference to the object is created. Parameter passing in Python is same as reference passing in Java.

# Here x is a new reference to same list lst
def myFun(x):
   x[0] = 20
  
# Driver Code (Note that lst is modified
# after function call.
lst = [10, 11, 12, 13, 14, 15
myFun(lst);
print(lst) 

Output:

[20, 11, 12, 13, 14, 15]

When we pass a reference and change the received reference to something else, the connection between passed and received parameter is broken. For example, consider below program.

br>
def myFun(x):
  
   # After below line link of x with previous
   # object gets broken. A new object is assigned
   # to x.
   x = [20, 30, 40]
  
# Driver Code (Note that lst is not modified
# after function call.
lst = [10, 11, 12, 13, 14, 15
myFun(lst);
print(lst) 

Output:

[10, 11, 12, 13, 14, 15]

Another example to demonstrate that reference link is broken if we assign a new value (inside the function).

def myFun(x):
  
   # After below line link of x with previous
   # object gets broken. A new object is assigned
   # to x.
   x = 20
  
# Driver Code (Note that lst is not modified
# after function call.
x = 10 
myFun(x);
print(x) 

Output:

10

Exercise: Try to guess the output of following code.

def swap(x, y):
    temp = x;
    x = y;
    y = temp;
  
# Driver code
x = 2
y = 3
swap(x, y)
print(x)
print(y)

Output:

2
3

Default arguments:
A default argument is a parameter that assumes a default value if a value is not provided in the function call for that argument.The following example illustrates Default arguments.

# Python program to demonstrate
# default arguments
def myFun(x, y=50):
    print("x: ", x)
    print("y: ", y)
  
# Driver code (We call myFun() with only
# argument)
myFun(10)

Output:

('x: ', 10)
('y: ', 50)

Like C++ default arguments, any number of arguments in a function can have a default value. But once we have a default argument, all the arguments to its right must also have default values.

Keyword arguments:
The idea is to allow caller to specify argument name with values so that caller does not need to remember order of parameters.

# Python program to demonstrate Keyword Arguments
def student(firstname, lastname): 
     print(firstname, lastname) 
    
    
# Keyword arguments                  
student(firstname ='Geeks', lastname ='Practice')    
student(lastname ='Practice', firstname ='Geeks')  

Output:



('Geeks', 'Practice')
('Geeks', 'Practice')

Variable length arguments:
We can have both normal and keyword variable number of arguments. Please see this for details.

# Python program to illustrate  
# *args for variable number of arguments
def myFun(*argv): 
    for arg in argv: 
        print (arg)
    
myFun('Hello', 'Welcome', 'to', 'GeeksforGeeks'

Output:

Hello
Welcome
to
GeeksforGeeks
# Python program to illustrate  
# *kargs for variable number of keyword arguments
  
def myFun(**kwargs): 
    for key, value in kwargs.items():
        print ("%s == %s" %(key, value))
  
# Driver code
myFun(first ='Geeks', mid ='for', last='Geeks')    

Output:

last == Geeks
mid == for
first == Geeks

Anonymous functions: In Python, anonymous function means that a function is without a name. As we already know that def keyword is used to define the normal functions and the lambda keyword is used to create anonymous functions. Please see this for details.

# Python code to illustrate cube of a number  
# using labmda function 
    
cube = lambda x: x*x*
print(cube(7)) 

Output:

343

Quick Links :



This article is attributed to GeeksforGeeks.org

You Might Also Like

leave a comment

code

0 Comments

load comments

Subscribe to Our Newsletter