0% found this document useful (0 votes)
2 views4 pages

Python Practice 2

The document contains various Python programming exercises and concepts, including creating a custom exception class, operator overloading with complex numbers, class inheritance, loops, list comprehensions, and string formatting. It also covers topics like immutability of tuples, flattening nested dictionaries, and implementing a context manager for file operations. Additionally, it discusses the differences between iterators and generators, as well as data hiding, polymorphism, and abstraction in classes.

Uploaded by

sandhyadevit
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views4 pages

Python Practice 2

The document contains various Python programming exercises and concepts, including creating a custom exception class, operator overloading with complex numbers, class inheritance, loops, list comprehensions, and string formatting. It also covers topics like immutability of tuples, flattening nested dictionaries, and implementing a context manager for file operations. Additionally, it discusses the differences between iterators and generators, as well as data hiding, polymorphism, and abstraction in classes.

Uploaded by

sandhyadevit
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

. Write your custom exception class “MyExceptions” and use it with any other python program .

class MyExceptions(Exception):
pass

def verify_age(age):
if age < 18:
raise MyExceptions("Pahlebaalig ho jao!!")
else:
print("Badhai ho! Tum baalig ho!")

a = int(input("Umrabatao: "))
try:
verify_age(a)
except MyExceptions as e:
print("Gadbadhaigo!\nError:",e)
finally:
print("Chalo ji! Phirmulakathogi!")

Oops:
Q. You are given two complex numbers , and you have to print the result of their addition, subtraction,
multiplication, division and modulus operations, use classes for this, implement operator overloading.

Q. Write a class A and implement some methods (add, subtract, divide integers), write another class B
which inherits class A and call these 3 methods from class B object.

Loops and Iterators:


Q. Read an integer N from user, for all non-negative integers i<N, print i*2, write separate programs
using every kind of loop.
num = int(input("Number: "))

# for loop
print("For Loop")
for i in range(1, num):
print(i*2, end=" ")

print()

# while loop
print("While Loop")
i=1
while i< num:
print(i*2, end=" ")
i += 1
Q1) Reverse a given list using list comprehensions. Reverse same list also using list slicing.
# Reversing List using Slicing
print("Enter List")
lst = [i for i in input().split()]
rev_lst = lst[ : :-1]
print(rev_lst)

# Reversing List using List Comprehension


print("Enter List")
lst = [i for i in input().split()]
rev_lst = [lst[i] for i in range(len(lst)-1, -1, -1)]
print(rev_lst)

Q2) Write a function to verify that tuple is immutable this function takes any tuple as parameter.

Q3) Convert nested dictionary into flattened dictionary for example


given a input test = {"outer1": {"inner1": {"inner2": "data"}}, "outer2": "data", "outer3":
{"inner3": "data"}}
output should be:
{"outer1_inner1_inner2": "data", "outer2": :"data", "outer3:inner3": "data"}
Your program should also work for very large nested dict.

Q4) Why python is called dynamically typed language?

Q5) Create a function which takes a string as an input and modify it by inserting tab escape sequence
between every character of it and return it.
So when returned data is printed it shows tabs between every character on console.
def convert(s):
new_s = []
k=0
length = len(s) + len(s)-1
for i in range(0,length):
if i%2==0:
new_s.append(s[k])
k += 1
else:
new_s.append('\t')
res = str("".join(new_s))
return res

print(convert("nitish"))
Q6) Using python string formatting print a table on console like this:

Name Age class Roll


Rishav 18 12 56565
Vishal 15 10 131313
Etc
data = [['NAME', 'AGE', 'HANDEDNESS', 'SCORE (%)'],
['Martin', 38, 'L', 54.123],
['Marty', 33, 'L', 32.438],
['Martine', 25, 'R', 71.128],
['Martyn', 59, 'R', 50.472],
['Mart', 23, 'L', 2.438],
['Martyne', 15, 'R', 71.128],
['Marlyn', 101, 'R', 0.472],
['Marti', 2, 'L', 55.438],
['Mardi', 9, 'R', 81.128],
['Martyne', 49, 'R', 24.472],
['Marteen', 91, 'L', 1.128]]

dash = '-' * 40
for i in range(len(data)):
if i == 0:
print(dash)
print('{:<10s}{:>4s}{:>12s}{:>12s}'.format(data[i][0],data[i][1],data[i][2],data[i][3]))
print(dash)
else:
print('{:<10s}{:>4d}{:^12s}{:>12.1f}'.format(data[i][0],data[i][1],data[i][2],data[i][3]))

Q7)Write a class which reads text file and create another file converting all data in binary and vice versa.
This is simplest form of data encryption/decryption, This class can have following methods:

read_text()
write_binary()
read_binary()
write_text()

Implement this class with context manager.

Q8) Implement a bare minimum example class which shows following:

data hiding
Object printing
Inheritance
polymorphism
abstraction

Q9) what is the difference between iterator and generator.


Create a generator on which a program can iterate from 1 to 1000

print numbers from 1 to 100000 on console using:


iterator
generator

and tell which is better and why.

Q10) Write your own exception class and inherit properties of "Exception" class.
Write a program to show usage of your custom class.

You might also like