Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion 21 BlackJack.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,4 +89,4 @@ def calculate_hand(hand):

# Dealer hits until their total is 17 or higher
while total < 17:
dealer
raise NotImplementedError()
35 changes: 25 additions & 10 deletions 27.03 Library Item Inheritance.py
Original file line number Diff line number Diff line change
@@ -1,69 +1,84 @@
import datetime
import random


class LibraryItem:
def __init__(self, t,a,i):
def __init__(self, t: str, a: str, i: str | int):
self.__Title = t
self.__AuthorArtist = a
self.__ItemID = i
self.__OnLoan = False
self.__DueDate = datetime.date.today()

def GetTitle(self):
def GetTitle(self) -> str:
return (self.__Title)
def GetAuthorArtist(self):

def GetAuthorArtist(self) -> str:
return (self.__AuthorArtist)
def GetItemID(self):

def GetItemID(self) -> str | int:
return (self.__ItemID)

#lend book
def ShowDetail(self):
#lend book

def ShowDetail(self) -> None:
print("ID: ", self.GetItemID())
print("Title: ", self.GetTitle())
print("Author: ", self.__AuthorArtist)


class Book(LibraryItem):
def __init__(self, t, a, i):
LibraryItem.__init__(self, t, a, i)
self.__IsRequested = False
self.__RequestedBy = 0

def ShowDetail(self):
LibraryItem.ShowDetail(self)
#print("is requested: ", self.__IsRequested)


class CD(LibraryItem):
def __init__(self, t, a, i):
LibraryItem.__init__(self, t, a, i)
self.__Genre = ""

def GetGenre(self):
return (self.__Genre)

def SetGenre(self, g):
self.__Genre = g


class Borrower:
def __init__(self, n, e):
self.__BorrowerName = n
self.__Email = e
self.__BorrowerID = random.randint(100,200)
self.__BorrowerID = random.randint(100, 200)
self.__ItemsOnLoan = 0

def GetBorrowerName(self):
return self.__BorrowerName

def GetEmail(self):
return self.__Email

def GetBorrowerID(self):
return self.__BorrowerID

def GetItemsOnLoan(self):
return self.__ItemsOnLoan

def UpdateItemsOnLoan(self):
self.__ItemsOnLoan += 1

def PrintDetail(self):
print("ID: ", self.GetBorrowerID())
print("Name: ", self.GetBorrowerName())
print("Email: ", self.GetEmail())
print(f"There are {self.__ItemsOnLoan} items borrowed.")



##Title=input("Enter book title: ")
##Author = input("Enter book author: ")
##ItemID = random.randint(10000, 50000)
Expand Down
10 changes: 5 additions & 5 deletions 27.05 Library Item Borrower.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,23 @@
import random

class LibraryItem:
def __init__(self, t,a,i):
def __init__(self, t:str,a:str,i:str|int):
self.__Title = t
self.__AuthorArtist = a
self.__ItemID = i
self.__OnLoan = False
self.__DueDate = datetime.date.today()

def GetTitle(self):
def GetTitle(self) -> str:
return (self.__Title)
def GetAuthorArtist(self):
def GetAuthorArtist(self) -> str:
return (self.__AuthorArtist)
def GetItemID(self):
def GetItemID(self) -> str | int:
return (self.__ItemID)

#lend book

def ShowDetail(self):
def ShowDetail(self) -> None:
print("ID: ", self.GetItemID())
print("Title: ", self.GetTitle())
print("Author: ", self.__AuthorArtist)
Expand Down
4 changes: 2 additions & 2 deletions 27.06 Library Items.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def GetItemID(self):
def Borrow(self, bid):
self.__BorrowerID = bid
self.__OnLoan = True
self.__DueDate = datetime.date.today()+7
self.__DueDate = datetime.date.today() + datetime.timedelta(weeks=1)
def Return(self):
self.__BorrowerID = 0
self.__OnLoan = False
Expand Down Expand Up @@ -76,7 +76,7 @@ def PrintDetail(self):
print(f"There are {self.__ItemsOnLoan} items borrowed.")

def Menu():
pass
raise NotImplementedError()

##Title=input("Enter book title: ")
##Author = input("Enter book author: ")
Expand Down
20 changes: 4 additions & 16 deletions 27.07 Library with Utility.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def GetItemID(self):
def Borrow(self, bid):
self.__BorrowerID = bid
self.__OnLoan = True
self.__DueDate = datetime.date.today()+7
self.__DueDate = datetime.date.today()+datetime.timedelta(weeks=1)
def Return(self):
self.__BorrowerID = 0
self.__OnLoan = False
Expand Down Expand Up @@ -77,7 +77,7 @@ def PrintDetail(self):

