Functions in Python

User defined functions ( UDF)
Defining a function
def my_fun():
  print("Welcome")
my_fun()  # Calling the function
We must call the function to use it. In above cade there is no return value and there is no parameter passed as input to the function.

Passing parameter to function

We will pass one integer to the function and display the sum by adding 10 to it.
def my_fun(n): # function starts here 
  print(n+10)
# function ends here   
my_fun(5)
Output
15

  • Video Tutorial on Function


Note that we have maintained left indentation within the function.
We will pass more than one parameter to the function
def my_fun(n1,n2):
  return n1+n2
print(my_fun(12,15)) # 27
Using string
def my_welcome(abc):
  print("Welcome ", abc)
my_welcome("Alex") # Welcome Alex

Returning data from function

def my_sum(a, b):
   sum=a+b
   return sum

print("Sum = ",my_sum(5,8))
Output
Sum = 13

Passing list to function

We will pass a list to function and return the sum of all the elements
def my_sum(my_list):
   sum=0
   for i in my_list:
    sum=sum+i
   return sum

my_list=[1,5,7,12]
print("Sum = ",my_sum(my_list))
Output is here
Sum = 25

Returning a list from a function

def my_details(my_marks):
    total=sum(my_marks)
    avg=total/len(my_marks)
    a=[total,avg,len(my_marks)]
    return a
    
my_marks=[4,3,2,11]
marks_final=my_details(my_marks)
print("Details = {}".format(marks_final))
Output is here
Details = [20, 5.0, 4]

Passing string parameter to function

def my_string(str1,str2):
    str3=str1 + str2
    return str3
str_final=my_string('Welcome to',' Python')
print("Here is your final string : ",str_final)
Output is here
Here is your final string :  Welcome to Python

Default Arguments of function

We will not use any parameter so python will use its default value.
def my_details(my_language='Python'):
    print("Welcome to {}".format(my_language))
    
my_details()       # No parameter is passed 
my_details('PHP')  # One string is passed 
Output is here
Welcome to Python
Welcome to PHP
In above code we have called the function without any parameter in first line. In second line we have called the function with a parameter.

If any argument does not have a default value then we must supply that while calling the function. We can have any number of arguments with default value, but once we have default value then all arguments to the right of it must have default value.

This code will generate error. non-default argument follows default argument
def my_details(my_language='Python',my_database):
    print("Welcome to {} with {}".format(my_language,my_database))

my_details('PHP','MySQL')
We can change this code
def my_details(my_database,my_language='Python'):
    print("Welcome to {} with {}".format(my_language,my_database))

my_details('PHP','MySQL')
Output is here
Welcome to MySQL with PHP

Function returning more than 1 parameters

def my_fun(n1,n2):
  return n1+n2,n1-n2
  
result1,result2=my_fun(12,15)  

print("Sum = ", result1)
print("Subtraction  = ", result2)
Output
Sum =  27
Subtraction  =  -3
Using string
def my_welcome(abc1,abc2):
  print("Welcome ", abc1 ,'to ', abc2)
my_welcome("Alex", "Python")
Output
Welcome  Alex to  Python

Recursive function


  • Video Tutorial on Function ( Recursive )


Function which calls itself during its execution.
To prevent recursive function to execute infinitely we need to keep conditional statement to come out of recursive.

Factorial of a number is multiplication of all number less than the input number.
n! = n*(n-1)*(n-2)*(n-3) …. .* 1
Let us understand this by using one example.
Factorial of a number
def fact(n):
    
    print("The number is : ",n)
    if n==1:
        return 1
    else:
        result = n*fact(n-1)
        print("Part factorial = ", result)
        return result
fact(4)
Output is here
The number is :  4
The number is :  3
The number is :  2
The number is :  1
Part factorial =  2
Part factorial =  6
Part factorial =  24
There is a limit to using recursive functions calls. We can read the System setting and change this value to a new value by using getrecursionlimit() and setrecursionlimit() methods.
import sys
print(sys.getrecursionlimit()) # output 1000
sys.setrecursionlimit(2000)  # new limit to 2000
print(sys.getrecursionlimit()) # output 2000
More on Recursion

Greatest Common Divisor of two input numbers

a=int(input("Enter first number:"))
b=int(input("Enter second number:"))

def gcd(a,b):
    if(b==0):
        return a
    else:
        return gcd(b,a%b)

GCD=gcd(a,b)
print("GCD is: ",GCD)

Sum of digits of an input number

n=int(input("Enter a positive number: "))
def sum_of_digits(n):
  my_sum=0
  while(n>0):
    dig=n%10
    my_sum+=dig
    n=n//10
  return my_sum
print(sum_of_digits(n))

Solution 2
a=input("Enter a Number :")
sum=0
for i in range(0,len(a)):
    sum=sum+int(a[i])
print("sum of digits in number=%d"%sum)
There are some functions which are defined as part of the core Python. These functions are always available for use. We call them built in functions in Python. Questions on Functions Global local and nonlocal variables in Python


plus2net.com



Post your comments , suggestion , error , requirements etc here





Python Video Tutorials
Python SQLite Video Tutorials
Python MySQL Video Tutorials
Python Tkinter Video Tutorials
We use cookies to improve your browsing experience. . Learn more
HTML MySQL PHP JavaScript ASP Photoshop Articles FORUM . Contact us
©2000-2021 plus2net.com All rights reserved worldwide Privacy Policy Disclaimer