Przykłady klas Pythona

Przykłady klas Pythona
Python to bardzo popularny język programowania do tworzenia różnych rodzajów aplikacji, takich jak aplikacje tekstowe, aplikacje komputerowe, aplikacje internetowe itp. Python obsługuje zarówno programowanie strukturalne, jak i programowanie obiektowe. Ten samouczek ma na celu nauczenie, jak korzystać z klas Pythona, pokazując prawdziwy przykład klas Pythona.

Niektóre powiązane klasy Pythona zostały użyte do opracowania „aplikacji do sklepu z ciastami” tutaj.

Funkcje projektu

  • Wyświetl listę ciast w sklepie ze szczegółami
  • Dodaj jeden lub więcej ciast do koszyka, aby kupić
  • Usuń jedno lub więcej ciast z wózka
  • Potwierdzić zamówienie
  • Anuluj zamówienie
  • Zamknij program

Wymagania wstępne

  • Python 3.Wersja 8+ jest wymagana do zainstalowania w systemie operacyjnym w celu rozpoczęcia pracy projektu.
  • Podstawowa wiedza na temat programowania obiektowego Pythona będzie wymagała odpowiedniego zrozumienia skryptu użytego w tym samouczku.

Wdrożenie „Aplikacji do sklepu z ciastami”

Do wdrożenia funkcjonalności tej aplikacji zostaną wykorzystane trzy klasy. To są "sklep”,„zamówienie", I "klient". „„sklep„Klasa to klasa nadrzędna, która zostanie użyta do wyświetlania menu głównego aplikacji, wyświetlania listy ciastek sklepu i sprawdzenia, czy ciasto wybrane przez użytkownika istnieje w sklepie. „„zamówienie„Klasa to klasa dziecięca, która zostanie utworzona przez dziedziczenie po„sklep”Klasa i zostanie użyta do dodawania elementów ciasta do koszyka, usuwania ciasta z wózka i wyświetlania wybranych elementów wózka. „„klient„Klasa to kolejna klasa dziecięca, która zostanie utworzona przez dziedziczenie po„zamówienie”Klasa i zostanie wykorzystana do wyświetlania szczegółów zakupu z informacjami o kliencie. Poniższy schemat pokazuje, jak będzie działać ta prosta aplikacja:

Przechowuj informacje o produkcie

Każda popularna aplikacja serwera bazy danych można dołączyć do aplikacji Python do przechowywania danych. Jednak w tej aplikacji nie użyto żadnego serwera bazy danych, aby uprościć, a do przechowywania danych użyto pliku tekstowego. Utwórz plik tekstowy o nazwie produkty.tekst i dodaj następujące informacje o produkcie do pliku przed rozpoczęciem następnej części tej aplikacji. Użytkownik wybierze element ciasta w tym pliku, aby dodać do koszyka w celu zakupu. Każde pole jest oddzielone przecinkiem tutaj:

produkty.tekst

Identyfikator, nazwa, cena, data uczynienia, data wygaśnięcia
01, ciasto czekoladowe, 25, 01-06-22, 07-06-22
02, ciasto kawowe, 22, 02-06-22, 10-06-22
03, ciasto waniliowe, 30, 03-06-22, 11-06-22
04, ciasto błotne, 35, 02-06-22, 09-06-22
05, Cake Straberry, 40,03-06-22, 12-06-22

Zaimportuj niezbędne moduły

W tej aplikacji użyto trzech modułów do generowania liczby losowej, odczytania bieżącej daty i utworzenia kolorowego tekstu w terminalu. Utwórz plik Python o nazwie sklep.py i dodaj następujący skrypt na początku pliku, aby zaimportować moduły. losowy Moduł wygeneruje numer zamówienia. data Moduł odczytuje bieżącą datę systemu. I kolorowy Moduł wygeneruje kolorowy tekst.

#Wymagane moduły dla projektu sklepu
Import losowy
Od daty datetime daty importu
z kolorowego importu FG, BG, attr

Utwórz klasę „sklepu”

Po zaimportowaniu niezbędnych modułów dodaj skrypt, aby zdefiniować „sklep”Klasa do sklep.py plik. Jest to klasa podstawowa tej aplikacji, która zawiera cztery zmienne klasy i trzy metody. Cel tych zmiennych i metody są wymienione poniżej.

Zmienne

CART_ITEMS:

