0% found this document useful (0 votes)
9 views

Python Assignment

Uploaded by

Hari Maheta
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

Python Assignment

Uploaded by

Hari Maheta
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 13

Name : Maheta Harilal Prabodhbhai

Div: E

Semester: 8th

Enrollment : 150200107065

Assignment 1

import math

import sys

def divSum(n) :

result = 0

for index in range(2, int(math.sqrt(n)) + 1) :

if (n % index == 0) :

if (index == int(n / index)) :

result = result + index

else :

result = result +(index + int(n / index))

return (result + 1)

def areAmicable(x, y) :

if (divSum(x) != y) :

150200107065 Page 1
return False

return (divSum(y) == x)

if((len(sys.argv)) < 3 or (len(sys.argv)) > 3):

print('Missing required inputs')

sys.exit()

number1 = int(sys.argv[1])

number2 = int(sys.argv[2])

if (areAmicable(number1,number2)) :

print ('Numbers are Amicable.')

else :

print ('Numbers are not Amicable.')

OUTPUT

150200107065 Page 2
ASSIGNMENT 2

import sys

class Manager:

def __init__(self,accountNumber=0,BranchName=None,Balance=0):

self.accountNumber = accountNumber

self.BranchName = BranchName

self.Balance = Balance

def readFromFile(self,file):

list = []

f1 = open(file,'r')

Lines = f1.readlines()

f1.close()

for line in Lines:

row = line.strip().split(' ')

object = Manager(int(row[0]),row[1],float(row[2]))

list.append(object)

return list

def getDataBranchWise(self,list,branchName):

totalAccounts = 0

totalBalance = 0.0

higheshBalance = lowestBalance = list[0].Balance

isBranchPresent = False

150200107065 Page 3
for object in list:

if(object.BranchName.lower() == branchName.lower()):

isBranchPresent = True

totalAccounts += 1

totalBalance += object.Balance

if(object.Balance > higheshBalance):

higheshBalance = object.Balance

if(object.Balance < lowestBalance):

lowestBalance = object.Balance

if(not isBranchPresent):

print('No Such Branch Found')

return

averageBalance = (totalBalance/totalAccounts)

output ="\nTotal Accounts : {0}\n".format(totalAccounts)

output +="Average Balance : {0} Rs\n".format(averageBalance)

output +="Highest Balance : {0} Rs\n".format(higheshBalance)

output +="Lowest Balance : {0} Rs".format(lowestBalance)

print(output)

150200107065 Page 4
if(len(sys.argv) > 2 or len(sys.argv) < 2):

print('Missing required inputs')

sys.exit()

p1 = Manager()

output = p1.readFromFile('accounts.txt')

p1.getDataBranchWise(output,sys.argv[1])

ACCOUNT.TXT

101 Rajkot 2000.00

102 Rajkot 5000.52

103 Surat 5000.62

104 Ahmedabad 8000.14

105 Jamnagar 9000.62

106 Surat 8000.00

107 Ahmedabad 8000.00

108 Jamnagar 9000.00

109 Surat 8000.00

110 Ahmedabad 8000.00

111 Jamnagar 9000.00

112 Ahmedabad 8000.00

113 Jamnagar 9000.00

114 Surat 1000.00

OUTPUT

150200107065 Page 5
150200107065 Page 6
ASSIGNMENT : 3

import sys
if len(sys.argv)==1:
print("Missing required input")
quit()

K = int(sys.argv[1])

listofnumbers1 = list()
for i in range(2,len(sys.argv)):
listofnumbers1.append(int(sys.argv[i]))

listofnumbers1.sort()
middle = int(len(listofnumbers1)/2)
median=0

if (len(listofnumbers1)%2)!=0:
#If total numbers are odd
median = listofnumbers1[middle]
else:
#If total numbers are even
median = ((listofnumbers1[middle]+listofnumbers1[middle-1])/2)

distancefromMedian = dict()
for num in listofnumbers1:
if num>median:
#Finding distance
distancefromMedian[num] = num-median
else:
#Finding distance
distancefromMedian[num] = median-num

sortedValues = sorted(distancefromMedian.values())
distancefromMedian1 = dict()
for i in range(0,len(sortedValues)):
for key in distancefromMedian:
#Matching sorted values with the keys and sorting the keys according to the distance
from median
if distancefromMedian[key]==sortedValues[i]:
distancefromMedian1[key] = sortedValues[i]

listofnumbers = list()
listofnumbers1.clear()
for key in distancefromMedian1:
#Storing sorted keys in the list

150200107065 Page 7
listofnumbers.append(key)

for i in range(0,K):
#Fetching first K numbers or fetching K numbers that are nearest to the median
listofnumbers1.append(listofnumbers[i])

listofnumbers1.sort()
print(listofnumbers1)

OUTPUT

150200107065 Page 8
ASSIGNMENT 4

import sys

import re

userString = (sys.argv[1])

if not re.match('^[a-zA-Z0-9]+$',userString):

print('String must have only alphabets and digits.')

sys.exit()

stringLength = len(userString)

number = ''

output = ''

list = []

for item in range(stringLength):

currentInput = userString[item]

if currentInput.isalpha():

list.append(currentInput)

number = ''

else:

150200107065 Page 9
number += str(currentInput)

if (item+1) != stringLength and userString[item+1].isalpha():

list.append(int(number))

if number != '':

list.append(int(number))

previousInput = ''

newList = []

for currentInput in list:

if isinstance(currentInput,str) and isinstance(previousInput,str) and previousInput !=


'':

newList.append(1)

newList.append(currentInput)

else:

newList.append(currentInput)

previousInput = currentInput

newList.append(1)

for item in range(len(newList)):

if isinstance(newList[item],str):

if (item+1) != len(newList):

output += (newList[item] * newList[item+1])

print(output)

150200107065 Page 10
OUTPUT

150200107065 Page 11
ASSIGNMENT:5

import sys

def function(str, k):

list = []

for i in range(len(str)):

if i %k == 0:

lst = []

sub = str[i:i+k]

for j in sub:

lst.append(j)

list.append(''.join(lst))

return list

K = int(sys.argv[1])

userString = '*'.join(sys.argv[2:])

numberOfExtraCharacter = (K - (len(userString) % K))

if(numberOfExtraCharacter != K):

paddingCharacter = "$" * numberOfExtraCharacter

userString = userString + paddingCharacter

output = function(userString,K)

150200107065 Page 12
string = ''

for index in range(K):

temp = ''

for item in output:

temp += item[index]

string += temp[::-1]

print(string)

OUTPUT

150200107065 Page 13

You might also like