Beispiele für Python-Klassen
Einige verwandte Python-Klassen wurden hier verwendet, um die textbasierte "Kuchenladen-Anwendung" zu entwickeln.
Projektdetails
- Zeige die Kuchenauswahl des Ladens mit Details an.
- Fügen Sie einen oder mehrere Kuchen zum Warenkorb hinzu, um sie zu kaufen.
- Entfernen Sie einen oder mehrere Kuchen aus dem Warenkorb
- Bestätigen Sie die Bestellung
- Bestellen Sie die Bestellung ab
- Schließe das Programm
Voraussetzungen
- Eine Python 3.8+ Version ist erforderlich, um das Betriebssystem zu installieren und mit der Projektarbeit zu beginnen.
- Das grundlegende Wissen über die objektorientierte Programmierung in Python erfordert ein richtiges Verständnis des in diesem Tutorial verwendeten Skripts.
Implementierung der “Kuchenladen-Anwendung”
Drei Klassen werden verwendet, um die Funktionen dieser Anwendung zu implementieren. Diese sind „shop“, „order“ und „customer“. Die „shop“-Klasse ist die Elternklasse, die verwendet wird, um das Hauptmenü der Anwendung anzuzeigen, die Kuchenauswahl des Shops anzuzeigen und zu überprüfen, ob der vom Benutzer ausgewählte Kuchen im Shop vorhanden ist. Die „order“-Klasse ist eine Kindklasse, die durch Vererbung von der „shop“-Klasse erstellt wird, und sie wird verwendet, um Kuchenartikel in den Warenkorb hinzuzufügen, Kuchenartikel aus dem Warenkorb zu entfernen und die ausgewählten Artikel im Warenkorb anzuzeigen. Die “Kunden”-Klasse ist eine weitere Kindklasse, die durch Vererbung von der “Bestell”-Klasse erstellt wird, und sie wird verwendet, um die Kaufdetails mit den Kundeninformationen anzuzeigen. Das folgende Diagramm zeigt, wie diese einfache Anwendung funktionieren wird:
Produktinformationen speichern
Jede beliebte Datenbankserveranwendung kann mit der Python-Anwendung verbunden werden, um Daten zu speichern. Allerdings wurde in dieser Anwendung kein Datenbankserver verwendet, um es einfach zu halten, und eine Textdatei wurde verwendet, um die Daten zu speichern. Erstellen Sie eine Textdatei mit dem Namen products.txt und fügen Sie die folgenden Produktinformationen in die Datei ein, bevor Sie mit dem nächsten Teil dieser Anwendung beginnen. Der Benutzer wird das Kuchenprodukt in dieser Datei auswählen, um es zum Kauf in den Warenkorb hinzuzufügen. Jedes Feld ist hier durch ein Komma getrennt:
produkte.txt
Id, Name,Price,Making date,expire date
01, Chocolate Cake,25, 01-06-22, 07-06-22
02, Coffee Cake,22, 02-06-22, 10-06-22
03, Vanilla Cake,30, 03-06-22, 11-06-22
04, Mud Cake,35, 02-06-22, 09-06-22
05, Straberry Cake,40,03-06-22, 12-06-22Importieren Sie die erforderlichen Module
Drei Module wurden in dieser Anwendung verwendet, um eine Zufallszahl zu generieren, das aktuelle Datum zu lesen und farbenfrohen Text im Terminal zu erstellen. Erstellen Sie eine Python-Datei mit dem Namen shop.py und fügen Sie das folgende Skript am Anfang der Datei hinzu, um die Module zu importieren. Das random Modul wird die Bestellnummer generieren. Das date Modul wird das aktuelle Systemdatum lesen. Und das colored Modul wird den farbenfrohen Text erzeugen.
#Import required modules for the shop Project
import random
from datetime import date
from colored import fg, bg, attrErstelle die Klasse „Shop“
Nachdem die erforderlichen Module importiert wurden, fügen Sie das Skript hinzu, um die “shop ”-Klasse in die shop.py-Datei zu definieren. Dies ist die Basisklasse dieser Anwendung, die vier Klassenvariablen und drei Methoden enthält. Der Zweck dieser Variablen und Methoden wird unten erwähnt.
Variablen
Warenkorb_inhalte:
Es handelt sich um eine Listenvariable, die verwendet wird, um das vom Benutzer hinzugefügte Kuchenobjekt zu speichern. Ein neues Objekt wird zur Liste hinzugefügt, wenn ein neues Kuchenobjekt ausgewählt wird, um es zum Warenkorb hinzuzufügen, und ein vorhandenes Objekt wird entfernt, wenn der Benutzer ein Kuchenobjekt auswählt, um es aus dem Warenkorb zu entfernen. Diese Variable wird nach dem Abschluss des Kaufs oder der Stornierung des Kaufs geleert.
Warenkorb_Betrag:
Es ist eine Ganzzahlvariable, und sie wird verwendet, um die Summe des Preises des Produkts, das in den Warenkorb gelegt wurde, zu speichern. Der Wert dieser Variable wird erhöht, wenn ein neues Kuchenartikel in den Warenkorb gelegt wird, und der Wert dieser Variable wird verringert, wenn ein Kuchenartikel aus dem Warenkorb entfernt wird. Diese Variable wird nach Abschluss oder Stornierung des Kaufs auf 0 initialisiert.
Kundenbilanz:
Es handelt sich um eine Ganzzahlvariable, die verwendet wird, um den Bargeldwert zu speichern, den der Kunde hinzufügt. Der Wert dieser Variablen wird erhöht, wenn der Benutzer den Bargeldwert hinzufügt, und der Wert dieser Variablen wird verringert, wenn der Kaufvorgang erfolgreich abgeschlossen ist.
Antwort :
Es ist eine String-Variable, und sie wird verwendet, um den Eingabewert des Benutzers zu erfassen, um die bestimmte Aufgabe auszuführen.
Methoden
anzeige_menü():
Diese Methode wurde definiert, um die Menüliste der Anwendung anzuzeigen. Wenn der Benutzer „1“ eingibt, wird der Inhalt der Datei products.txt angezeigt. Wenn der Benutzer „2“ eingibt, erscheint die Eingabeaufforderung zur Eingabe des Produktnamens. Wenn der vom Benutzer angegebene Produktname in der Datei vorhanden ist, wird der Produktname zur Liste cart_items hinzugefügt und der Preis des Produkts wird mit cart_amount addiert. Wenn der Benutzer „3“ eingibt, wird die Anwendung beendet. Die Funktion fg() wurde in der Methode verwendet, um den farbigen Text im Terminal auszugeben.
anzeige_produkte():
Diese Methode wurde definiert, um die Datei products.txt zeilenweise zu lesen, jede Zeile basierend auf dem Komma mit der Funktion split() zu splitten und in einer Listenvariablen zu speichern. Anschließend wird die Listenvariable mit einer Schleife iteriert, um den Inhalt der Datei in einem menschenlesbaren Format auszugeben.
prüfe_produkte():
Diese Methode wurde definiert, um zu überprüfen, ob der vom Benutzer angegebene Produktname in der products.txt Datei existiert. Wenn der Produktname in der Datei vorhanden ist, wird der Preis dieses bestimmten Produkts mit dem Wert der Variablen cart_amount addiert, und der Wert True wird von der Funktion zurückgegeben. Die Nachricht, “Das Produkt existiert nicht.” wird ausgegeben, wenn der Produktname nicht in der Datei vorhanden ist, und der Wert False wird von der Funktion zurückgegeben. Diese Methode wird aufgerufen, wann immer ein Produktname vom Benutzer zum Warenkorb hinzugefügt wird.
Das Skript der “Shop”-Klasse ist unten angegeben:
'''
'shop' class is defined here to show the main menu, display product list,
and check the product exist in the file or not
'''
class shop: # Declare list to store the selected product
cart_items = []
# Initialize the cart amount
cart_amount = 0
# Initialize the customer balance
cust_balance = 0
# Initialize the variable that will take user's input
answer = ''
# Define function to display the main menu
def display_menu(self): print("\n%s%s%s" %(fg(150), '***Welcome to our Cake shop***', attr(0)))
print("\n%s%s" %(fg(170), '1. Display Products...'))
print("2. Select Product...")
print("3. Exit")
self.answer = input("\nType 1 or 2 or 3:")
# Define function to read and display the product from the text file
def display_products(self):
print("\nThe list of products are given below:\n")
with open('products.txt') as f: line = f.readline()
# Print the header of the file
print("Id\tName\t\tPrice\tMaking Date\tExpire Date")
while line: # Initialize counter to set the space between the fields
counter = 0
# Read each line from the file
line = f.readline()
# Split each line based on the comma (,) and store in a list
fieldList = list(line.split(","))
print('\t')
# Read each value from the list and print
for val in fieldList: if counter == 0: space=''
else: space='\t'
counter = counter + 1
if counter == 3: val = '$' + val
print(val, end=space)
# Define function to check the selected product exists in the file or not
def check_products(self, search):
# Open the file for reading
with open('products.txt') as f: # Read each line of the file
for line in f: # Split the line value based on comma(,)
fieldList = list(line.split(","))
for val in fieldList: # Check the selected product match with the value or not
if search == val.strip(): # Add the price of the product with the cart amount if the serch value found
self.cart_amount = self.cart_amount + int(fieldList[2].strip())
return True
# Print message if the selected product does not exist in the file
print("The product does not exist.")
return FalseErstelle die Klasse „Bestellung“
Nachdem Sie die “shop” Klasse hinzugefügt haben, fügen Sie das Skript hinzu, um die “order” Klasse in die shop.py Datei zu definieren. Dies ist eine untergeordnete Klasse, die von der “shop” Klasse erbt und drei Methoden enthält. Der Zweck dieser Methoden wird unten erwähnt.
Methoden
warenkorb_hinzufügen():
Diese Methode wurde definiert, um den Produktnamen zur cart_items Liste hinzuzufügen, wenn das Produkt in der products.txt Datei vorhanden ist, und eine Nachricht auszugeben, nachdem das Produkt in den Warenkorb hinzugefügt wurde. Diese Methode wird aufgerufen, wenn der Benutzer die zweite Option („Produkt auswählen…“) des Hauptmenüs durch Eingabe von „2“ oder die erste Option des zweiten Menüs („Produkt hinzufügen“) durch Eingabe von „1“ wählt.
aus_warenkorb_entfernen():
Diese Methode wurde definiert, um das Produkt aus der cart_items Liste zu entfernen, wenn der Produktname, der vom Benutzer eingegeben wurde, in den cart_items vorhanden ist. Diese Methode wird aufgerufen, wenn der Benutzer die zweite Option des zweiten Menüs ("Produkt entfernen") auswählt, indem er "2" eingibt. Nach dem Entfernen des Produkts wird der Preis des entfernten Produkts von der cart_amount Variablen abgezogen. Die Nachricht "Das Produkt existiert nicht im Warenkorb." wird ausgegeben, wenn der vom Benutzer eingegebene Produktname nicht in der cart_items Liste vorhanden ist.
warenkorb_anzeigen():
Diese Methode wurde definiert, um den Inhalt der cart_items-Liste, den Wert des cart_amount und die zweiten Menüartikel anzuzeigen, um ein Produkt hinzuzufügen oder das Produkt zu entfernen oder die Zahlung zu bestätigen oder den Kauf abzulehnen. Wenn die cart_items-Liste leer ist, wird die Nachricht „Ihr Warenkorb ist leer.“ angezeigt. Diese Methode wird aufgerufen, wenn die Aufgabe des Hinzufügens eines Produkts oder des Entfernens eines Produkts abgeschlossen ist. Diese Methode gibt die Werte der cart_items-Liste zurück, wenn der Warenkorb nicht leer ist, oder gibt 0 zurück, wenn der Warenkorb leer ist.
Das Skript der “Bestellung”-Klasse ist unten angegeben:
'''
'order' class is defined to add product into the cart, remove product
from the cart, and display the cart item
'''
class order(shop):
# Define function to add product into the cart
def add_to_cart(self, item): # Add product into the cart
self.cart_items.append(item)
print("%s is added in the cart." %(item))
# Define function to remove product from the cart
def remove_from_cart(self, obj): item = input("Enter the product name:")
if item in obj.cart_items:
# Remove product from the cart
obj.cart_items.remove(item)
print("Product is removed from the cart")
# Open the file to search the price of the product
with open('products.txt') as f: for line in f: fieldList = list(line.split(","))
for val in fieldList: if item == val.strip(): # Remove the price of the removed product from the cart amount
obj.cart_amount = obj.cart_amount - int(fieldList[2].strip())
else: print("Product does not exist in the cart.")
# Define function to display the cart items
def display_cart(self, obj): # Check the cart amount to find out the cart is empty or not
if obj.cart_amount > 0: # Display the added cart items
print("\nYou have added the following item(s) in your cart:\n")
for val in self.cart_items: print(val)
# Print the total cart amount
print("\n%s%s%d%s" %(fg(25), 'Total amount:$', obj.cart_amount, attr(0)))
# Display the second menu
print("\n1. Add Product")
print("2. Remove Product")
print("3. Confirm Payment")
print("4. Cancel")
ans = input("\nType 1 or 2 or 3 or 4:")
return ans
else: # Print message if the cart is empty
print("You cart is empty.")
return 0Erstelle die Klasse „Kunde“
Nachdem Sie die Klasse “order” hinzugefügt haben, fügen Sie das Skript hinzu, um die Klasse “customer” in die Datei shop.py zu definieren. Dies ist eine weitere Kindklasse, die von der Klasse “order” erbt und die Konstruktormethode sowie eine benutzerdefinierte Methode enthält. Der Zweck dieser Methoden wird im Folgenden erwähnt.
Methoden:
Konstruktor-Methode
Die Konstruktor-Methode wird durch __init__() definiert. Angenommen, der Benutzer wählt die dritte Option des zweiten Menüs („Zahlung Bestätigen“). In diesem Fall wird der Konstruktor der Klasse „customer“ aufgerufen, um die Kundeninformationen zum Zeitpunkt der Objekterstellung der Klasse „customer“ zu initialisieren und die Kaufaufgabe abzuschließen. Diese Methode benötigt vier Argumente: Name, Adresse, Telefon und Bargeld.
kauf_info():
Diese Methode wurde definiert, um die Kaufdetails anzuzeigen, die die Bestellnummer, das Bestelldatum, den Namen des Kunden, die Adresse des Kunden, die Telefonnummer des Kunden, eine Liste der gekauften Produkte und den Gesamtpreis aller gekauften Produkte enthalten. Hier wird die Bestellnummer mithilfe der random()-Funktion generiert. Diese Methode wird aufgerufen, wenn der vom Benutzer hinzugefügte Bargeldwert größer oder gleich dem Wert der cart_amount-Variable ist.
Das Skript der “kunde” Klasse ist unten angegeben:
'''
'customer' class id defined to display the purchase information
after confirming the payment
'''
class customer(order):
# Define constructor to initialize the customer information
def __init__(self, name, address, phone, cash): name = name
address = address
contact_no = phone
add_cash = cash
# Define function to display the purchase information with customer details
def purchase_info(self,obj): # Gnerate a random order number
order_no = random.random()*100000000
order_no = round(order_no)
# Initilize the order date
today = date.today()
order_date = today.strftime("%B %d, %Y")
# Print purchase information
print("\nYour purchase information is given below:\n")
print("Order No :%s" %order_no)
print("Order Date :%s" %order_date)
print("Customer's name :%s" %name)
print("Customer's address :%s" %address)
print("Customer's phone no :%s" %contact_no)
# Print purchased product information
print("\nPurchased product list:\n")
for val in self.cart_items: print(val)
print("\n%s%s%d%s" %(fg(25), 'Total amount:$', obj.cart_amount, attr(0)))
print("Thank you.")Objekte erstellen
Nachdem die notwendigen Klassen der Anwendung definiert wurden, fügen Sie das Skript hinzu, um Objekte zu erstellen, die die Klassenvariablen verwenden, und rufen Sie die Methoden auf, um die Implementierung der "Kuchenladen-Anwendung" abzuschließen. Zunächst wird das Objekt der "shop"-Klasse definiert, und die Methode display_menu() wird mit diesem Objekt aufgerufen, um das Hauptmenü anzuzeigen. Im Skript wurde die erste Endlosschleife verwendet, um das Hauptmenü zu Beginn der Anwendung und nach Bestätigung oder Stornierung des Kaufs anzuzeigen. Diese Schleife wird beendet, und die Anwendung wird geschlossen, wenn der Benutzer die dritte Option ("Beenden") des Hauptmenüs auswählt. Die zweite Endlosschleife wurde verwendet, um die Produkte in den Warenkorb hinzuzufügen, bis der Benutzer "none" eingibt, und zeigt das zweite Menü an, nachdem ein Produkt in den Warenkorb hinzugefügt oder entfernt wurde. Diese Schleife wird beendet, wenn der Benutzer die dritte ("Zahlung bestätigen") oder die vierte ("Abbrechen") Option des zweiten Menüs auswählt. Angenommen, der Benutzer wählt die dritte Option des zweiten Menüs und der von ihm hinzugefügte Geldbetrag liegt unter dem Wert von cart_amount. Dann wird das zweite Menü erneut angezeigt, und es erscheint die Nachricht: "Sie haben nicht genügend Guthaben." Sowohl die Werte von cart_items als auch cart_amount werden nach der Beendigung der zweiten Endlos-Schleife gelöscht, um den nächsten Kauf zu ermöglichen. Das Skript für diesen Teil ist unten angegeben:
Declare object of the 'shop' class
objShop = shop()
Declare the infinite loop to display the menu repeatedly
until the user presses '3'
while True: # Display the main menu
objShop.display_menu()
# Set initial value for the remove_item
remove_item = False
# Display the main menu if the user presses '1'
if objShop.answer == '1': objShop.display_products()
# Display the purchase option if the user presses '2'
elif objShop.answer == '2': # Declare object of the 'order' class
objOrder = order()
# Declare the infinite loop to display the second menu repeatedly
# until the user presses '3' or '4'
while True: # Take the product name to add into the cart if the value of remove_item is False
if remove_item == False: item = input("\nType the product name:")
if item == 'none' : # Display the cart after adding or removing the product
return_val = objOrder.display_cart(objShop)
# Terminate from the loop if the cart is empty
if return_val == 0: break
elif return_val == '1': item = input("Type the product name:")
# Check the product exists in the products.txt file or not
pro_exist = objShop.check_products(item)
# Add the products into the cart if the product exists
if pro_exist == True: objOrder.add_to_cart(item)
remove_item = False
elif return_val == '2': # Remove the selected product from the cart
return_val = objOrder.remove_from_cart(objShop)
remove_item = True
elif return_val == '3': # Take customer's information
name = input("Enter your name:")
address = input("Enter your address:")
contact_no = input("Enter your contact number:")
cash = int(input("Add cash: $"))
# Add the cash value with the customer's current balance
objShop.cust_balance = objShop.cust_balance + cash
# Check the balance of the customer is less than the cart amount ot not
if objShop.cust_balance < objShop.cart_amount: print("You have not enough balance.")
else: # Create object of the 'customer' class
objCustomer = customer(name, address, contact_no, cash)
# Print the purchase information
objCustomer.purchase_info(objShop)
# Deduct the purchase amount from the customer's balance
objShop.cust_balance = cash - objShop.cart_amount
break
else: # Print message if the customer cancels the purchase
print("You have cancelled your purchase.")
break
else: # Add the products into the cart if the product exists
pro_exist = objShop.check_products(item)
if pro_exist == True: objOrder.add_to_cart(item)
print("Type 'none' to stop adding product")
# Clear the cart list after purchased or cancelled
objShop.cart_items.clear()
# Clear the cart amount after purchased or cancelled
objShop.cart_amount = 0
# Terminate from the application if the users presses '3'
elif objShop.answer == '3': print("\nTerminated from the application.")
exit()Anwendungsausgabe
Nachdem Sie alle Skripte nacheinander in die shop.py Datei hinzugefügt haben, können Sie überprüfen, ob die Anwendung korrekt funktioniert oder nicht. Die Verwendung dieser Anwendung wird in diesem Teil des Tutorials gezeigt.
Die Anwendung ausführen
Zunächst muss der Benutzer das Terminal öffnen und zu dem Speicherort gehen, an dem sich die products.txt und shop.py Dateien befinden. Sie müssen diese Dateien am selben Speicherort ablegen, um die Ausgabe korrekt zu erhalten. Führen Sie den folgenden Befehl aus, um die Anwendung auszuführen:
python3 shop.pyDie folgende Ausgabe erscheint nach der Ausführung des vorherigen Befehls. Dies ist das Hauptmenü dieser Anwendung. Der Benutzer kann eine der drei im Ausgang angezeigten Optionen auswählen, indem er “1 ” oder “2 ” oder “3 ” eingibt. Die Liste der Produkte wird angezeigt, wenn der Benutzer “1 ” eingibt. Die Eingabeaufforderung zur Eingabe des Produktnamens erscheint, wenn der Benutzer “2 ” eingibt. Die Anwendung wird geschlossen, wenn der Benutzer “3 ” eingibt. Das Menü erscheint erneut, wenn der Benutzer ein anderes Zeichen eingibt.
Produkte anzeigen
Die folgende Ausgabe erscheint, wenn der Benutzer “1 ” eingibt. Der Inhalt der products.txt Datei wurde in dieser Ausgabe angezeigt. Der Benutzer kann beliebige Kuchennamen auswählen, die in der Ausgabe angezeigt werden, um sie zum Warenkorb hinzuzufügen, und der Benutzer muss die zweite Option des Menüs auswählen, um die Aufgabe auszuführen.
Produkt über das Hauptmenü in den Warenkorb hinzufügen
Es gibt zwei Möglichkeiten in der Anwendung, das Produkt zum Warenkorb hinzuzufügen. Der erste Weg besteht darin, die zweite Option im Hauptmenü auszuwählen. Die folgende Ausgabe erscheint, wenn der Benutzer “2 ” eingibt. Der Benutzer muss den Namen eines beliebigen Kuchenartikels eingeben, der in der Datei vorhanden ist, um ihn zum Warenkorb hinzuzufügen.
Die folgende Ausgabe wird angezeigt, wenn der Benutzer „Mud Cake“ eingibt, der in der Produktliste vorhanden ist. Die Ausgabe zeigt, dass das Produkt zum Warenkorb hinzugefügt wurde, und der Benutzer kann ein weiteres Produkt hinzufügen, indem er den Produktnamen erneut eingibt. Wenn der Benutzer kein Produkt hinzufügen möchte, muss er „keins“ eingeben.
Die folgende Ausgabe erscheint, wenn ein weiteres Produkt mit dem Namen „Kaffeekuchen“ hinzugefügt wird:
Die folgende Ausgabe erscheint, wenn der Wert „none“ als Eingabewert eingegeben wird. Die Liste der Artikel im Warenkorb wird in der Ausgabe angezeigt. Zwei Kuchenartikel wurden hinzugefügt: „Mud Cake“ und „Coffee Cake“. Der Preis des „Mud Cake“ beträgt 35 $ und der „Coffee Cake“ kostet 22 $. Der Gesamtpreis der Kuchen beträgt 35 $+ 22 $= 57 $, wie in der Ausgabe angezeigt. Das zweite Menü wurde nach der Anzeige der Warenkorbinformationen angezeigt. Der Benutzer kann über dieses Menü Produkte hinzufügen, Produkte entfernen, die zum Warenkorb hinzugefügten Produkte kaufen und den Kauf stornieren.
Produkt über das zweite Menü in den Warenkorb legen
Die folgende Ausgabe erscheint, wenn der Benutzer “2 ” eingibt. Der Benutzer muss den Namen eines beliebigen Kuchenartikels, der in der Datei existiert, eingeben, um ihn zum Warenkorb hinzuzufügen.
Die folgende Ausgabe erscheint, nachdem "Vanillekuchen" als Eingabewert eingegeben wurde. Der Benutzer kann weitere Artikel zum Warenkorb hinzufügen, indem er erneut den Produktnamen eingibt. Wenn der Benutzer keine weiteren Produkte hinzufügen möchte, muss er "keine" eingeben, um das Hinzufügen des Produkts zum Warenkorb zu stoppen.
Die folgende Ausgabe erscheint, nachdem Sie “none” als Eingabewert eingegeben haben. Die Ausgabe zeigt, dass das neue Produkt “Vanillekuchen” zum Warenkorb hinzugefügt wurde und der Preis des “Vanillekuchens” dem Warenkorb-Betrag hinzugefügt wurde. Der Gesamtbetrag beträgt jetzt $57 + $30=$87. Das zweite Menü ist erneut erschienen. Der Zweck dieses Menüs wurde zuvor erklärt.
Produkt aus dem Warenkorb entfernen
Die folgende Ausgabe erscheint, wenn der Benutzer “2” als Eingabewert eingibt. Der Benutzer muss den Namen eines Kuchenartikels eingeben, der sich im Warenkorb befindet, um ihn daraus zu entfernen. Wenn der Benutzer einen Wert eingibt, der sich nicht im Warenkorb befindet, wird eine Fehlermeldung ausgegeben.
Die folgende Ausgabe erscheint, wenn der Benutzer "Schokoladenkuchen" als Eingabewert eingibt, der in der products.txt-Datei vorhanden ist, jedoch nicht im Warenkorb. Daher ist die Fehlermeldung "Produkt befindet sich nicht im Warenkorb." in der Ausgabe erschienen, und es wurde kein Artikel zum Warenkorb hinzugefügt oder daraus entfernt. Der Gesamtbetrag des Warenkorbs hat sich ebenfalls nicht geändert.
Die folgende Ausgabe erscheint, wenn der Benutzer "Kaffeekuchen" als Eingabewert eingibt, der im Warenkorb vorhanden ist. Die Erfolgsnachricht, "Produkt wurde aus dem Warenkorb entfernt", wurde gedruckt. Die Ausgabe zeigt auch, dass "Kaffeekuchen" aus dem Warenkorb entfernt wurde und der Preiswert dieses Artikels von dem Warenkorbwert abgezogen wurde. Der Preis für den "Kaffeekuchen" beträgt 22 $. Daher beträgt der Gesamtbetrag des Warenkorbs jetzt 87 $- 22 $= 65 $.
Die folgende Ausgabe erscheint, wenn alle Artikel aus dem Warenkorb entfernt werden. Die Ausgabe zeigt zwei Nachrichten. Eine ist, um das letzte Produkt zu entfernen, und die andere informiert den Benutzer, dass der Warenkorb jetzt leer ist. Da sich kein Produkt mehr im Warenkorb befindet, ist das zweite Menü verschwunden, und das Hauptmenü ist wieder erschienen.
Bezahlung vornehmen
Die dritte Option des zweiten Menüs wird verwendet, um den Kauf zu bestätigen, indem die Informationen des Kunden und der Warenkorbwert hinzugefügt werden. Die folgende Ausgabe erscheint, wenn der Benutzer “3 ” eingibt, um die dritte Option des zweiten Menüs auszuwählen, nachdem einige Kuchenartikel in den Warenkorb gelegt wurden. Die Ausgabe zeigt, dass zwei Kuchenartikel in den Warenkorb gelegt wurden und der Gesamtpreis der Kuchen 60 $beträgt. Die Eingabeaufforderung zur Erfassung des Namens des Kunden ist nach Eingabe des Wertes “3 ” erschienen. Als Nächstes erscheinen weitere Eingabeaufforderungen, um andere Informationen des Kunden und den Bargeldbetrag für den Kauf des Produkts hinzuzufügen.
Im folgenden Output wurden der Name, die Adresse, die Telefonnummer des Kunden und der Bargeldbetrag hinzugefügt. Aber der hinzugefügte Bargeldbetrag ist geringer als der Gesamtpreis der Produkte. Der Gesamtbetrag des Warenkorbs betrug 60 Dollar, und 45 Dollar wurden als Bargeldwert hinzugefügt. Aus diesem Grund erschien die Nachricht: "Sie haben nicht genug Guthaben." Die Bestellung wurde storniert, indem der Warenkorb geleert wurde. Das Hauptmenü erschien erneut.
Die folgende Ausgabe erscheint, wenn das vom Benutzer hinzugefügte Bargeld gleich oder größer als der Gesamtbetrag des Warenkorbs ist. Hier beträgt der Gesamtpreis des Warenkorbs 35 Dollar, und der Benutzer hat 100 Dollar als Bargeldwert hinzugefügt, was größer als der Gesamtpreis ist. Die Ausgabe zeigt auch, dass eine Zufallszahl als Bestellnummer generiert wurde und das aktuelle Systemdatum als Bestelldatum ausgedruckt wurde. Das Hauptmenü ist erneut für den nächsten Einkauf erschienen. Der aktuelle Kontostand des Benutzers beträgt 100 Dollar - 35 Dollar=65 Dollar. Wenn derselbe Benutzer erneut einen Kuchenartikel im Shop kauft, wird der Kaufbetrag vom aktuellen Kontostand des Benutzers abgezogen.
Die folgende Ausgabe erscheint, wenn der Benutzer erneut kauft und der Kaufbetrag weniger als sein aktuelles Guthaben beträgt. Laut der Ausgabe wurden zwei Kuchenartikel in den Warenkorb gelegt und der Gesamtpreis der Kuchen beträgt 47 $. Der Benutzer hat 0 $Bargeld hinzugefügt, aber das aktuelle Guthaben des Kunden beträgt 65 $. Daher wurde die Zahlung erfolgreich abgeschlossen und die Nachricht "Danke" wurde ausgedruckt. Das aktuelle Guthaben des Benutzers beträgt 65 $- 47 $= 18 $.
Wenn derselbe Benutzer erneut einen Artikel zum Warenkorb hinzufügt und der Gesamtpreis des Artikels geringer ist als das aktuelle Guthaben des Benutzers, dann erscheint die folgende Ausgabe. Das aktuelle Guthaben des Benutzers beträgt nach der letzten Transaktion 18 $, aber der Gesamtpreis des Produkts beträgt 30 $. Daher wird die Nachricht „Sie haben nicht genug Guthaben.“ gedruckt und die Bestellung wurde storniert, indem der Warenkorb geleert wurde.
Die folgende Ausgabe wird erscheinen, wenn der Benutzer 12 $zu den 18 $hinzufügt, um den "Vanillekuchen" für 30 $zu kaufen. Der aktuelle Kontostand des Benutzers beträgt nach dem Kauf 0 $.
Zahlung stornieren
Der Benutzer kann die Bestellung nach dem Hinzufügen von Artikeln zum Warenkorb abbrechen, indem er die vierte Option des zweiten Menüs auswählt oder alle Artikel aus dem Warenkorb entfernt. Die folgende Ausgabe erscheint, wenn der Benutzer die vierte Option des zweiten Menüs mit “4 ” auswählt. Die Nachricht „Sie haben Ihren Einkauf abgebrochen.“ wurde beim Abbrechen der Bestellung ausgegeben. Der Weg zum Abbrechen der Bestellung durch das Entfernen aller Artikel aus dem Warenkorb wurde bereits gezeigt. Das Hauptmenü erscheint nach dem Abbrechen der Bestellung.
Anwendung schließen
Die Anwendung kann geschlossen werden, indem die dritte Option im Hauptmenü ausgewählt wird. Folgende Ausgabe erscheint, wenn der Benutzer “3 ” eingibt, um die Anwendung zu schließen. Die Anwendung wurde mit der Nachricht „Von der Anwendung beendet“ beendet.
Einschränkungen dieser Anwendung
Der Weg, eine sehr einfache textbasierte Anwendung mit Python-Klassen zu implementieren, wurde in diesem Tutorial gezeigt. Aber diese Anwendung hat einige Einschränkungen, die unten aufgeführt sind:
- Keine Auftrags- oder Kundeninformationen werden dauerhaft gespeichert. Die Anwendung muss Aufzeichnungen über die vorherigen Verkäufe führen. Zwei weitere Textdateien können erstellt werden, um die Auftrags- und Kundeninformationen zu speichern.
- In dieser Anwendung wird kein Bestandsverzeichnis geführt, was ein wichtiger Teil der Shop-Anwendung ist. Wenn ein Produkt nicht auf Lager ist, sollte eine Nachricht an den Benutzer übermittelt werden.
- Wenn der Benutzer dasselbe Produkt mehrfach hinzufügt, wird jedes Produkt separat hinzugefügt, was ineffizient ist. Es ist wichtig, die Anzahl jedes Produkts im Warenkorb zu zählen, wenn dasselbe Produkt mehrmals hinzugefügt wird.
- Es gibt keine Möglichkeit, alle Artikel aus dem Warenkorb mit einem einzigen Befehl zu entfernen, ohne die Bestellung zu stornieren. Der Benutzer muss jeden Artikel einzeln entfernen, um den Warenkorb zu leeren.
- Der verbleibende Kundenbalance wird nach Abschluss der Zahlung der Bestellung nicht angezeigt. Es wird dem Benutzer helfen, Bargeld für die nächste Bestellung hinzuzufügen.
***Die Leser dieses Tutorials werden versuchen, die oben genannten Funktionen umzusetzen, um ihre Programmierfähigkeiten zu entwickeln und die Anwendung effizienter für das Lernen zu gestalten.
Video-Tutorial zu diesem Thema
Fazit
Die Richtlinien zur Implementierung einer einfachen textbasierten Python-Anwendung wurden in diesem Tutorial für anfängliche Python-Nutzer bereitgestellt. Die grundlegenden Funktionen der Shop-Anwendung werden in diesem Tutorial verwendet, wie z.B. Produktliste, zum Warenkorb hinzufügen, aus dem Warenkorb entfernen, Zahlungssystem und Zahlung stornieren. Zur Vereinfachung haben wir hier eine Textdatei verwendet, um die Daten dauerhaft zu speichern. Aber jede Standard-Datenbankanwendung, wie SQLite und MySQL, kann verwendet werden, um die Anwendungsdaten effizienter zu verwalten.





