Jest to zmienna listy i zostanie użyta do przechowywania elementu ciasta dodanego przez użytkownika. Nowy element zostanie dołączony do listy, gdy zostanie wybrany nowy element ciasta do dodania do koszyka, a istniejący element zostanie usunięty, jeśli użytkownik wybierze element ciasta do usunięcia z koszyka. Ta zmienna zostanie wyczyszczona po zakończeniu zakupu lub anulowaniu zakupu.

cart_amount:

Jest to zmienna liczb całkowita i zostanie użyta do przechowywania suma ceny produktu dodanej do koszyka. Wartość tej zmiennej zostanie zwiększona, gdy nowy element ciasta zostanie dodany do koszyka, a wartość tej zmiennej zostanie zmniejszona, gdy element ciasta zostanie usunięty z wózka. Ta zmienna zostanie zainicjowana do 0 po zakończeniu lub anulowaniu zakupu.

Cust_Balance:

Jest to zmienna liczb całkowita i będzie używana do przechowywania wartości gotówkowej dodanej przez klienta. Wartość tej zmiennej zostanie zwiększona, gdy użytkownik doda wartość gotówką, a wartość tej zmiennej zostanie zmniejszona po zakończeniu zadania zakupu.

odpowiedź:

Jest to zmienna ciągów i zostanie użyta do przyjmowania wartości wejściowej użytkownika do wykonania konkretnego zadania.

Metody

display_menu ():

Ta metoda została zdefiniowana, aby pokazać listę menu aplikacji. Jeśli użytkownicy typu „1”, Potem treść produkty.tekst Plik zostanie wyświetlony. Jeśli użytkownicy typu „2”, Wtedy pojawi się monit wejściowy do przyjęcia nazwy produktu. Jeśli nazwa produktu podana przez użytkownika istnieje w pliku, nazwa produktu zostanie dodana do cart_items lista, a cena produktu zostanie dodana z cart_amount. Jeśli użytkownicy typu „3”, Wówczas aplikacja zostanie zakończona. Funkcja FG () została użyta w metodzie do drukowania kolorowego tekstu w terminalu.

display_products ():

Ta metoda została zdefiniowana w celu odczytania produkty.tekst Linia plików po linii, podziel każdą linię na podstawie przecinka za pomocą funkcji split () i przechowuj ją w zmiennej listy. Następnie zmienna listy zostanie iterowana przy użyciu pętli do wydrukowania zawartości pliku w formacie czytelnym człowieka.

Check_Products ():

Ta metoda została zdefiniowana, aby sprawdzić, czy nazwa produktu pobrana od użytkownika istnieje w produkty.tekst plik. Jeśli nazwa produktu istnieje w pliku, cena tego konkretnego produktu zostanie dodana o wartości cart_amount zmienna i prawda Wartość zostanie zwrócona z funkcji. Wiadomość, "Produkt nie istnieje.”Zostanie wydrukowane, jeśli nazwa produktu nie istnieje w pliku, a FAŁSZ Wartość zostanie zwrócona z funkcji. Ta metoda będzie wywoływana za każdym razem, gdy nazwa produktu jest pobierana od użytkownika do dodania do koszyka.

Skrypt „sklep„Klasa znajduje się poniżej:

