Python Function Elements Passing

To pass a group of elements like numbers or strings, we can accept them into a list and then pass the list to the function where the required processing can be done. In below Program, we are accepting a group of integers from the keyboard in a single line using the following statement:

lst = [int(x) for x in input().split()]

The input() function takes a group of integers as a string. This string is split into pieces where a space is found as a space is the default for split() method. These pieces are then converted into integers by the int() function and returned into the list 'lst'. We pass this list of integers to the calculate() function as:

x, y = calculate(lst)

A function to display a group of strings.

def display(lst): 
 for i in lst: 
     print(i) 
lst = [x for x in input('Enter strings separated by comma:').split(',')] 
display(lst)

A function to accept a group of numbers and find their total average.

def calculate(lst):
   n = len(lst) 
   sum=0 
   for i in lst: 
      sum+=i
   avg = sum/n 
   return sum, avg 
lst = [int(x) for x in input('Enter numbers separated by space:').split()] 
x, y = calculate(lst) 
print('Total:', x) 
print('Average:', y)

Recursive Functions

A function that calls itself is known as 'recursive function'. For example, we can write the factorial of 3 as:

factorial(3) = 3 * factorial(2)

Here, factorial(2) = 2 * factorial(1)

And, factorial(1) = 1 * factorial(0)

factorial(3) = 3 * factorial(2)

= 3 * 2 * factorial(1)

= 3 * 2 * 1 * factorial(0)

= 3 * 2 * 1 * 1 = 6

From the above statements, we can write the formula to calculate factorial of any number 'n' as:

factorial(n) = n * factorial(n-1)

A Python program to calculate factorial using recursion.

def factorial(n): 
   if n==0 or n==1: 
      return 1 
   else: 
      return n*factorial(n-1) 
n=int(input("Enter a Number: "))
res=factorial(n)
print("Factorial of %d is %d " %(n,res))

A Python program to calculate factorial values using recursion.

def factorial(n): 
   if n==0: 
      result=1 
   else: 
      result=n*factorial(n-1) 
   return result 
for i in range(1, 11): 
print('Factorial of {} is {}'.format(i, factorial(i)))