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')
def my_fun(i1,i2): # can take two arguments
return i1+i2
print(my_fun(2,3,4)) # error
TypeError: my_fun() takes 2 positional arguments but 3 were given
We can pass any number of arguments to the function by using *
def my_fun(*args): # can receive any number of arguments
sum1=0
for i in args:
sum1=sum1+i
return sum1
print(my_fun(2,3,4)) # 9 , passing 3 arguments
print(my_fun(2,2,3,4)) # 11, passing 4 arguments
** to pass key and value pairs
We can pass both key and its value to the function by using **.
def my_fun(**kwargs): # key value pair as input
print(kwargs['c']) # plus2net
for key, value in kwargs.items():
print ("%s : %s" %(key, value))
my_fun(a=' Welcome',b=' to',c=' plus2net')
Output
plus2net
a : Welcome
b : to
c : plus2net
We can use a single fixed parameter followed by any number of key-value pairs.
def greet_person(name, **attributes):
greeting = f"Hello, {name}!"
for attr, value in attributes.items():
greeting += f" Your {attr} is {value}."
return greeting
print(greet_person("Alex", age=30, city="New Delhi", hobby="painting"))
Output
Hello, Alex! Your age is 30. Your city is New Delhi. Your hobby is painting.
Here is our function my_add() kept inside the file all_fun.py all_fun.py
def my_add(x,y):
return("Sum :", x+y)
Our main file main.py uses this function. ( both files are kept in same directory )
main.py
from all_fun import my_add
a,b=4,5
print(my_add(a,b))
Output is here
('Sum :', 9)
Recursive function
Python recursive functions to call same function within the function code to get factorial of input
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
print(" Final factorial :",fact(5))
Output is here
The number is : 5
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
Part factorial = 120
Final factorial : 120
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
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.
Download the above full source code from Github or run the code in your Google colab platform.