Advertisement
MNNM2021

Untitled

Nov 17th, 2023
681
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.55 KB | None | 0 0
  1. import re
  2.  
  3.  
  4. def is_valid_purchase(name, product, quantity, price):
  5.     return bool(name and product and quantity and price)
  6.  
  7.  
  8. def is_valid_name_customer(name):
  9.     pattern = re.compile(r"^\%(?P<name>[A-Z][a-z]+)\%(?:[^$\|%\.<>]+)?")
  10.     match = pattern.search(name)
  11.     return match.group("name") if match else None
  12.  
  13.  
  14. def is_valid_product(product):
  15.     if is_valid_name_customer:
  16.         pattern = re.compile(r"(?:[^\$\|\%\.\<\>]+)?\<(?P<product>\w+)\>(?:[^$\|%\.<>]+)?")   # мачнато име, но първо трябва да откаже името на купувача
  17.         match = pattern.search(product)
  18.         return match.group("product") if match else None
  19.     return None
  20.  
  21.  
  22. def is_valid_quantity(qty):
  23.     pattern = re.compile(r"(?:[^$\|%\.<>]+)?\|(?P<qty>\d+)\|(?:[^$\|%\.<>]+)?")
  24.     match = pattern.search(qty)
  25.     return match.group("qty") if match else 0
  26.  
  27.  
  28. def is_valid_price(price):
  29.     pattern = re.compile(r"\|(?P<price>\d+\.\d+)\$(?:[^$\|%\.<>]+)?")
  30.     match = pattern.search(price)
  31.     return match.group("price") if match else 0
  32.  
  33.  
  34.  
  35. total_income = 0
  36. while True:
  37.     text = input()
  38.  
  39.     if text == 'end of shift':
  40.         break
  41.  
  42.     valid_name = is_valid_name_customer(text)
  43.     valid_product = is_valid_product(text)
  44.     valid_quantity = is_valid_quantity(text)
  45.     valid_price = is_valid_price(text)
  46.  
  47.  
  48.     total_price = int(valid_quantity) * float(valid_price)
  49.     print(f"{valid_name}: {valid_product} - {total_price:.2f}")
  50.     total_income += total_price
  51.  
  52. print(f"Total income: {total_income:.2f}")
  53.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement