**Table Of Contents**

In this session, we are discussing **UNIT-5: ITERATORS & RECURSION | Python Programming **important questions with solutions. Hope this session will help you in your upcoming python programming exams.

Dudes 🤔.. You want more useful details regarding this subject. Please keep in mind this as well.Important Questions For Python Programming:*Unit-01 *Unit-02 *Unit-03 *Unit-04 *Unit-05 *Short-Q/Ans *Question-Paper with solution 21-22

**Q1. Explain Tower of Hanoi problem in detail OR Explain iterator. Write a program to demonstrate the Tower of Hanoi using function.**

**Ans**.

**Iterator**:

- An iterator is an object that contains a countable number of values.
- An iterator is an object that can be iterated upon, meaning that we can traverse through all the values.
- Python iterator, implicitly implemented in constructs like for-loops, comprehensions, and python generators.
- Python lists, tuples, dictionary and sets are all examples of in-built iterators.
- These types are iterators because they implement following methods:
**__iter:**This method is called on initialization of an iterator. This should return an object that has a next() method.**next() (or_next_):**The iterator next method should return the next value for the iterable. When an iterator is used with a ‘for in’ loop, the for loop implicitly calls next() on the iterator object. This method should raise a StopIteration to signal the end of the iteration.**For example:**

**Tower of Hanoi problem :**

- Tower of Hanoi is a mathematical puzzle which consists of three rods and a number of disks of different sizes, which can slide onto any rod.
- The puzzle starts with the disks in a neat stack in ascending order of size on one rod, the smallest at the top, thus making a conical shape.
- The objective of the puzzle is to move the entire stack to another rod, obeying the following simple rules:
- Only one disk can be moved at a time.
- Each move consists of taking the upper disk from one of the stacks and placing it on top of another stack.
- A disk can only be moved if it is the uppermost disk on a stack.
- No disk may be placed on top of a smaller disk.
- 3 Dick

**Q2.Differentiate between recursion and iteration.** **OR** **Discuss and differentiate iterators and recursion. Write a program** **for recursive Fibonacci series.**

**Ans.**

Property | Recursion | Iteration |

Definition | Function calls itself | A set of instruction repeatedly executed. |

Application | For functions | For Loops |

Termination | Through base case, where there will be no function call | When the termination condition for the iterator ceases to be satisfied |

Usage | Used when code size need to be small and time complexity is not an issue | Used when time complexity needs to be balanced against an expanded code size |

Code size | Smaller code size | Larger code size |

Time complexity | Very high (generally exponential) time complexity | Relatively Lower time complexity (generally polynomial logarithmic) |

Stack | The stack is used to store the set of new local variables and parameters each time the function is called. | Does not use stack |

Overhead | Recursion possesses the overhead of repeated function calls | No overhead of repeated function call |

Speed | Slow in execution | Fast in execution |

**Q3.Define recursion. Also, give example.**

**Answer**

- In Python, recursion occurs when a function is defined by itself.
- When a function calls itself, directly or indirectly, then it is called a recursive function and this phenomenon is known as recursion.
- Recursion is the property how we write a function. A function which performs the same task can be written either in a recursive form or in an iterative form.
- Recursion is the process of repeating something self-similar way.
- For example:

**Q4. Discuss sorting and merging. Explain different types of sorting with example. Write a Python program for Sieve of Eratosthenes.]**

**Ans.**

**Sorting:**

- Sorting refers to arranging data in a particular order.
- Most common orders are in numerical or lexicographical order.
- The importance of sorting lies in the fact that data searching can be optimized to a very high level, if data is stored in a sorted manner.
- Sorting is also used to represent data in more readable formats.

**Merging:**

- Merging is defined as the process of creating a sorted list/array of data items from two other sorted array/list of data items.
- Merge list means to merge two sorted list into one list.

**Code for merging two lists and sort it :**

a=[ ]

c=[ ]

**Different types of sorting are:**

**Bubble sort:**It is a comparison-based algorithm in which each pair of adjacent elements is compared and the elements are swapped if they are not in order.**Merge sort:**- Merge sort is a divide and conquer algorithm. It divides input array in two halves, calls itself for the two halves and then merges the two sorted halves.
- The merge() function is used for merging two halves.
- The merge(arr, l, m, r) is key process that assumes that arr[l..m] and arr[m+1..r] are sorted and merges the two sorted sub-arrays into one.

**Selection sort:**- The selection sort algorithm sorts an array by repeatedly finding the smallest element (considering ascending order) from unsorted list and swapping it with the first element of the list.
- The algorithm maintains two sub-arrays in a given array:
- The sub-array which is already sorted.
- Remaining sub-array which is unsorted.

- In every iteration of selection sort, the smallest element from the unsorted sub-array is picked and moved to the sorted sub-array.

**Higher order sort:**- Python also supports higher order functions, meaning that functions can accept other functions as arguments and return functions to the caller.
**Sorting of higher order functions:**- In order to defined non-default sorting in Python, both the sorted() function and .sort() method accept a key argument.
- The value passed to this argument needs to be a function object that returns the sorting key for any item in the list or iterable.

**For example:**Consider the given list of tuples, Python will sort by default on the first value in each tuple. In order to sort on a different element from each tuple, a function can be passed that returns that element.

**Insertion sort:**- Insertion sort involves finding the right place for a given element in a sorted list. So in beginning we compare the first two elements and sort them by comparing them.
- Then we pick the third element and find its proper position among the previous two sorted elements.
- This way we gradually go on adding more elements to the already sorted list by putting them in their proper position.

**Program:**

**Q5. Discuss binary search in Python.**

**Ans. **

- Binary search follows a divide and conquer approach. It is faster than linear search but requires that the array be sorted before the algorithm is executed.
- Binary search looks for a particular item by comparing the middle most item of the collection. If a match occurs, then the index of item is returned.
- If the middle item is greater than the item, then the item is searched in the sub-array to the left of the middle item.
- Otherwise, the item is searched for in the sub-array to the right of the middle item.
- This process continues on the sub-array as well until the size of the sub-array reduces to zero.
- Code:

All Question Paper | AKTU Quantum | solution of question paper

## Python Programming Important Links:

Label | Link |
---|---|

Subject Syllabus | Syllabus |

Short Questions | Short-question |

Important Unit-1 | Unit-1 |

Important Unit-2 | Unit-2 |

Important Unit-3 | Unit-3 |

Important Unit-4 | Unit-4 |

Important Unit-5 | Unit-5 |

Question paper – 2021-22 | 2021-22 |

## AKTU Important Links | Btech Syllabus

Link Name | Links |
---|---|

Btech AKTU Circulars | Links |

Btech AKTU Syllabus | Links |

Btech AKTU Student Dashboard | Student Dashboard |

AKTU RESULT (One VIew) | Student Result |

## Important Links-Btech (AKTU) | Python Programming syllabus

Label | Links |
---|---|

Btech Information | Info Link |

Btech CSE | CSE-LINK |

Quantum-Page | Link |

Python Programming Syllabus | Python Programming Syllabus |

## 4 thoughts on “UNIT-5 : ITERATORS & RECURSION | Python Programming Important Questions”