50% found this document useful (6 votes)
43K views

Python 3 - Functions and OOPs Fresco

This document contains 8 sections that provide code examples for Python functions and object-oriented programming concepts including: 1. A string methods function that performs various operations on a string like replacement, slicing, joining, splitting, indexing, etc. 2. A magic constant generator function that uses a generator to yield magic constants based on an input number. 3. A prime number generator function that uses a generator to yield prime numbers based on inputs for the maximum number and whether to return even or odd primes. 4. Code examples for classes and objects including a Movie class and complex number class. 5. Code examples for inheritance including Parent, Son, and Daughter classes and a Rectangle and Square class

Uploaded by

Kaushal Deshmukh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
50% found this document useful (6 votes)
43K views

Python 3 - Functions and OOPs Fresco

This document contains 8 sections that provide code examples for Python functions and object-oriented programming concepts including: 1. A string methods function that performs various operations on a string like replacement, slicing, joining, splitting, indexing, etc. 2. A magic constant generator function that uses a generator to yield magic constants based on an input number. 3. A prime number generator function that uses a generator to yield prime numbers based on inputs for the maximum number and whether to return even or odd primes. 4. Code examples for classes and objects including a Movie class and complex number class. 5. Code examples for inheritance including Parent, Son, and Daughter classes and a Rectangle and Square class

Uploaded by

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

Python 3 – Functions and OOPs

1. String Methods
#!/bin/python3
import math
import os
import random
import re
import sys
#
# Complete the 'strmethod' function below.
# The function accepts following parameters:
# 1. STRING para
# 2. STRING spch1
# 3. STRING spch2
# 4. LIST li1
# 5. STRING strf
#
def stringmethod(para, special1, special2, list1, strfind):
# Write your code here
word1=para
for i in special1:
word1=word1.replace(i,'')
word2=word1[0:70]
word2=word2[-1:-71:-1]
print(word2)
l=special2.join(list(word2.replace(" ",'')))
print(l)
count=0
for i in list1:
if (i in para):count+=1
if count==len(list1):
print("Every string in ",list1,"were present")
else:print("Every string in ",list1,"were not present")
print(word1.split()[0:20])
list2=list()
freq=[]
for i in word1.split(" "):
if word1.count(i)<13:
if i in freq:pass
else:freq.append(i)
list2=freq[-1:-21:-1]
print(list2[-1:-21:-1])
print(word1.rindex(strfind))

if __name__ == '__main__':
para = input()
spch1 = input()
spch2 = input()
qw1_count = int(input().strip())
qw1 = []
for _ in range(qw1_count):
qw1_item = input()
qw1.append(qw1_item)
strf = input()
stringmethod(para, spch1, spch2, qw1, strf)

2. Magic Constant Generator


#!/bin/python3

import math
import os
import random
import re
import sys

#
# Complete the 'Magic_const' function below.
#
#
#
# The function accepts INTEGER n1 as parameter.
#

def generator_Magic(n1):
# Write your code here
for i in range(3, n1+1):
gen1 = i * ((i**2) + 1) // 2
yield gen1
if __name__ == '__main__':

n = int(input().strip())

for i in generator_Magic(n):
print(int(i))

gen1 = generator_Magic(n)
print(type(gen1))

3. Prime Number Generator


#!/bin/python3

import math
import os
import random
import re
import sys
#
# Complete the 'primegenerator' function below.
#
# The function is expected to return an INTEGER.
# The function accepts following parameters:
# 1. INTEGER num
# 2. INTEGER val
#

def primegenerator(num, val):


# Write your code here
x = 0
for i in range(2,num):
if(len([j for j in range(2,i-1) if i%j==0]) == 0):
x = x + 1
if(int(val) == 0):
if (x % 2) == 0:
yield i
if(int(val) == 1):
if (x % 2) != 0:
yield i

if __name__ == '__main__':

num = int(input().strip())

val = int(input().strip())

for i in primegenerator(num, val):


print(i,end=" ")

4. Classes and Objects 1


a. Problem 1
#!/bin/python3

import math
import os
import random
import re
import sys

# Write your code here


class Movie:
def __init__(self,val1,val2,val3):
self.name = val1
self.noofTickets = val2
self.cost = val3
def __str__(self):
return 'Movie : {0}\nNumber of Tickets : {1}\nTotal Cost : {2}'.format(self
.name,self.noofTickets,self.cost)

if __name__ == '__main__':
name = input()
n = int(input().strip())
cost = int(input().strip())

p1 = Movie(name,n,cost)
print(p1)

b. Problem 2
#!/bin/python3

import math
import os
import random
import re
import sys

