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

TP 2_3 Python (3)

Uploaded by

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

TP 2_3 Python (3)

Uploaded by

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

TP 2

EXO 5 :
# 1: Create a dictionary for inventory
inventory = { "Motor": [ {"vendor": "Vendor A", "quantity": 10, "price": 100},
{"vendor": "Vendor B", "quantity": 5, "price": 95} ],
"Sensor": [
{"vendor": "Vendor C", "quantity": 15, "price": 50},
{"vendor": "Vendor D", "quantity": 0, "price": 45} ],
"Battery": [{"vendor": "Vendor E", "quantity": 8, "price": 30} ]}

# 2: Function to update quantity or remove vendor if out of stock


def update_inventory(component, vendor, restock_quantity):
if component in inventory:
for item in inventory[component]:
if item["vendor"] == vendor:
item["quantity"] += restock_quantity
if item["quantity"] <= 0:
inventory[component].remove(item)
break
else:
if restock_quantity > 0:
inventory[component].append({"vendor": vendor, "quantity": restock_quantity,
"price": 0})
else:
if restock_quantity > 0:
inventory[component] = [{"vendor": vendor, "quantity": restock_quantity, "price": 0}]

# 3: Function to find all unique component names in stock


def get_unique_components():
return [component for component, vendors in inventory.items() if any(vendor["quantity"]
> 0 for vendor in vendors)]

# 4: Function to print the inventory with details


def print_inventory():
for component, vendors in inventory.items():
print(f"Component: {component}")
for vendor in vendors:
print(f" Vendor: {vendor['vendor']}, Quantity: {vendor['quantity']}, Price:
${vendor['price']}")
print()
EX 6 :
# List of log entries with details
system_logs = [
{"time": "10:00", "error_code": 404, "severity": "critical"},
{"time": "11:00", "error_code": 200, "severity": "warning"},
{"time": "12:00", "error_code": 500, "severity": "critical"},
{"time": "13:00", "error_code": 300, "severity": "info"}
]

# Count number of critical errors


critical_count = sum(1 for log in system_logs if log["severity"] == "critical")

# Add a new log entry and remove old entries


system_logs.append({"time": "14:00", "error_code": 401, "severity": "warning"})
system_logs = [log for log in system_logs if log["severity"] != "info"]
# Print logs and critical count
print("System logs:")
for log in system_logs:
print(log)
print("\nNumber of critical errors:", critical_count)

**************** TP 3 PART II ********************************


# Create a file named Library.py and define the following classes
class Book:
def __init__(self, book_id, title, author):
self.book_id = book_id
self.title = title
self.author = author
self.availability = True

def mark_as_borrowed(self):
self.availability = False

def mark_as_returned(self):
self.availability = True

class Member:
def __init__(self, member_id, name):
self.member_id = member_id
self.name = name
self.borrowed_books = []

def borrow_book(self, book):


if book.availability:
self.borrowed_books.append(book)
book.mark_as_borrowed()
print(f"{book.title} has been borrowed by {self.name}.")
else:
print(f"{book.title} is not available.")

def return_book(self, book):


if book in self.borrowed_books:
self.borrowed_books.remove(book)
book.mark_as_returned()
print(f"{book.title} has been returned by {self.name}.")
else:
print(f"{book.title} was not borrowed by {self.name}.")

class Library:
def __init__(self):
self.books = []
self.members = []

def add_book(self, book):


self.books.append(book)

def add_member(self, member):


self.members.append(member)

def find_book(self, book_id):


for book in self.books:
if book.book_id == book_id:
return book
return None

def list_available_books(self):
available_books = [book for book in self.books if book.availability]
print("Available Books:")
for book in available_books:
print(f"{book.book_id}: {book.title} by {book.author}")
# Now, create another file named main.py and write the following code:
from library import Book, Member, Library

def main():
library = Library()

while True:
print("\nLibrary Management System")
print("1. Add Book")
print("2. Add Member")
print("3. Borrow Book")
print("4. Return Book")
print("5. List Available Books")
print("6. Exit")
choice = input("Enter your choice: ")

if choice == "1":
book_id = input("Enter Book ID: ")
title = input("Enter Book Title: ")
author = input("Enter Book Author: ")
book = Book(book_id, title, author)
library.add_book(book)
print("Book added successfully.")

elif choice == "2":


member_id = input("Enter Member ID: ")
name = input("Enter Member Name: ")
member = Member(member_id, name)
library.add_member(member)
print("Member added successfully.")

elif choice == "3":


member_id = input("Enter Member ID: ")
book_id = input("Enter Book ID: ")
member = next((m for m in library.members if m.member_id == member_id), None)
book = library.find_book(book_id)
if member and book:
member.borrow_book(book)
else:
print("Invalid member or book ID.")
elif choice == "4":
member_id = input("Enter Member ID: ")
book_id = input("Enter Book ID: ")
member = next((m for m in library.members if m.member_id == member_id), None)
book = library.find_book(book_id)
if member and book:
member.return_book(book)
else:
print("Invalid member or book ID.")

elif choice == "5":


library.list_available_books()

elif choice == "6":


print("Exiting system.")
break

else:
print("Invalid choice. Please try again.")

if __name__ == "__main__":
main()

You might also like