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

Python Ext

The document contains programs written in Python covering various topics like conditional statements, functions, loops, strings, lists, classes, files and exceptions handling. The programs demonstrate concepts like palindrome checking, sorting, shape classes, file handling and regular expressions.

Uploaded by

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

Python Ext

The document contains programs written in Python covering various topics like conditional statements, functions, loops, strings, lists, classes, files and exceptions handling. The programs demonstrate concepts like palindrome checking, sorting, shape classes, file handling and regular expressions.

Uploaded by

Mountain
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 21

PROGRAM 1A

m1 = int(input("Enter marks for test1 : "))

m2 = int(input("Enter marks for test2 : "))

m3 = int(input("Enter marks for test3 : "))

if m1 <= m2 and m1 <= m3:

avgMarks = (m2+m3)/2

elif m2 <= m1 and m2 <= m3:

avgMarks = (m1+m3)/2

elif m3 <= m1 and m2 <= m2:

avgMarks = (m1+m2)/2

print("Average of best two test marks out of three test’s marks is",avgMarks);

PROGRAM 1B

def checkPalindrome(n):

reverse = 0

temp = n

while(n > 0):

Reminder = n % 10

reverse = (reverse * 10) + Reminder

n = n // 10

if(temp == reverse):

return True

else:

return False

num = int(input("Enter a number: "))

if(checkPalindrome(num)):

print("It is Palindrome")

else:

print("Not a Palindrome")

count = [0] * 10

while(num > 0):

temp = num % 10

count[temp] += 1

num = num // 10

for i in range(10):

print(i, "occured", count[i],"times")


PROGRAM 2A
def fn(n):
if n == 1:

return 0
elif n == 2:
return 1
else:
return fn(n-1) + fn(n-2)
num = int(input("Enter a number : "))
if num > 0:
print("fn(", num, ") = ",fn(num) , sep ="")

else:
print("Error in input")
PROGRAM 2B1
b_num=list(input("Input a binary number:"))
value = 0
for i in range(len(b_num)):
digit=b_num.pop()
if digit == '1':
value = value + pow(2, i)

print("The decimal of the number is",value)


PROGRAM 2B2
print("Enter the Octal Number: ")
octnum = int(input())

chk = 0
i=0
decnum = 0
while octnum!=0:

rem= octnum%10
if rem>7:
chk = 1
break

decnum= decnum+ (rem * (8 ** i))


i=i+1
octnum = int (octnum/10)
if chk == 0:
i=0
hexdecnum=[]
while decnum != 0:
rem=decnum % 16

if rem < 10:


rem = rem + 48
else:
rem = rem + 55
rem = chr(rem)
hexdecnum.insert(i, rem)
i=i+1
decnum= int(decnum / 16)
print("\nEquivalent Hexadecimal Value is: ")

i=i-1
while i >= 0 :
print(end=hexdecnum[i])
i=i-1

print()
else:
print("\nInvalid Input!")
PROGRAM 3A

s = input("Enter a sentence: ")

w, d, u, l = 0, 0, 0, 0

l_w = s.split()

w = len(l_w)

for c in s:

if c.isdigit():

d=d+1

elif c.isupper():

u=u+1

elif c.islower():

l=l+1

print ("No of Words: ",w)

print ("No of Digits: ",d)

print ("No of Uppercase letters: ",u)

print ("No of Lowercase letters: ",l)

PROGRAM 3B

str1 = input("Enter String 1 \n")

str2 = input("Enter String 2 \n")

if len(str2) < len(str1):

short = len(str2)

long = len(str1)

else:

short = len(str1)

long = len(str2)

matchCnt = 0

for i in range(short):

if str1[i] == str2[i]:

matchCnt += 1

print("Similarity between two said strings:")

print(matchCnt/long)
PROGRAM 4A

import random

def merge_sort(Ist):

if len(lst) > 1:

mid = len(lst) // 2