#
#Write your code here
class comp:
def __init__(self,v1,v2):
self.real = v1
self.img = v2
def add(self,plus):
sum_r = self.real + plus.real
sum_i = self.img + plus.img
print("Sum of the two Complex numbers :{0}+{1}i".format(sum_r,sum_i))
def sub(self,minus):
sub_r = self.real - minus.real
sub_i = self.img - minus.img
if sub_i >=0:
print("Subtraction of the two Complex numbers :{0}+{1}i".format(sub_r,s
ub_i))
else:
sub_i = -sub_i
print("Subtraction of the two Complex numbers :{0}-
{1}i".format(sub_r,sub_i))
if __name__ == '__main__':

real1 = int(input().strip())
img1 = int(input().strip())

real2 = int(input().strip())
img2 = int(input().strip())

p1 = comp(real1,img1)
p2 = comp(real2,img2)

p1.add(p2)
p1.sub(p2)

5. Classes and Objects 2


a. Problem 1
#!/bin/python3

import math
import os
import random
import re
import sys

class parent:
def __init__(self,total_asset):
self.total_asset = total_asset

def display(self):
print("Total Asset Worth is "+str(self.total_asset)+" Million.")
print("Share of Parents is "+str(round(self.total_asset/2,2))+" Million.")

# It is expected to create two child classes 'son' & 'daughter' for the above class
'parent'
#
#Write your code here
class parent:
def __init__(self,total_asset):
self.total_asset = total_asset
def display(self):
print("Total Asset Worth is "+str(self.total_asset)+" Million.")
print("Share of Parents is "+str(round(self.total_asset/2,2))+" Million.")

class son(parent):
def __init__(self, total, val):
parent.__init__(self, total)
self.Percentage_for_son = val
def son_display(self):
x = self.Percentage_for_son * t/100
x = round(x,2)
print("Share of Son is {} Million.".format(x))

class daughter(parent):
def __init__(self, total, val):
parent.__init__(self,total)
self.Percentage_for_daughter = val
def daughter_display(self):
y = self.Percentage_for_daughter * t/100
y = round(y,2)
print("Share of Daughter is {} Million.".format(y))

if __name__ == '__main__':

t = int(input())
sp = int(input())
dp = int(input())

obj1 = parent(t)

obj2 = son(t,sp)
obj2.son_display()
obj2.display()

obj3 = daughter(t,dp)
obj3.daughter_display()
obj3.display()

print(isinstance(obj2,parent))
print(isinstance(obj3,parent))

print(isinstance(obj3,son))
print(isinstance(obj2,daughter))

b. Problem 2
#!/bin/python3

import math
import os
import random
import re
import sys

# Write your code here


class rectangle:
def display(self):
print("This is a Rectangle")
def area(self, Length, Breadth):
area_r = Length*Breadth
print("Area of Rectangle is ",area_r)

class square:
def display(self):
print("This is a Square")
def area(self, Side):
area = round(math.pow(Side,2))
print("Area of square is ",area)

if __name__ == '__main__':
l = int(input())
b = int(input())
s = int(input())

obj1 = rectangle()
obj1.display()
obj1.area(l,b)

obj2 = square()
obj2.display()
obj2.area(s)

6. Handling Exceptions 1
#!/bin/python3

import math
import os
import random
import re
import sys

#
# Complete the 'Handle_Exc1' function below.
#
#

def Handle_Exc1():
# Write your code here
a = int(input())
b = int(input())
if(a>150 or b<100):
print("Input integers value out of range.")
elif(a+b>400):
print("Their sum is out of range")
else:
print("All in range")

if __name__ == '__main__':
try:
Handle_Exc1()
except ValueError as exp:
print(exp)

7. Handling exception 2
#!/bin/python3
import math
import os
import random
import re
import sys

#
# Complete the 'FORLoop' function below.
#

def FORLoop():
# Write your code here
n=int(input())
l1=[]
for i in range(n):
l1.append(int(input()))
print(l1)
iter1 = iter(l1)
for i in range(n):
print(next(iter1))
return iter1

if __name__ == '__main__':
try:
d = FORLoop()
print(type(d))
print(next(d))

except StopIteration:
print('Stop Iteration : No Next Element to fetch')

8. Handling exceptions 3
#!/bin/python3

import math
import os
import random
import re
import sys

#
# Complete the 'Bank_ATM' function below.
#
# Define the Class for user-
defined exceptions "MinimumDepositError" and "MinimumBalanceError" here

class MinimumBalanceError(Exception):
pass
class MinimumDepositError(Exception):
pass

def Bank_ATM(balance,choice,amount):
b=(balance-amount)
if(balance<500):
raise ValueError("As per the Minimum Balance Policy, Balance must be at lea
st 500")
elif(balance<500 and choice ==1):
raise MinimumDepositError("As per the Minimum Balance Policy, Balance must
be at least 500")
elif(((b<500)or(amount>balance<500))and choice ==2):
raise MinimumBalanceError("You cannot withdraw this amount due to Minimum B
alance Policy")
elif(choice ==1 and amount <2000):
raise MinimumDepositError("The Minimum amount of Deposit should be 2000.")
elif(choice ==1 and amount>2000):
balance = balance + amount
print("Updated Balance Amount: ", balance)
else:
balance = balance-amount
print("Updated Balance Amount: ", balance)

if __name__ == '__main__':

bal = int(input())
ch = int(input())
amt = int(input())

try:
Bank_ATM(bal,ch,amt)

except ValueError as e:
print(e)
except MinimumDepositError as e:
print(e)
except MinimumBalanceError as e:
print(e)

9. Handling Exceptions 4
#!/bin/python3

import math
import os
import random
import re
import sys
#
# Complete the 'Library' function below.
#

def Library(memberfee,installment,book):
# Write your code here
b = ["Philosophers stone","Order of Phoenix","Chamber of Secrets","Prisoner of
Azkaban","Goblet of Fire","Half Blood Prince","Deathly Hallows 1","Deathly Hallows
2"]
c=[]
for i in b:
e=i.upper()
c.append(e)
book = book.upper()

if installment > 3:
raise ValueError("Maximum Permitted Number of Installments is 3")
elif installment == 0:
raise ZeroDivisionError("Number of Installments cannot be Zero.")
elif installment <=3:
a = memberfee/installment
print("Amount per Installment is {}".format (memberfee/installment))
if (not book in c):
raise NameError("No such book exists in this section")
else:
print("It is available in this section")

if __name__ == '__main__':

memberfee = int(input())
installment = int(input())
book = input()

try:
Library(memberfee,installment,book)

except ZeroDivisionError as e:
print(e)
except ValueError as e:
print(e)
except NameError as e:
print(e)

10. Module 1: Python-DateTime


#!/bin/python3

import math
import os
import random
import re
import sys

import datetime
#
# Complete the 'dateandtime' function below.
#
# The function accepts INTEGER val as parameter.
# The return type must be LIST.
#

def dateandtime(val,tup):
# Write your code here
list = []
if val == 1:#done
d = datetime.date(tup[0],tup[1],tup[2])
list.append(d)
dd = d.strftime('%d/%m/%Y')
list.append(dd)
if val == 2:#done
#print(int(tup[0]))
d = datetime.datetime.fromtimestamp(int(tup[0]))
d = d.date()
list.append(d)
if val == 3:
d = datetime.time(tup[0],tup[1],tup[2])
list.append(d)
#h = d.hour
h = d.strftime("%I")
list.append(h)
if val == 4:
d = datetime.date(tup[0],tup[1],tup[2])
weekday = d.strftime('%A')
list.append(weekday)
fullmonth = d.strftime('%B')
list.append(fullmonth)
day = d.strftime('%j')
list.append(day)
if val == 5:#done
d = datetime.datetime(tup[0],tup[1],tup[2],tup[3],tup[4],tup[5])
list.append(d)
return list

if __name__ == '__main__':
val = int(input().strip())

if val ==1 or val==4 or val ==3:


qw1_count=3
if val==2:
qw1_count=1
if val ==5:
qw1_count=6
qw1 = []

for _ in range(qw1_count):
qw1_item = int(input().strip())
qw1.append(qw1_item)

tup=tuple(qw1)

ans = dateandtime(val,tup)

print(ans)

11. Module 2: Itertools


#!/bin/python3

import math
import os
import random
import re
import sys

import itertools
import operator
#
# Complete the 'usingiter' function below.
#
# The function is expected to return a TUPLE.
# The function accepts following parameters:
# 1. TUPLE tupb
#

def performIterator(tuplevalues):
# Write your code here
ListBuffer = itertools.cycle(tuplevalues[0])
SequenceRepeation = 0
SequenceStart = 0
SequenceEnd = 4
b=[]
for output in ListBuffer:
if(SequenceStart == 0):
SequenceRepeation + 1
b.append(output)
if(SequenceStart == SequenceEnd-1):
if(SequenceRepeation>= 0):
break
else:
SequenceRepeation+= 1
SequenceStart = 0
else:
SequenceStart+= 1
a=[]
a.append(tuple(b))
b=tuple(itertools.repeat(tuplevalues[1][0],len(tuplevalues[1])))
a.append(b)
c=tuple(itertools.accumulate(list(tuplevalues[2]),operator.add))

d=tuple(itertools.chain(tuplevalues[0],tuplevalues[1],tuplevalues[2],tuplevalue
s
[3]))
a.append(c)
a.append(d)
e=tuple(itertools.filterfalse(lambda x : x % 2 == 0,d))
a.append(e)
return tuple(a)

if __name__ == '__main__':

length = int(input().strip())

qw1 = []
for i in range(4):
qw2 = []
for _ in range(length):
qw2_item = int(input().strip())
qw2.append(qw2_item)
qw1.append(tuple(qw2))
tupb = tuple(qw1)

q = performIterator(tupb)
print(q)

12. Module 3: Cryptography


#!/bin/python3

import math
import os
import random
import re
import sys

from cryptography.fernet import Fernet


#
# Complete the 'encrdecr' function below.
#
# The function is expected to return a LIST.
# The function accepts following parameters:
# 1. STRING keyval
# 2. STRING textencr
# 3. Byte-code textdecr
#

def encrdecr(keyval, textencr, textdecr):


# Write your code here
a=[]
f = Fernet(keyval)
token = f.encrypt(textencr)
a.append(token)
d=f.decrypt(textdecr).decode("utf-8")
a.append(d)
return a
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')

file = open('key.key', 'rb')


key = file.read() # The key will be type bytes
file.close()

keyval = key

textencr = str(input()).encode()

textdecr = str(input()).encode()

result = encrdecr(keyval, textencr, textdecr)


bk=[]
f = Fernet(key)
val = f.decrypt(result[0])
bk.append(val.decode())
bk.append(result[1])

fptr.write(str(bk) + '\n')

fptr.close()

13. Module 4: Calendar


#!/bin/python3

import math
import os
import random
import re
import sys

from calendar import Calendar


import calendar
from collections import Counter
#
# Complete the 'calen' function below.
#
# The function accepts TUPLE datetuple as parameter.
#

def usingcalendar(datetuple):
# Write your code here
year=int(datetuple[0])
mon=datetuple[1]
if year % 4== 0 or year % 100 == 0 or year % 400 == 0:
mon=2
date=calendar.TextCalendar(calendar.MONDAY)
print(date.formatmonth(year,mon))
l = []
obj = calendar.Calendar()
for day in obj.itermonthdates(year, mon):
l.append(day)
rev = l[:-8:-1]
rev.reverse()
print(rev)
count=Counter(d.strftime('%A') for d in obj.itermonthdates(year,mon) if
d.month==mon)
for i,j in count.most_common(1):
print(i)

if __name__ == '__main__':
qw1 = []

for _ in range(3):
qw1_item = int(input().strip())
qw1.append(qw1_item)

tup=tuple(qw1)

usingcalendar(tup)

14. Collections
#!/bin/python3

import math
import os
import random
import re
import sys

import collections
from collections import Counter
from collections import OrderedDict
from collections import defaultdict
#
# Complete the 'collectionfunc' function below.
#
# The function accepts following parameters:
# 1. STRING text1
# 2. DICTIONARY dictionary1
# 3. LIST key1
# 4. LIST val1
# 5. DICTIONARY deduct
# 6. LIST list1
#

def collectionfunc(text1, dictionary1, key1, val1, deduct, list1):


# Write your code here
word_count={}
list2=text1.split()
list2.sort()
a=dict(Counter(list2))
print(a)
counter1=Counter(dictionary1)
counter2=Counter(deduct)
counter1.subtract(counter2)
b=dict(counter1)
print(b)
c=OrderedDict()
for i in range(0,len(key1)):
c[key1[i]]=val1[i]
c.pop(key1[1])
c[key1[1]]=val1[1]
d=dict(c)
print(d)
even=[]
odd=[]
e=defaultdict(list)
extr=[]
for x in list1:
if type(x)==int:
extr.append(x)
for num in extr:
if num%2==0:
e['even'].append(num)
else:
e['odd'].append(num)
f=dict(e)
print(f)

if __name__ == '__main__':
from collections import Counter

text1 = input()

n1 = int(input().strip())
qw1 = []
qw2 = []
for _ in range(n1):
qw1_item = (input().strip())
qw1.append(qw1_item)
qw2_item = int(input().strip())
qw2.append(qw2_item)
testdict={}
for i in range(n1):
testdict[qw1[i]]=qw2[i]
collection1 = (testdict)

qw1 = []
n2 = int(input().strip())
for _ in range(n2):
qw1_item = (input().strip())
qw1.append(qw1_item)
key1 = qw1

qw1 = []
n3 = int(input().strip())
for _ in range(n3):
qw1_item = int(input().strip())
qw1.append(qw1_item)
val1 = qw1

n4 = int(input().strip())
qw1 = []
qw2 = []
for _ in range(n4):
qw1_item = (input().strip())
qw1.append(qw1_item)
qw2_item = int(input().strip())
qw2.append(qw2_item)
testdict={}
for i in range(n4):
testdict[qw1[i]]=qw2[i]
deduct = testdict

qw1 = []
n5 = int(input().strip())
for _ in range(n5):
qw1_item = int(input().strip())
qw1.append(qw1_item)
list1 = qw1

collectionfunc(text1, collection1, key1, val1, deduct, list1)

You might also like