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

TP 2_3 Python (3)

Uploaded by

bedairiainel
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
0% found this document useful (0 votes)
6 views

TP 2_3 Python (3)

Uploaded by

bedairiainel
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/ 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