def Menu():
choice = 't'
while choice not in (0,1,2,3,4,5,6,7,8,9):
while choice not in range(0,10):
print("1 – Add a new borrower")
print("2 – Add a new book")
print("3 – Add a new CD")
Expand Down Expand Up @@ -107,20 +107,8 @@ def main():
name = input("Enter name of borrower ")
email = input("Enter email of borrower ")
Borrowers.append(Borrower(name,email))
elif choice ==2:
pass
elif choice==3:
pass
elif choice==4:
pass
elif choice==5:
pass
elif choice==6:
pass
elif choice==7:
pass
elif choice==8:
pass
elif choice in range(2, 9):
print("Not implemented yet")
elif choice==9:
print(Borrowers[0].GetBorrowerName())
choice = Menu()
Expand Down
17 changes: 10 additions & 7 deletions 9 - 17-9 - car record using classes.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import pickle


class CarRecord:
def __init__(self):
self.VehicleID = ""
Expand All @@ -8,11 +9,12 @@ def __init__(self):
self.EngineSize = 0
self.PurchaseSize = 0.00

Car = [None]*10 # Create an empty array of 10 objects called Car

Car = [CarRecord()] * 10 # Create an empty array of 10 objects called Car

for i in range(10):
ThisCar = CarRecord() # Create an instance of class CarRecord named ThisCar
Car[i] = ThisCar # Assign reference of this Car object to array location
ThisCar = CarRecord() # Create an instance of class CarRecord named ThisCar
Car[i] = ThisCar # Assign reference of this Car object to array location

Car[1].EngineSize = 2500
Car[5].EngineSize = 3000
Expand All @@ -36,17 +38,17 @@ def __init__(self):
Car[1].EngineSize = 3500
Car[5].EngineSize = 8000

Car2 = [None]
Car2 = [CarRecord()] * 10
#for i in range(10):
#ThisCar = CarRecord()
#Car2[i] = ThisCar
#ThisCar = CarRecord()
#Car2[i] = ThisCar

CarFile = open('Cars.DAT', 'rb')

while True:
try:
Car2.append(pickle.load(CarFile))
except (EOFError):
except EOFError:
break

CarFile.close()
Expand All @@ -55,5 +57,6 @@ def __init__(self):
for i in range(10):
print(Car2[i].EngineSize)
print("")

#print(Car[1].EngineSize)
#print(Car[5].EngineSize)
87 changes: 36 additions & 51 deletions A2 Modular Search and Sort.py
Original file line number Diff line number Diff line change
@@ -1,92 +1,77 @@
import random

SIZE = 7
data = [random.randint(1,20) for x in range (SIZE)]
data = [random.randint(1, 20) for x in range(SIZE)]


#print(data)

def LinearSearch(data):
def LinearSearch(data: list) -> None:
key = int(input('Enter value to search'))
found = False

for x in range (SIZE):
for x in range(SIZE):
if key == data[x]:
print("found at location: ", x)
found = True

if found==False:
if found == False:
print('value not found')


def BubbleSort(data):
temp = 0
n = 30 -1
for i in range (SIZE):
n = 30 - 1
for i in range(SIZE):
for j in range(n):
if data[j]>data[j+1]:
if data[j] > data[j + 1]:
temp = data[j]
data[j] = data [j+1]
data [j+1] = temp
n = n -1
data[j] = data[j + 1]
data[j + 1] = temp
n = n - 1


def InsertionSort(data):
ItemToBeInserted = 0
CurrentItem = 0
index = 0

for index in range(len(data)):
ItemToBeInserted = data[index]
CurrentItem = index -1
while (data[CurrentItem]>ItemToBeInserted and
CurrentItem>-1):
data[CurrentItem+1]=data[CurrentItem]
CurrentItem-=1
data[CurrentItem+1] = ItemToBeInserted
CurrentItem = index - 1
while (data[CurrentItem] > ItemToBeInserted and
CurrentItem > -1):
data[CurrentItem + 1] = data[CurrentItem]
CurrentItem -= 1
data[CurrentItem + 1] = ItemToBeInserted
#print(data)

def BinarySearch(data):

def BinarySearch(data:list) -> None:
lowerBound = 0
upperBound = len(data)-1

upperBound = len(data) - 1
mid = -1

key = int(input("Enter value to search: "))
found = False
searchFailed = False
while not searchFailed and not found:

while (not found) and lowerBound <= upperBound:
mid = lowerBound + (upperBound - lowerBound) // 2
if data[mid]==key:

if data[mid] == key:
#print('found at location : ', mid)
found = True
elif data[mid]>key:
upperBound = mid - 1
elif data[mid] > key:
upperBound = mid - 1
else:
lowerBound = mid + 1
if lowerBound > upperBound:
print('search failed')
searchFailed = True

if found:
lowerBound = mid + 1

if found and mid != -1:
print(mid)
else:
print('value does not exist in the list')


#BubbleSort(data)
InsertionSort(data)
print(data)
BinarySearch(data)
















#LinearSearch(data)
BubbleSort(data)
print(data)
Loading