Alcune lezioni di Python correlate sono state utilizzate per sviluppare qui la "Applicazione di Cake Shop" basata sul testo.
Funzionalità del progetto
Prerequisiti
Implementazione di "Applicazione di cake shop"
Verranno utilizzate tre classi per implementare le funzionalità di questa applicazione. Questi sono "negozio","ordine", E "cliente". IL "negozio"La classe è la classe principale che verrà utilizzata per visualizzare il menu principale dell'applicazione, visualizzare l'elenco delle torte del negozio e verificare se la torta selezionata dall'utente esiste nel negozio. IL "ordine"La classe è una classe figlio che verrà creata ereditando da"negozio"Classe e verrà utilizzato per aggiungere oggetti per torta nel carrello, rimuovere gli oggetti della torta dal carrello e visualizzare gli oggetti selezionati del carrello. IL "cliente"La classe è un'altra classe per bambini che verrà creata ereditando da"ordine"Classe e verrà utilizzato per visualizzare i dettagli di acquisto con le informazioni sui clienti. Il seguente diagramma mostra come funzionerà questa semplice applicazione:
Memorizzare le informazioni sul prodotto
Qualsiasi applicazione di server di database popolare può essere allegata con l'applicazione Python per archiviare i dati. Tuttavia, in questa applicazione non è stato utilizzato nessun server di database per mantenerlo semplice e un file di testo è stato utilizzato per archiviare i dati. Crea un file di testo denominato prodotti.TXT e aggiungere le seguenti informazioni sul prodotto nel file prima di iniziare la parte successiva di questa applicazione. L'utente selezionerà l'elemento torta in questo file da aggiungere al carrello per l'acquisto. Ogni campo è separato da una virgola qui:
prodotti.TXT
ID, nome, prezzo, data di produzione, data scadenzaImporta i moduli necessari
In questa applicazione sono stati utilizzati tre moduli per generare un numero casuale, leggere la data corrente e creare un testo colorato nel terminale. Crea un file Python denominato negozio.Py e aggiungi il seguente script all'inizio del file per importare i moduli. IL casuale Il modulo genererà il numero dell'ordine. IL data Il modulo leggerà la data di sistema corrente. E il colorato Il modulo genererà il testo colorato.
#IMPORT MODULI RICHIESTI PER IL PROGETTO SHOPCrea la classe "Shop"
Dopo aver importato i moduli necessari, aggiungi lo script per definire "negozio"Classe nel negozio.Py file. Questa è la classe base di questa applicazione che contiene quattro variabili di classe e tre metodi. Lo scopo di queste variabili e i metodi sono menzionati di seguito.
Variabili
cart_items:
È una variabile di elenco e verrà utilizzato per archiviare l'elemento della torta aggiunto dall'utente. Un nuovo elemento verrà aggiunto all'elenco quando viene selezionato un nuovo elemento di torta per l'aggiunta al carrello e un elemento esistente verrà rimosso se l'utente seleziona un elemento della torta per la rimozione del carrello. Questa variabile verrà cancellata dopo aver completato l'acquisto o annullata l'acquisto.
cart_amount:
È una variabile intera e verrà utilizzato per memorizzare la somma del prezzo del prodotto aggiunto nel carrello. Il valore di questa variabile sarà aumentato quando un nuovo elemento di torta viene aggiunto al carrello e il valore di questa variabile verrà ridotto quando un elemento della torta viene rimosso dal carrello. Questa variabile verrà inizializzata a 0 dopo aver completato o annullato l'acquisto.
cust_balance:
È una variabile intera e verrà utilizzato per archiviare il valore aggiunto in contanti dal cliente. Il valore di questa variabile verrà aumentato quando l'utente aggiunge il valore in contanti e il valore di questa variabile verrà ridotto quando l'attività di acquisto sarà completata correttamente.
risposta:
È una variabile stringa e verrà utilizzato per prendere il valore di input dell'utente per eseguire l'attività particolare.
Metodi
display_menu ():
Questo metodo è stato definito per mostrare l'elenco dei menu dell'applicazione. Se l'utente tipi "1", Quindi il contenuto del prodotti.TXT verrà visualizzato il file. Se l'utente tipi "2", Quindi verrà visualizzato il prompt di input per prendere il nome del prodotto. Se il nome del prodotto fornito dall'utente esiste nel file, il nome del prodotto verrà aggiunto al cart_items elenco e il prezzo del prodotto verrà aggiunto con cart_amount. Se l'utente tipi "3", Quindi l'applicazione verrà terminata. La funzione FG () è stata utilizzata nel metodo per stampare il testo colorato nel terminale.
display_products ():
Questo metodo è stato definito per leggere il prodotti.TXT File riga per riga, dividere ogni riga in base alla virgola usando la funzione split () e memorizzarla in una variabile di elenco. Successivamente, la variabile dell'elenco verrà iterata utilizzando un ciclo per stampare il contenuto del file in un formato leggibile dall'uomo.
check_products ():
Questo metodo è stato definito per verificare se il nome del prodotto prelevato dall'utente esiste in prodotti.TXT file. Se il nome del prodotto esiste nel file, verrà aggiunto il prezzo di quel particolare prodotto con il valore del cart_amount variabile, e il vero Il valore verrà restituito dalla funzione. Il messaggio, "Il prodotto non esiste."Verrà stampato se il nome del prodotto non esiste nel file e il Falso Il valore verrà restituito dalla funzione. Questo metodo verrà chiamato ogni volta che un nome di prodotto viene preso dall'utente per l'aggiunta al carrello.
La sceneggiatura del "negozio"La classe è fornita di seguito:
"Crea la classe "ordina"
Dopo aver aggiunto il "negozio"Classe, aggiungi lo script per definire il"ordine"Classe nel negozio.Py file. Questa è una classe per bambini ereditata da "negozio"Classe che contiene tre metodi. Lo scopo di questi metodi è menzionato di seguito.
Metodi
Aggiungi al carrello():
Questo metodo è stato definito per aggiungere il nome del prodotto al cart_items elenco se il prodotto esiste in prodotti.TXT File e stampa un messaggio dopo aver aggiunto il prodotto nel carrello. Questo metodo verrà chiamato quando l'utente seleziona la seconda opzione ("Seleziona prodotto ...") del menu principale digitando "2" o la prima opzione del secondo menu ("Aggiungi prodotto") digitando "1".
remove_from_cart ():
Questo metodo è stato definito per rimuovere il prodotto da cart_items elenco se il nome del prodotto prelevato dall'utente esiste in cart_items. Questo metodo verrà chiamato quando l'utente seleziona la seconda opzione del secondo menu ("Rimuovi il prodotto") digitando "2". Dopo aver rimosso il prodotto, il prezzo del prodotto rimosso verrà detratto dal cart_amount variabile. "Il prodotto non esiste nel carrello."Il messaggio verrà stampato se il nome del prodotto prelevato dall'utente non esiste in cart_items elenco.
display_cart ():
Questo metodo è stato definito per visualizzare il contenuto del cart_items Elenco, il valore del cart_amount, e le voci del secondo menu per aggiungere il prodotto o rimuovere il prodotto o confermare il pagamento o annullare l'acquisto. Se la cart_items L'elenco è vuoto, quindi il messaggio, "il tuo carrello è vuoto." sarà mostrato. Questo metodo verrà chiamato quando viene completato il compito di aggiungere un prodotto o rimuovere un prodotto. Questo metodo restituirà i valori dell'elenco CART_ITEMS se il carrello non è vuoto o restituirà 0 se il carrello è vuoto.
La sceneggiatura del "ordine"La classe è fornita di seguito:
"Crea la classe "cliente"
Dopo aver aggiunto il "ordine"Classe, aggiungi lo script per definire il"cliente"Classe nel negozio.Py file. Questa è un'altra classe di bambini ereditata da "ordine"Classe contenente il metodo del costruttore e un metodo definito dall'utente. Lo scopo di questi metodi è menzionato di seguito.
Metodi:
Metodo del costruttore
Il metodo del costruttore è definito da __init __ (). Supponiamo che l'utente selezi la terza opzione del secondo menu ("Conferma il pagamento"). In tal caso, il costruttore del "cliente"La classe verrà chiamata per inizializzare le informazioni sui clienti al momento della creazione di oggetti di"cliente"Classe e competere per l'attività di acquisto. Questo metodo richiederà quattro argomenti. Questi sono nome, indirizzo, telefono e contanti.
Acquista_Info ():
Questo metodo è stato definito per visualizzare i dettagli di acquisto contenenti il numero dell'ordine, la data dell'ordine, il nome del cliente, l'indirizzo del cliente, il telefono del cliente, l'elenco dei prodotti acquistati e il prezzo totale di tutti i prodotti acquistati. Qui, il numero dell'ordine verrà generato usando la funzione casuale (). Questo metodo verrà chiamato se il valore in contanti aggiunto dall'utente è superiore o uguale al valore di il cart_amount variabile.
La sceneggiatura del "cliente"La classe è fornita di seguito:
"Creare oggetti
Dopo aver definito le classi necessarie di applicazione, aggiungi lo script per creare oggetti per l'utilizzo delle variabili di classe e chiamare i metodi per completare l'implementazione della "Applicazione del negozio di torte". Inizialmente, l'oggetto del "negozio"La classe verrà definita e il display_menu () Il metodo verrà chiamato utilizzando questo oggetto per la visualizzazione del menu principale. Nello script, il primo ciclo infinito è stato utilizzato per visualizzare il menu principale all'inizio dell'applicazione e dopo aver confermato o annullato l'acquisto. Questo ciclo verrà terminato e l'applicazione verrà chiusa quando l'utente seleziona la terza opzione ("uscita") del menu principale. Il secondo ciclo infinito è stato utilizzato per aggiungere i prodotti nel carrello fino ai tipi di utente "nessuno" e visualizza il secondo menu dopo l'aggiunta o la rimozione di un prodotto nel carrello. Questo ciclo verrà terminato se l'utente seleziona l'opzione terzo (Conferma il pagamento ") o quarto (" cancellazione ") del secondo menu. Supponiamo che l'utente selezi la terza opzione del secondo menu e l'importo in contanti aggiunto dall'utente è inferiore al cart_amount valore. Quindi il secondo menu verrà nuovamente visualizzato visualizzando il messaggio, "Non hai abbastanza equilibrio.". Entrambi cart_items E cart_amount i valori verranno cancellati dopo aver terminato il secondo ciclo infinito per effettuare il prossimo acquisto. La sceneggiatura di questa parte è fornita di seguito:
# Dichiarare oggetto della classe "Shop"Output dell'applicazione
Dopo aver aggiunto tutti gli script in negozio.Py file in serie, è possibile verificare se l'applicazione funziona correttamente o meno. Il modo di utilizzare questa applicazione è stato mostrato in questa parte del tutorial.
Esegui l'applicazione
Inizialmente, l'utente deve aprire il terminale e andare nella posizione in cui il prodotti.TXT E negozio.Py I file si trovano. È necessario archiviare questi file nella stessa posizione per ottenere l'output corretto. Esegui il comando seguente per eseguire l'applicazione:
$ Python3 Shop.PyVerrà visualizzato il seguente output dopo aver eseguito il comando precedente. Questo è il menu principale di questa applicazione. L'utente può selezionare una delle tre opzioni mostrate nell'output mediante digitazione "1" O "2" O "3". L'elenco dei prodotti verrà visualizzato se i tipi utente, "1". Verrà visualizzato il prompt di input per prendere il nome del prodotto se i tipi dell'utente, "2". L'applicazione verrà chiusa se i tipi dell'utente, "3". Il menu apparirà di nuovo se l'utente digita qualsiasi altro carattere.
Visualizza prodotti
Verrà visualizzato il seguente output se i tipi dell'utente "1". Il contenuto del prodotti.TXT Il file è stato mostrato in questo output. L'utente può selezionare eventuali nomi di torte mostrate nell'output da aggiungere al carrello e l'utente deve selezionare la seconda opzione del menu per eseguire l'attività.
Aggiungi il prodotto nel carrello utilizzando il menu principale
Esistono due modi nell'applicazione per aggiungere il prodotto al carrello. Il primo modo è selezionare la seconda opzione nel menu principale. Verrà visualizzato il seguente output se l'utente digitato "2". L'utente deve digitare il nome di qualsiasi elemento della torta che esiste nel file per aggiungerlo al carrello.
Verrà visualizzato il seguente output se i tipi dell'utente "Torta di fango"Esiste nell'elenco dei prodotti. L'output mostra che il prodotto è stato aggiunto al carrello e l'utente può aggiungere un altro prodotto digitando di nuovo il nome del prodotto. Se l'utente non vuole aggiungere alcun prodotto, deve digitare "nessuno".
Verrà visualizzato il seguente output se un altro prodotto chiamato "Torta al caffè" è aggiunto:
Verrà visualizzato il seguente output se il valore "nessuno"È digitato come valore di input. L'elenco degli elementi del carrello è mostrato nell'output. Sono stati aggiunti due articoli per torte: "Torta di fango" E "Torta al caffè". Il prezzo del "Torta di fango" È $ 35 e il "Torta al caffè" È $ 22. Il prezzo totale delle torte è $ 35+$ 22 = $ 57, mostrato nell'output. Il secondo menu è stato visualizzato dopo aver visualizzato le informazioni del carrello. L'utente può aggiungere prodotti, rimuovere i prodotti, acquistare i prodotti aggiunti al carrello e annullare l'acquisto utilizzando questo menu:
Aggiungi il prodotto nel carrello utilizzando il secondo menu
Verrà visualizzato il seguente output se l'utente digitato "2". L'utente deve digitare il nome di qualsiasi elemento della torta che esiste nel file per aggiungerlo al carrello.
La seguente output apparirà dopo aver digitato "Torta alla vaniglia" come valore di input. L'utente può aggiungere più elementi al carrello digitando di nuovo il nome del prodotto. Se l'utente non vuole aggiungere più prodotti, deve digitare "nessuno" per smettere di aggiungere il prodotto al carrello.
La seguente uscita apparirà dopo la digitazione "nessuno"Come valore di input. L'output mostra che il nuovo prodotto "Torta alla vaniglia"È stato aggiunto al carrello e al prezzo del"Torta alla vaniglia"È stato aggiunto con l'importo del carrello. Quindi, l'importo totale è ora $ 57 + $ 30 = $ 87. Il secondo menu è apparso di nuovo. Lo scopo di questo menu è stato spiegato in precedenza.
Rimuovi il prodotto dal carrello
Verrà visualizzato il seguente output se i tipi dell'utente "2"Come valore di input. L'utente deve digitare il nome di qualsiasi elemento della torta che esiste nel carrello per rimuoverlo dal carrello. Se l'utente digita un valore che non esiste nel carrello, verrà stampato un messaggio di errore.
Verrà visualizzato il seguente output se i tipi dell'utente "Torta al cioccolato"Come valore di input che esiste nei prodotti.file txt ma non esiste nel carrello. Quindi, il messaggio di errore, "Il prodotto non esiste nel carrello.“, È apparso nell'uscita e nessun articolo è stato aggiunto o rimosso dal carrello. Anche il valore dell'importo totale del carrello non è cambiato.
Verrà visualizzato il seguente output se i tipi utente, "Torta al caffè"Come il valore di input che esiste nel carrello. Il messaggio di successo, "il prodotto viene rimosso dal carrello", è stato stampato. L'output mostra anche che "Torta al caffè"È stato rimosso dal carrello e il valore del prezzo di questo articolo è stato detratto dal valore dell'importo del carrello. Il prezzo del "Torta al caffè"È $ 22. Quindi, l'importo totale del carrello è ora $ 87 - $ 22 = $ 65.
Verrà rimossa la seguente uscita se tutti gli elementi del carrello. L'output mostra due messaggi. Uno è rimuovere l'ultimo prodotto e un altro è informare l'utente che il carrello è ora vuoto. Dal momento che non esiste un prodotto nel carrello, il secondo menu è sparito e il menu principale è apparso di nuovo.
Fare un pagamento
La terza opzione del secondo menu viene utilizzata per confermare l'acquisto aggiungendo le informazioni del cliente e il valore dell'importo del carrello. Verrà visualizzato il seguente output se i tipi dell'utente "3" Per selezionare la terza opzione del secondo menu dopo aver aggiunto alcuni elementi di torta al carrello. L'output mostra che due articoli per torta vengono aggiunti al carrello e il prezzo totale delle torte è di $ 60. Il prompt di input per prendere il nome del cliente è apparso dopo aver digitato il valore, "3". Successivamente, altri istruzioni di input sembreranno aggiungere altre informazioni relative al cliente e all'importo in contanti per l'acquisto del prodotto.
Nel seguente output, sono stati aggiunti il nome, l'indirizzo, il numero di telefono del cliente e l'importo in contanti. Ma il valore in contanti aggiunto è inferiore al prezzo totale dei prodotti. L'importo del carrello totale era di $ 60 e $ 45 sono stati aggiunti come valore in contanti. Il messaggio: "Non hai abbastanza equilibrio."È apparso per questo motivo e l'ordine è stato cancellato rendendo il carrello vuoto. Il menu principale è apparso di nuovo.
Verrà visualizzato il seguente output se la contanti aggiunta dall'utente è pari o superiore all'importo totale del carrello. Qui, il prezzo totale del carrello è di $ 35 e l'utente ha aggiunto $ 100 come valore in contanti, che è maggiore del prezzo totale. L'output mostra anche che un numero casuale è stato generato come numero di ordine e la data di sistema corrente è stata stampata come data dell'ordine. Il menu principale è apparso di nuovo per il prossimo acquisto. Il saldo corrente dell'utente è $ 100 - $ 35 = $ 65. Se lo stesso utente acquista nuovamente qualsiasi elemento di torta dal negozio, l'importo dell'acquisto verrà detratto dal saldo corrente dell'utente.
Verrà visualizzato il seguente output se l'utente acquista nuovamente e l'importo dell'acquisto è inferiore al proprio saldo corrente. Secondo l'output, due articoli per torte sono stati aggiunti al carrello e il prezzo totale delle torte è di $ 47. L'utente ha aggiunto $ 0 in contanti, ma il saldo corrente del cliente è di $ 65. Quindi, il pagamento è stato completato con successo e il messaggio "Grazie" è stato stampato. Il saldo corrente dell'utente è $ 65 - $ 47 = $ 18.
Se lo stesso utente aggiunge nuovamente un elemento al carrello e il prezzo totale dell'articolo è inferiore al saldo corrente dell'utente, verrà visualizzato il seguente output. Il saldo corrente dell'utente è di $ 18 dopo l'ultima transazione, ma il prezzo totale del prodotto è di $ 30. Quindi, il messaggio, "Non hai abbastanza equilibrio."È stato stampato e l'ordine è stato annullato rendendo vuoto il carrello.
Verrà visualizzato il seguente output se l'utente aggiunge $ 12 con $ 18 per acquistare il "Torta alla vaniglia"Di $ 30. Il saldo corrente dell'utente è di $ 0 dopo l'acquisto.
Annulla il pagamento
L'utente può annullare l'ordine dopo aver aggiunto gli elementi al carrello selezionando la quarta opzione del secondo menu o rimuovendo tutti gli elementi dal carrello. Verrà visualizzato il seguente output se l'utente seleziona la quarta opzione del secondo menu digitando "4". Il messaggio: "Hai annullato il tuo acquisto."È stato stampato per annullare l'ordine. Il modo per annullare l'ordine rimuovendo tutti gli articoli dal carrello è stato mostrato prima. Il menu principale verrà visualizzato dopo aver annullato l'ordine.
Chiudere l'applicazione
L'applicazione può essere chiusa selezionando la terza opzione nel menu principale. Verrà visualizzato il seguente output se i tipi dell'utente "3" Per chiudere l'applicazione. L'applicazione è stata terminata dal messaggio, "terminato dall'applicazione".
Limitazioni di questa applicazione
In questo tutorial è stato mostrato il modo di implementare un'applicazione basata su testo molto semplice da parte di Python. Ma questa applicazione ha alcune limitazioni, che sono menzionate di seguito:
*** I lettori di questo tutorial cercheranno di implementare le funzionalità sopra menzionate per sviluppare le loro capacità di programmazione e rendere l'applicazione più efficiente per l'apprendimento.
Tutorial video su questo argomento
Conclusione
Le linee guida per implementare una semplice applicazione Python basata sul testo sono state fornite in questo tutorial per gli utenti di Python alle prime armi. Le caratteristiche di base dell'applicazione del negozio vengono utilizzate per l'implementazione in questo tutorial, come l'elenco dei prodotti, aggiungere al carrello, rimuovere dal carrello, sistema di pagamento e cancellazione del pagamento. Per semplicità, abbiamo usato il file di testo qui per archiviare i dati in modo permanente. Ma qualsiasi applicazione di database standard, come SQLite e MySQL, può essere utilizzata per gestire i dati dell'applicazione in modo più efficiente.