Python Practicals Sem2
Python Practicals Sem2
# Recursive factorial
def factorial_recursive(n):
if n == 0 or n == 1:
return 1
else:
return n * factorial_recursive(n-1)
# Iterative factorial
def factorial_iterative(n):
result = 1
for i in range(2, n+1):
result *= i
return result
n = 5
print("Recursive Factorial of", n, ":", factorial_recursive(n))
print("Iterative Factorial of", n, ":", factorial_iterative(n))
# Traversal
print("Array Elements:")
for i in arr:
print(i, end=" ")
# Insertion
arr.append(60)
print("\nAfter Insertion:", arr)
# Deletion
arr.remove(30)
print("After Deletion:", arr)
# Searching
if 40 in arr:
print("40 found at index", arr.index(40))
else:
print("40 not found")
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# Row sum
for i in range(3):
print("Sum of row", i, "=", sum(matrix[i]))
# Column sum
for j in range(3):
col_sum = sum(matrix[i][j] for i in range(3))
print("Sum of column", j, "=", col_sum)
# Diagonal sums
main_diag = sum(matrix[i][i] for i in range(3))
sec_diag = sum(matrix[i][2-i] for i in range(3))
print("Sum of main diagonal =", main_diag)
print("Sum of secondary diagonal =", sec_diag)
n = 3
tower_of_hanoi(n, 'A', 'B', 'C')
# Selection Sort
def selection_sort(arr):
n = len(arr)
for i in range(n):
min_idx = i
for j in range(i+1, n):
if arr[j] < arr[min_idx]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
bubble_sort(arr1)
print("Bubble Sorted array:", arr1)
selection_sort(arr2)
print("Selection Sorted array:", arr2)
# Binary Search
def binary_search(arr, x):
low = 0
high = len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] == x:
return mid
elif arr[mid] < x:
low = mid + 1
else:
high = mid - 1
return -1
def print_board(board):
for row in board:
print(" ".join(row))
print()
def solve_nq(n):
board = [['.' for _ in range(n)] for _ in range(n)]
solve_nq_util(board, 0, n)
n = 4
solve_nq(n)