"
Klasa „sklep” jest tutaj zdefiniowana, aby wyświetlić menu główne, wyświetlaj listę produktów,
i sprawdź, czy produkt istnieje w pliku, czy nie
"
Sklep klasowy:
# Deklaruj listę do przechowywania wybranego produktu
cart_items = []
# Zainicjuj kwotę koszyka
cart_amount = 0
# Zainicjuj saldo klienta
Cust_Balance = 0
# Zainicjuj zmienną, która przyjmie dane wejściowe użytkownika
Odpowiedź = "
# Zdefiniuj funkcję, aby wyświetlić menu główne
def display_menu (self):
Drukuj („\ n%s%s%s”%(FG (150), „*** Witamy w naszym sklepie z ciasta ***”, attr (0))))
Drukuj („\ n%s%s”%(FG (170), „1. Wyświetl produkty… '))
Drukuj ("2. Wybierz produkt… ")
Drukuj ("3. Wyjście")
samego siebie.Odpowiedź = wejście ("\ ntype 1 lub 2 lub 3:")
# Zdefiniuj funkcję, aby odczytać i wyświetlić produkt z pliku tekstowego
def display_products (self):
Drukuj („lista produktów podano poniżej: \ n”)
Z otwartymi (produktami.txt ') jako f:
Linia = f.Czytaj linię()
# Wydrukuj nagłówek pliku
drukuj ("id \ tname \ t \ tprice \ tmaking data \ texpire data")
podczas gdy linia:
# Zainicjuj licznik, aby ustawić przestrzeń między polami
licznik = 0
# Przeczytaj każdą wiersz z pliku
Linia = f.Czytaj linię()
# Podziel każdą linię na podstawie przecinka (,) i przechowuj na liście
FieldList = lista (wiersz.podział(","))
Drukuj („\ t”)
# Przeczytaj każdą wartość z listy i wydrukuj
Dla Val w listy polowej:
Jeśli licznik == 0:
Space = "
w przeciwnym razie:
Space = '\ t'
licznik = licznik + 1
Jeśli licznik == 3:
val = '$' + val
druk (val, end = spacja)
# Zdefiniuj funkcję, aby sprawdzić wybrany produkt istnieje w pliku lub nie
def check_products (self, wyszukiwanie):
# Otwórz plik do odczytu
Z otwartymi (produktami.txt ') jako f:
# Przeczytaj każdy wiersz pliku
dla linii w F:
# Podziel wartość linii na podstawie przecinka ()
FieldList = lista (wiersz.podział(","))
Dla Val w listy polowej:
# Sprawdź wybrany dopasowanie produktu do wartości lub nie
Jeśli wyszukiwanie == val.rozebrać się():
# Dodaj cenę produktu z kwotą wózka, jeśli znaleziono wartość sercha
samego siebie.cart_amount = self.cart_amount + int (lista polowa [2].rozebrać się())
zwróć prawdziwie
# Wydrukuj wiadomość, jeśli wybrany produkt nie istnieje w pliku
Drukuj („Produkt nie istnieje.")
zwróć false

Utwórz klasę „zamów”

Po dodaniu „sklep„Klasa, dodaj skrypt, aby zdefiniować„zamówienie”Klasa do sklep.py plik. To klasa dzieci odziedziczona po „sklep„Klasa zawierająca trzy metody. Cel tych metod jest wspomniany poniżej.

Metody

Dodaj do koszyka():

Ta metoda została zdefiniowana, aby dodać nazwę produktu do cart_items Lista, jeśli produkt istnieje w produkty.tekst Złóż i wydrukuj wiadomość po dodaniu produktu do koszyka. Ta metoda zostanie wywołana, gdy użytkownik wybierze drugą opcję („Wybierz produkt…”) menu głównego, wpisując „2” lub pierwszą opcję drugiego menu („Dodaj produkt”), wpisując „1”.

usuń_from_cart ():

Ta metoda została zdefiniowana w celu usunięcia produktu z cart_items Lista, jeśli nazwa produktu pobrana od użytkownika istnieje w cart_items. Ta metoda zostanie wywołana, gdy użytkownik wybierze drugą opcję drugiego menu („Usuń produkt”), wpisując „2”. Po usunięciu produktu cena usuniętego produktu zostanie odjęta od cart_amount zmienny. "Produkt nie istnieje w koszyku.„Wiadomość zostanie wydrukowana, jeśli nazwa produktu pobrana od użytkownika nie istnieje w cart_items lista.

display_cart ():

Ta metoda została zdefiniowana w celu wyświetlania zawartości cart_items lista, wartość cart_amount, oraz drugie elementy menu, aby dodać produkt lub usunąć produkt lub potwierdzić płatność lub anulować zakup. Jeśli cart_items Lista jest pusta, a potem wiadomość „Twój koszyk jest pusty." zostanie wyświetlone. Ta metoda zostanie wywołana, gdy zadanie dodania produktu lub usunięcia produktu zostanie zakończone. Ta metoda zwróci wartości listy CART_ITEMS, jeśli koszyk nie jest pusty lub zwróci 0, jeśli wózek jest pusty.

Skrypt „zamówienie„Klasa znajduje się poniżej:

"
Klasa „Zamów” jest zdefiniowana, aby dodać produkt do koszyka, usunąć produkt
z wózka i wyświetl element koszyka
"
Zamówienie klasy (sklep):
# Zdefiniuj funkcję, aby dodać produkt do koszyka
def add_to_cart (self, item):
# Dodaj produkt do koszyka
samego siebie.cart_items.Dodatek (pozycja)
wydruku („%s jest dodawane w koszyku." %(przedmiot))
# Zdefiniuj funkcję, aby usunąć produkt z koszyka
def remove_from_cart (self, obj):
pozycja = wejście („Wprowadź nazwę produktu:”)
Jeśli pozycja w OBJ.CART_ITEMS:
# Usuń produkt z koszyka
obj.cart_items.Usuń przedmiot)
Drukuj („Produkt jest usuwany z koszyka”)
# Otwórz plik, aby przeszukać cenę produktu
Z otwartymi (produktami.txt ') jako f:
dla linii w F:
FieldList = lista (wiersz.podział(","))
Dla Val w listy polowej:
Jeśli pozycja == val.rozebrać się():
# Usuń cenę usuniętego produktu z kwoty wózka
obj.cart_amount = obj.cart_amount - int (lista polowa [2].rozebrać się())
w przeciwnym razie:
Drukuj („Produkt nie istnieje w koszyku.")
# Zdefiniuj funkcję, aby wyświetlić elementy koszyka
def display_cart (self, obj):
# Sprawdź kwotę koszyka, aby dowiedzieć się, że koszyk jest pusty, czy nie
Jeśli OBJ.cart_amount> 0:
# Wyświetl dodane elementy koszyka
drukuj („\ nyou dodał następujące elementy w koszyku: \ n”)
For Val in Self.CART_ITEMS:
druk (val)
# Wydrukuj całkowitą kwotę koszyka
Drukuj („\ n%s%s%d%s”%(FG (25), „całkowita kwota: $”, obj.cart_amount, attr (0)))
# Wyświetl drugie menu
Drukuj ("\ n1. Dodaj produkt ")
Drukuj ("2. Usuń produkt ")
Drukuj ("3. Potwierdź płatność")
Drukuj ("4. Anulować")
ans = wejście ("\ ntype 1 lub 2 lub 3 lub 4:")
powrót ans
w przeciwnym razie:
# Wydrukuj wiadomość, jeśli wózek jest pusty
Drukuj („Twój wózek jest pusty.")
powrót 0

Utwórz klasę „klienta”

Po dodaniu „zamówienie„Klasa, dodaj skrypt, aby zdefiniować„klient”Klasa do sklep.py plik. To kolejna klasa dzieci odziedziczona po „zamówienie„Klasa zawierająca metodę konstruktora i metodę zdefiniowaną przez użytkownika. Cel tych metod jest wspomniany poniżej.

Metody:

Metoda konstruktora

Metoda konstruktora jest zdefiniowana przez __init __ (). Załóżmy, że użytkownik wybiera trzecią opcję drugiego menu („Potwierdź płatność”). W takim przypadku konstruktor „klient„Zostanie wezwana klasa w celu zainicjowania informacji o kliencie w momencie tworzenia obiektów„klient„Klasa i konkuruj o zadanie zakupu. Ta metoda przyjmie cztery argumenty. To są nazwa, adres, telefon i gotówka.

zakup_info ():

Ta metoda została zdefiniowana w celu wyświetlenia szczegółów zakupu zawierających numer zamówienia, datę zamówienia, nazwę klienta, adres klienta, telefon klienta, listę zakupionych produktów i całkowitą cenę wszystkich zakupionych produktów. Tutaj numer zamówienia zostanie wygenerowany za pomocą funkcji Random (). Ta metoda zostanie wywołana, jeśli wartość gotówkowa dodana przez użytkownika jest więcej lub równa wartości cart_amount zmienny.

Skrypt „klient„Klasa znajduje się poniżej:

"
Identyfikator klasy „Klienta” zdefiniowany w celu wyświetlenia informacji o zakupie
Po potwierdzeniu płatności
"
Klasy klient (zamówienie):
# Zdefiniuj konstruktor, aby zainicjować informacje o kliencie
def __init __ (ja, imię, adres, telefon, gotówka):
Nazwa = nazwa
Adres = adres
contact_no = telefon
add_cash = gotówka
# Zdefiniuj funkcję, aby wyświetlić informacje o zakupie ze szczegółami klienta
def zakup_info (self, obj):
# GneRate losowy numer zamówienia
order_no = losowe.Random ()*100000000
order_no = runda (order_no)
# Zainicjuj datę zamówienia
Dzisiaj = data.Dzisiaj()
order_date = dzisiaj.Strftime („ %b %d, %y”)
# Drukuj informacje o zakupie
Drukuj („\ Nyour Informacje o zakupie podano poniżej: \ n”)
Drukuj („nr zamówienia: %s” %order_no)
Drukuj („Data zamówienia: %s” %Order_Date)
Drukuj („Nazwa klienta: %s” %nazwa)
Drukuj („Adres klienta: %s” %
Drukuj („Nr telefonu klienta: %s” %contact_no)
# Drukuj Informacje o zakupionym produkcie
Drukuj („\ npurched lista produktów: \ n”)
For Val in Self.CART_ITEMS:
druk (val)
Drukuj („\ n%s%s%d%s”%(FG (25), „całkowita kwota: $”, obj.cart_amount, attr (0)))
Drukuj („Dziękuję.")

Utwórz obiekty

Po zdefiniowaniu niezbędnych klas aplikacji, dodaj skrypt, aby utworzyć obiekty do używania zmiennych klasowych i wywołać metody, aby zakończyć implementację „Aplikacji do sklepu z ciastami”. Początkowo obiekt „sklep„Klasa zostanie zdefiniowana, a display_menu () Metoda zostanie wywołana za pomocą tego obiektu do wyświetlania menu głównego. W skrypcie pierwsza nieskończona pętla została użyta do wyświetlania menu głównego na początku aplikacji i po potwierdzeniu lub anulowaniu zakupu. Ta pętla zostanie zakończona, a aplikacja zostanie zamknięta, gdy użytkownik wybierze trzecią opcję („wyjście”) menu głównego. Druga nieskończona pętla została wykorzystana do dodawania produktów do koszyka, dopóki użytkownicy wpisują „nic" i wyświetla drugie menu po dodaniu lub usunięciu produktu do koszyka. Ta pętla zostanie zakończona, jeśli użytkownik wybierze trzecią (potwierdź płatność ”) lub czwartą („ Anuluj ”) drugiego menu. Załóżmy, że użytkownik wybiera trzecią opcję drugiego menu, a kwota gotówki dodana przez użytkownika jest mniejsza niż cart_amount wartość. Wtedy drugie menu pojawi się ponownie, wyświetlając wiadomość: „Nie masz wystarczającej równowagi.". Obydwa cart_items I cart_amount Wartości zostaną usunięte po zakończeniu drugiej nieskończonej pętli, aby dokonać następnego zakupu. Skrypt tej części znajduje się poniżej:

# Deklaruj obiekt klasy „sklep”
objshop = shop ()
# Zadeklaruj nieskończoną pętlę do wielokrotnego wyświetlania menu
# Dopóki użytkownik naciśnie „3”
Choć prawda:
# Wyświetl menu główne
objshop.display_menu ()
# Ustaw wartość początkową dla usuwania_item
remove_item = false
# Wyświetl menu główne, jeśli użytkownik naciśnie „1”
Jeśli objshop.Odpowiedź == „1”:
objshop.display_products ()
# Wyświetl opcję zakupu, jeśli użytkownik naciśnie „2”
Elif Objshop.Odpowiedź == „2”:
# Deklaruj obiekt klasy „zamów”
objorder = zamów ()
# Zadeklaruj nieskończoną pętlę do wielokrotnego wyświetlania drugiego menu
# Dopóki użytkownik nie naciśnie „3” lub „4”
Choć prawda:
# Weź nazwę produktu, aby dodać do koszyka, jeśli wartość remove_item jest fałszywa
Jeśli remove_item == false:
item = wejście („\ nType nazwa produktu:”)
Jeśli item == „Brak”:
# Wyświetl koszyk po dodaniu lub usunięciu produktu
return_val = objorder.display_cart (objshop)
# Zakończ z pętli, jeśli wózek jest pusty
Jeśli return_val == 0:
przerwa
elif return_val == '1':
pozycja = wejście („wpisz nazwę produktu:”)
# Sprawdź produkt w produktach.plik txt czy nie
pro_exist = objshop.check_products (pozycja)
# Dodaj produkty do koszyka, jeśli produkt istnieje
Jeśli pro_exist == true:
objorder.add_to_cart (pozycja)
remove_item = false
elif return_val == '2':
# Wyjmij wybrany produkt z koszyka
return_val = objorder.usuń_from_cart (objshop)
remove_item = true
elif return_val == '3':
# Weź informacje klienta
name = input („Wprowadź swoje imię:”)
Adres = wejście („Wprowadź swój adres:”)
contact_no = wejście („Wprowadź swój numer kontaktowy:”)
cash = int (input („Dodaj gotówkę: $”))
# Dodaj wartość gotówką z bieżącym saldem klienta
objshop.Cust_Balance = objshop.Cust_Balance + gotówka
# Sprawdź saldo klienta jest mniejsze niż kwota koszyka
Jeśli objshop.Cust_Balance < objShop.cart_amount:
Drukuj („Nie masz wystarczającej równowagi.")
w przeciwnym razie:
# Utwórz obiekt klasy „klienta”
objCustomer = klient (nazwa, adres, contact_no, gotówka)
# Wydrukuj informacje o zakupie
Objcustomer.zakup_info (objshop)
# Odlicz kwotę zakupu od salda klienta
objshop.cust_balance = gotówka - objshop.cart_amount
przerwa
w przeciwnym razie:
# Wydrukuj wiadomość, jeśli klient anuluje zakup
Drukuj („Anulowałeś swój zakup.")
przerwa
w przeciwnym razie:
# Dodaj produkty do koszyka, jeśli produkt istnieje
pro_exist = objshop.check_products (pozycja)
Jeśli pro_exist == true:
objorder.add_to_cart (pozycja)
Drukuj („Typ„ Brak ”, aby przestać dodawać produkt”)
# Wyczyść listę koszyków po zakupie lub anulowaniu
objshop.cart_items.jasne()
# Wyczyść kwotę koszyka po zakupie lub anulowaniu
objshop.cart_amount = 0
# Zakończ z aplikacji, jeśli użytkownicy naciskają „3”
Elif Objshop.Odpowiedź == „3”:
wydruku.")
Wyjście()

Wyjście aplikacji

Po dodaniu wszystkich skryptów do sklep.py plik seryjnie, możesz sprawdzić, czy aplikacja działa poprawnie, czy nie. Sposób użycia tej aplikacji został pokazany w tej części samouczka.

Uruchom aplikację

Początkowo użytkownik musi otworzyć terminal i przejść do miejsca, w którym produkty.tekst I sklep.py Pliki są zlokalizowane. Musisz przechowywać te pliki w tej samej lokalizacji, aby poprawnie uzyskać wyjście. Uruchom następujące polecenie, aby wykonać aplikację:

$ Python3 Shop.py

Następujące dane wyjściowe pojawią się po wykonaniu poprzedniego polecenia. To jest główne menu tej aplikacji. Użytkownik może wybrać dowolną z trzech opcji pokazanych na wyjściu, wpisując „1” Lub „2” Lub „3”. Lista produktów zostanie wyświetlona, ​​jeśli typy użytkowników, „1”. Pojawia się monit wejściowy do przyjęcia nazwy produktu, jeśli typy użytkowników, „2”. Aplikacja zostanie zamknięta, jeśli typy użytkowników, „3”. Menu pojawi się ponownie, jeśli użytkownik wpisuje jakikolwiek inny znak.

Wyświetl produkty

Następujące dane wyjściowe pojawią się, jeśli typy użytkowników „1”. Treść produkty.tekst Plik został pokazany na tym wyjściu. Użytkownik może wybrać dowolne nazwy ciasta pokazanych na wyjściu, aby dodać do koszyka, a użytkownik musi wybrać drugą opcję menu, aby wykonać zadanie.

Dodaj produkt do koszyka za pomocą menu głównego

W aplikacji istnieją dwa sposoby dodania produktu do koszyka. Pierwszym sposobem jest wybranie drugiej opcji w menu głównym. Pojawi się następujące dane wyjściowe, jeśli użytkownik wpisuje „2”. Użytkownik musi wpisać nazwę dowolnego elementu ciasta, który istnieje w pliku, aby dodać go do koszyka.

Następujące dane wyjściowe pojawią się, jeśli typy użytkowników „Błotny tort„Istnieje na liście produktów. Wyjście pokazuje, że produkt został dodany do koszyka, a użytkownik może dodać inny produkt, ponownie wpisując nazwę produktu. Jeśli użytkownik nie chce dodawać żadnego produktu, musi wpisać „nic".

Następujące dane wyjściowe pojawią się, jeśli inny produkt o nazwie „Ciasto kawowe" jest dodany:

Następujące dane wyjściowe pojawią się, jeśli wartość „nic”Jest wpisany jako wartość wejściowa. Lista elementów wózka jest pokazana na wyjściu. Dodano dwa przedmioty ciasta: „Błotny tort" I "Ciasto kawowe". Cena „Błotny tort" Jest 35 USD i „Ciasto kawowe" Jest 22 USD. Całkowita cena ciast wynosi 35 USD+22 USD = 57 USD, pokazane na wyjściu. Drugie menu zostało wyświetlone po wyświetleniu informacji o koszyku. Użytkownik może dodawać produkty, usuwać produkty, kupować produkty dodane do koszyka i anulować zakup za pomocą tego menu:

Dodaj produkt do koszyka za pomocą drugiego menu

Pojawi się następujące dane wyjściowe, jeśli użytkownik wpisuje „2”. Użytkownik musi wpisać nazwę dowolnego elementu ciasta, który istnieje w pliku, aby dodać go do koszyka.

Następujące wyjście pojawią się po wpisaniu „ciasta waniliowego” jako wartości wejściowej. Użytkownik może dodać więcej elementów do koszyka, ponownie wpisując nazwę produktu. Jeśli użytkownik nie chce dodawać więcej produktów, musi wpisać „Brak”, aby przestać dodawać produkt do koszyka.

Następujące wyjście pojawią się po wpisaniu „nic”Jako wartość wejściowa. Wyjście pokazuje, że nowy produkt „Ciasto waniliowe”Został dodany do wózka i ceny„Ciasto waniliowe”Został dodany z kwotą koszyka. Tak więc całkowita kwota wynosi teraz 57 USD + 30 USD = 87 USD. Drugie menu pojawiło się ponownie. Cel tego menu został wcześniej wyjaśniony.

Usuń produkt z wózka

Następujące dane wyjściowe pojawią się, jeśli typy użytkowników „2”Jako wartość wejściowa. Użytkownik musi wpisać nazwę dowolnego elementu ciasta, który istnieje w koszyku, aby usunąć go z koszyka. Jeśli użytkownik wpisuje jakąkolwiek wartość, która nie istnieje w koszyku, zostanie wydrukowany komunikat o błędzie.

Następujące dane wyjściowe pojawią się, jeśli typy użytkowników „Ciasto czekoladowe„Jako wartość wejściowa, która istnieje w produktach.plik txt, ale nie istnieje w koszyku. Tak więc komunikat o błędzie „Produkt nie istnieje w koszyku.„Pojawił się na wyjściu i żaden element nie został dodany ani usunięty z wózka. Całkowita wartość kwoty wózka również się nie zmieniła.

Następujące dane wyjściowe pojawią się, jeśli użytkownicy wpisuje się ”,„Ciasto kawowe”Jako wartość wejściowa, która istnieje w koszyku. Komunikat o sukcesie „Produkt jest usuwany z wózka”, został wydrukowany. Wyjście pokazuje również „Ciasto kawowe”Został usunięty z wózka, a wartość cenowa tego przedmiotu została odjęta od wartości kwoty wózka. Cena „Ciasto kawowe”To 22 USD. Tak więc całkowita kwota wózka wynosi teraz 87 - 22 USD = 65 USD.

Następujące dane wyjściowe pojawią się, jeśli wszystkie elementy z koszyka zostaną usunięte. Wyjście pokazuje dwie wiadomości. Jednym z nich jest usunięcie ostatniego produktu, a drugim jest poinformowanie użytkownika, że ​​wózek jest teraz pusty. Ponieważ w koszyku nie ma produktu, drugie menu zniknęło, a menu główne pojawiło się ponownie.

Dokonać płatności

Trzecia opcja drugiego menu jest używana do potwierdzenia zakupu poprzez dodanie informacji klienta i wartości wózka. Następujące dane wyjściowe pojawią się, jeśli typy użytkowników „3” Aby wybrać trzecią opcję drugiego menu po dodaniu niektórych elementów ciasta do koszyka. Wyjście pokazuje, że do koszyka dodawane są dwa elementy ciasta, a całkowita cena ciast wynosi 60 USD. Pojawiła się monit wejściowy do przyjęcia nazwy klienta po wpisaniu wartości, „3”. Następnie wydają się inne podpowiedzi wejściowe dodawania innych informacji związanych z klientem i kwotą gotówki na zakup produktu.

W poniższym wyjściu dodano nazwę, adres, numer telefonu, numer telefonu i kwotę gotówką. Ale dodana wartość gotówkowa jest niższa niż całkowita cena produktów. Całkowita kwota wózka wyniosła 60 USD, a 45 USD dodano jako wartość gotówkową. Wiadomość: „Nie masz wystarczającej równowagi.”Pojawił się z tego powodu, a zamówienie zostało anulowane, sprawiając, że wózek jest pusty. Menu główne pojawiło się ponownie.

Następujące dane wyjściowe pojawią się, jeśli gotówka dodana przez użytkownika jest równa lub więcej niż całkowita kwota wózka. Tutaj całkowita cena koszyka wynosi 35 USD, a użytkownik dodał 100 USD jako wartość gotówką, która jest większa niż całkowita cena. Wyjście pokazuje również, że liczba losowa została wygenerowana jako numer zamówienia, a bieżąca data systemu została wydrukowana jako data zamówienia. Menu główne pojawiło się ponownie do następnego zakupu. Obecne saldo użytkownika wynosi 100 - 35 USD = 65 USD. Jeśli ten sam użytkownik ponownie kupi jakikolwiek element ciasta w sklepie, kwota zakupu zostanie odjęta od bieżącego salda użytkownika.

Następujące dane wyjściowe pojawią się, jeśli użytkownik kupi ponownie, a kwota zakupu jest mniejsza niż ich bieżące saldo. Zgodnie z wynikami do koszyka dodano dwa elementy ciasta, a całkowita cena ciast wynosi 47 USD. Użytkownik dodał 0 USD, ale bieżące saldo klienta wynosi 65 USD. Tak więc płatność została pomyślnie zakończona, a wiadomość „podziękowania” została wydrukowana. Obecne saldo użytkownika wynosi 65 - 47 USD = 18 USD.

Jeśli ten sam użytkownik ponownie doda element do koszyka, a całkowita cena elementu jest mniejsza niż bieżące saldo użytkownika, pojawi się następujące dane wyjściowe. Obecne saldo użytkownika wynosi 18 USD po ostatniej transakcji, ale całkowita cena produktu wynosi 30 USD. Tak więc wiadomość: „Nie masz wystarczającej równowagi.”Został wydrukowany, a zamówienie zostało anulowane, sprawiając, że wózek jest pusty.

Następujące dane wyjściowe pojawią się, jeśli użytkownik doda 12 USD z 18 USD na zakup „Ciasto waniliowe”Z 30 USD. Obecne saldo użytkownika wynosi 0 USD po zakupie.

Anuluj płatność

Użytkownik może anulować zamówienie po dodaniu elementów do koszyka, wybierając czwartą opcję drugiego menu lub usuwając wszystkie elementy z koszyka. Pojawi się następujące dane wyjściowe, jeśli użytkownik wybierze czwartą opcję drugiego menu, wpisując „4”. Wiadomość: „Anulowałeś swój zakup.”Został wydrukowany do anulowania zamówienia. Sposób na anulowanie zamówienia poprzez usunięcie wszystkich elementów z koszyka, został wcześniej pokazany. Menu główne zostanie ukazane po anulowaniu zamówienia.

Zamknij aplikację

Aplikację można zamknąć, wybierając trzecią opcję w menu głównym. Następujące dane wyjściowe pojawią się, jeśli typy użytkowników „3” Aby zamknąć aplikację. Aplikacja została rozwiązana przez wiadomość „zakończoną z aplikacji”.

Ograniczenia tej aplikacji

W tym samouczku pokazano sposób wdrożenia bardzo prostej aplikacji tekstowej przez klasy Pythona. Ale ta aplikacja ma pewne ograniczenia, które zostały wymienione poniżej:

  • Żadne zamówienie ani informacje o kliencie nie są przechowywane na stałe. Aplikacja musi prowadzić rejestrację poprzedniej sprzedaży. Można utworzyć jeszcze dwa pliki tekstowe do przechowywania zamówienia i informacji o kliencie.
  • W tej aplikacji nie jest utrzymywana zapis zapasów, co jest ważną częścią aplikacji sklepowej. Jeśli jakikolwiek produkt jest niedostępny, wówczas komunikat powinien zostać przekazany użytkownikowi.
  • Jeśli użytkownik doda ten sam produkt wiele razy, każdy produkt zostanie dodany osobno, co jest nieefektywne. Konieczne jest policzenie liczby każdego produktu w koszyku, jeśli ten sam produkt jest dodawany wiele razy.
  • Nie ma możliwości usunięcia wszystkich elementów z koszyka przez pojedyncze polecenie bez anulowania zamówienia. Użytkownik musi usunąć każdy element osobno, aby koszyk jest pusty.
  • Pozostałe saldo klienta nie wyświetla się po zakończeniu zapłaty zamówienia. Pomoże użytkownikowi dodać gotówkę do następnego zamówienia.

*** Czytelnicy tego samouczka spróbują wdrożyć wymienione powyżej funkcje, aby rozwinąć swoje umiejętności programowania i zwiększyć wydajność aplikacji do nauki.

Samouczek wideo na ten temat

Wniosek

Wytyczne dotyczące wdrożenia prostej aplikacji Python zostały przedstawione w tym samouczku dla początkujących użytkowników Pythona. Podstawowe funkcje aplikacji sklepowej są używane do wdrożenia w tym samouczku, takie jak lista produktów, dodaj do koszyka, usuń z wózka, system płatności i anulowanie płatności. Dla uproszczenia użyliśmy pliku tekstowego tutaj do przechowywania danych na stałe. Ale każda standardowa aplikacja do bazy danych, taka jak SQLite i MySQL, może być używana do bardziej wydajnego zarządzania danymi aplikacji.