left_half = lst[:mid]

right_half = lst[mid:]

merge_sort(left_half)

merge_sort(right_half)

i=j=k=0

while i<len(left_half) and j<len(right_half):

if left_half[i] < right_half[j]:

lst[k] = left_half[i]

i += 1

k+=1

else:

lst[k] = right_half[j]

j += 1

k += 1

while i < len(left_half):

lst[k] = left_half[i]

i += 1

k += 1

while j < len(right_half):

lst[k] = right_half[j]

j += 1

k += 1

return lst

def insertion_sort(arr):

for i in range(1, len(arr)):

key = arr[i]

j=i-1

while j >= 0 and key < arr[j]:

arr[j + 1] = arr[j]
j -= 1.

arr[j + 1] = key

my_list = []

for i in range(10):

my_list.append(random.randint(0,999))

print("\nUnsorted List")

print(my_list)

print("Sorting using Insertion Sort")

insertion_sort(my_list)

print(my_list)

my_list = []

for i in range(10):

my_list.append(random.randint(0, 999))

print("\nUnsorted List")

print(my_list)

print("Sorting using Merge Sort")

merge_sort(my_list)

print(my_list)

PROGRAM 4B

def roman2Dec(romStr):

roman_dict ={'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}

romanBack = list(romStr)[::-1]

value = 0

rightVal = roman_dict[romanBack[0]]

for numeral in romanBack:

leftVal = roman_dict[numeral]

if leftVal < rightVal:

value -= leftVal

else:

value += leftVal

rightVal = leftVal

return value

romanStr = input("Enter a Roman Number :")

print(roman2Dec(romanStr))
PROGRAM 5A

import re

def isphonenumber(numStr):

if len(numStr)!=12:

return False

for i in range(len(numStr)):

if i==3 or i==7:

if numStr[i] !="-":

return False

else:

if numStr[i].isdigit()==False:

return False

return True

def chkphonenumber (numStr):

ph_no_pattern=re.compile(r'^\d{3}-\d{3}-\d{4}$')

if ph_no_pattern.match(numStr):

return True

else:

return False

ph_num = input("Enter a phone number : ")

print("Without using Regular Expression")

if isphonenumber (ph_num):

print("valid phone number")

else:

print("Invalid phone number")

print("Using Regular Expression")

if chkphonenumber (ph_num):

print("Valid phone number")

else:

print("Invalid phone number")


PROGRAM 5B
import re
phone_regex = re.compile(r'\+\d{12}')
email_regex = re.compile(r'[A-Za-z0-9]+@[A-Za-z0-9]+\.[A-Za-z]{2,}')
with open('example.txt', 'r') as f:
for line in f:
matches=phone_regex.findall(line)
for match in matches:
print (match)
matches = email_regex.findall (line)
for match in matches:
print(match)
Program 6A:

import os.path

import sys

fname = input("Enter the filename : ")

if not os.path.isfile(fname):

print("File", fname, "doesn't exists")

sys.exit(0)

infile = open(fname, "r")

lineList = infile.readlines()

for i in range(5):

print(i+1, ":", lineList[i])

word = input("Enter a word : ")

cnt = 0

for line in lineList:

cnt += line.count(word)

print("The word", word, "appears", cnt, "times in the file")

Program 6B:

import os

import sys

import pathlib

import zipfile

dirName = input("Enter Directory name that you want to backup : ")

if not os.path.isdir(dirName):

print("Directory", dirName, "doesn't exists")

sys.exit(0)

curDirectory = pathlib.Path(dirName)

with zipfile.ZipFile("myZip.zip", mode="w") as archive:

for file_path in curDirectory.rglob("*"):

archive.write(file_path, arcname=file_path.relative_to(curDirectory))

if os.path.isfile("myZip.zip"):

print("Archive", "myZip.zip", "created successfully")


else:

print("Error in creating zip archive")

Program 7A
import math
class Shape:
def __init__(self):
self.area = 0
self.name = ""
def showArea(self):
print("The area of the", self.name, "is", self.area, "units")
class Circle(Shape):
def __init__(self,radius):
self.area = 0
self.name = "Circle"
self.radius = radius
def calcArea(self):
self.area = math.pi * self.radius * self.radius
class Rectangle(Shape):
def __init__(self,length,breadth):
self.area = 0
self.name = "Rectangle"
self.length = length
self.breadth = breadth
def calcArea(self):
self.area = self.length * self.breadth
class Triangle(Shape):
def __init__(self,base,height):
self.area = 0
self.name = "Triangle"
self.base = base
self.height = height
def calcArea(self):
self.area = self.base * self.height / 2
c1 = Circle(5)
c1.calcArea()
c1.showArea()
r1 = Rectangle(5, 4)
r1.calcArea()
r1.showArea()
t1 = Triangle(3, 4)
t1.calcArea()
t1.showArea()
program 7B
class Employee:
def _init_(self):
self.name = ""
self.empId = ""
self.dept = ""
self.salary = 0
def getEmpDetails(self):
self.name = input("Enter Employee name : ")
self.empId = input("Enter Employee ID : ")
self.dept = input("Enter Employee Dept : ")
self.salary = int(input("Enter Employee Salary : "))
def showEmpDetails(self):
print("Employee Details")
print("Name : ", self.name)
print("ID : ", self.empId)
print("Dept : ", self.dept)
print("Salary : ", self.salary)
def updtSalary(self):
self.salary = int(input("Enter new Salary : "))
print("Updated Salary", self.salary)
e1 = Employee()
e1.getEmpDetails()
e1.showEmpDetails()
e1.updtSalary()
program 8
class PaliStr:
def _init_(self):
self.isPali = False
def chkPalindrome(self, myStr):
if myStr == myStr[::-1]:
self.isPali = True
else:
self.isPali = False
return self.isPali
class PaliInt(PaliStr):
def _init_(self):
self.isPali = False
def chkPalindrome(self, val):
temp = val
rev = 0
while temp != 0:
dig = temp % 10
rev = (rev*10) + dig
temp = temp //10
if val == rev:
self.isPali = True
else:
self.isPali = False
return self.isPali
st = input("Enter a string : ")
stObj = PaliStr()
if stObj.chkPalindrome(st):
print("Given string is a Palindrome")
else:
print("Given string is not a Palindrome")
val = int(input("Enter a integer : "))
intObj = PaliInt()
if intObj.chkPalindrome(val):
print("Given integer is a Palindrome")
else:
print("Given integer is not a Palindrome")
Program 9A
import requests
import os

from bs4 import BeautfulSoup


url = 'https://xkcd.com/1/'
if not os.path.exists('xkcd_comics'):
os.makedirs('xkcd_comics')
while True:
res = requests.get(url)
res.raise_for_status()
soup = BeautfulSoup(res.text, 'html.parser')

comic_elem = soup.select('#comic img')


if comic_elem == []:
print('Could not find comic image.')
else:
comic_url = 'https:' + comic_elem[0].get('src')
print(f'Downloading {comic_url}...')
res = requests.get(comic_url)
res.raise_for_status()
image_file = open(os.path.join('xkcd_comics', os.path.basename(comic_url)), 'wb')

for chunk in res.iter_content(100000):


image_file.write(chunk)
image_file.close()
prev_link = soup.select('a[rel="prev"]')[0]

if not prev_link:
break
url = 'https://xkcd.com' + prev_link.get('href')
print('All comics downloaded.')
program 9B
from openpyxl import Workbook
from openpyxl.styles import Font
wb = Workbook()
sheet = wb.active
sheet.title = "Language"
wb.create_sheet(title = "Capital")
lang = ["Kannada", "Telugu", "Tamil"]
state = ["Karnataka", "Telangana", "Tamil Nadu"]
capital = ["Bengaluru", "Hyderabad", "Chennai"]
code =['KA', 'TS', 'TN']
sheet.cell(row = 1, column = 1).value = "State"
sheet.cell(row = 1, column = 2).value = "Language"
sheet.cell(row = 1, column = 3).value = "Code"
ft = Font(bold=True)
for row in sheet["A1:C1"]:
for cell in row:
cell.font = ft
for i in range(2,5):
sheet.cell(row = i, column = 1).value = state[i-2]
sheet.cell(row = i, column = 2).value = lang[i-2]
sheet.cell(row = i, column = 3).value = code[i-2]
wb.save("demo.xlsx")
sheet = wb["Capital"]
sheet.cell(row = 1, column = 1).value = "State"
sheet.cell(row = 1, column = 2).value = "Capital"
sheet.cell(row = 1, column = 3).value = "Code"
ft = Font(bold=True)
for row in sheet["A1:C1"]:
for cell in row:
cell.font = ft
for i in range(2,5):
sheet.cell(row = i, column = 1).value = state[i-2]
sheet.cell(row = i, column = 2).value = capital[i-2]
sheet.cell(row = i, column = 3).value = code[i-2]
wb.save("demo.xlsx")
srchCode = input("Enter state code for finding capital ")
for i in range(2,5):
data = sheet.cell(row = i, column = 3).value
if data == srchCode:
print("Corresponding capital for code", srchCode, "is", sheet.cell(row = i,
column = 2).value)
sheet = wb["Language"]
srchCode = input("Enter state code for finding language ")
for i in range(2,5):
data = sheet.cell(row = i, column = 3).value
if data == srchCode:
print("Corresponding language for code", srchCode, "is", sheet.cell(row = i,
column = 2).value)
wb.close()
program 10A
from PyPDF2 import PdfWriter, PdfReader
num = int(input("Enter page number you want combine from multiple documents "))

pdf1 = open('birds.pdf', 'rb')


pdf2 = open('birdspic.pdf', 'rb')
pdf_writer = PdfWriter()
pdf1_reader = PdfReader(pdf1)
page = pdf1_reader.pages[num - 1]
pdf_writer.add_page(page)
pdf2_reader = PdfReader(pdf2)
page = pdf2_reader.pages[num - 1]

pdf_writer.add_page(page)
with open('output.pdf', 'wb') as output:
pdf_writer.write(output)

program 10b
import json
with open('weather_data.json') as f:
data = json.load(f)
current_temp = data['main']['temp']

humidity = data['main']['humidity']
weather_desc = data['weather'][0]['description']
print(f"Current temperature: {current_temp}°C")
print(f"Humidity: {humidity}%")

print(f"Weather description: {weather_desc}")


JSON FILE
{
"coord": {
"lon": -73.99,
"lat": 40.73
},
"weather": [
{
"id": 800,
"main": "Clear",
"descrip􀆟on": "clear sky",
"icon": "0ld"
}
],
"base": "sta􀆟ons",
"main": {
"temp": 15.45,
"feels_like": 12.74,
"temp_min": 14.44,
"temp_max": 16.11,
"pressure": 1017,
"humidity": 64
},
"visibility": 10000,
"wind": {
"speed": 4.63,
"deg": 180
},
"clouds": {
"all": 1
},
"dt": 1617979985,
"sys": {
"type": 1,
"id": 5141,
"country": "US",
"sunrise": 1617951158,
"sunset": 1618000213
},
"timezone": -14400,
"id": 5128581,
"name": "New York",
"cod": 200
}
Program1B

val=int(input("Enter a number:"))

str_val=str(val)

if str_val==str_val[::-1]:

print("The number is a paindrome")


else:

print("The number is not a palindrome")

for i in range(10):

if str_val.count(str(i))>0:

print("The digit",str(i),"appeares",str_val.count(str(i)),"number of times")

You might also like