Certaines classes de Python connexes ont été utilisées pour développer ici «l'application de coque» basée sur le texte ici.
Caractéristiques du projet
Conditions préalables
Mise en œuvre de la «demande de coque»
Trois classes seront utilisées pour implémenter les fonctionnalités de cette application. Ceux-ci sont "boutique","commande", et "client". Le "boutique"La classe est la classe parent qui sera utilisée pour afficher le menu principal de l'application, afficher la liste des gâteaux de la boutique et vérifier si le gâteau sélectionné par l'utilisateur existe dans la boutique. Le "commande«La classe est une classe d'enfants qui sera créée en héritant du«boutique«Classe, et il sera utilisé pour ajouter des articles à gâteau dans le chariot, retirer les articles à gâteau du chariot et afficher les articles sélectionnés du chariot. Le "client«La classe est une autre classe d'enfants qui sera créée en héritant du«commande«Classe, et il sera utilisé pour afficher les détails de l'achat avec les informations du client. Le diagramme suivant montre comment cette application simple fonctionnera:
Stocker les informations du produit
Toute application de serveur de base de données populaire peut être jointe avec l'application Python pour stocker des données. Cependant, aucun serveur de base de données n'a été utilisé dans cette application pour rester simple, et un fichier texte n'a été utilisé pour stocker les données. Créer un fichier texte nommé des produits.SMS et ajoutez les informations de produit suivantes dans le fichier avant de démarrer la partie suivante de cette application. L'utilisateur sélectionnera l'élément de gâteau dans ce fichier à ajouter au panier pour acheter. Chaque champ est séparé par une virgule ici:
des produits.SMS
ID, nom, prix, date de prise, date d'expirationImporter les modules nécessaires
Trois modules ont été utilisés dans cette application pour générer un nombre aléatoire, lire la date actuelle et créer du texte coloré dans le terminal. Créer un fichier python nommé boutique.py et ajouter le script suivant au début du fichier pour importer les modules. Le aléatoire le module générera le numéro de commande. Le date Le module lira la date du système actuelle. Et le coloré le module générera le texte coloré.
# Import des modules requis pour le projet de boutiqueCréer une classe «Shop»
Après l'importation des modules nécessaires, ajoutez le script pour définir le «boutique"Classe dans le boutique.py déposer. Ceci est la classe de base de cette application qui contient quatre variables de classe et trois méthodes. Le but de ces variables et les méthodes sont mentionnées ci-dessous.
Variables
CART_ITEMS:
Il s'agit d'une variable de liste, et il sera utilisé pour stocker l'élément de gâteau ajouté par l'utilisateur. Un nouvel élément sera annexé à la liste lorsqu'un nouvel élément de gâteau est sélectionné pour ajouter au panier, et un article existant sera supprimé si l'utilisateur sélectionne un élément de gâteau pour retirer le panier. Cette variable sera effacée après avoir terminé l'achat ou annulé l'achat.
CART_AMOUNT:
Il s'agit d'une variable entière, et il sera utilisé pour stocker la somme du prix du produit ajouté dans le panier. La valeur de cette variable sera augmentée lorsqu'un nouvel élément de gâteau est ajouté au chariot, et la valeur de cette variable sera diminuée lorsqu'un élément de gâteau est retiré du chariot. Cette variable sera initialisée à 0 après avoir terminé ou annulé l'achat.
Cust_Balance:
Il s'agit d'une variable entière et sera utilisée pour stocker la valeur en espèces ajoutée par le client. La valeur de cette variable sera augmentée lorsque l'utilisateur ajoutera la valeur de trésorerie, et la valeur de cette variable sera diminuée lorsque la tâche d'achat sera terminée avec succès.
répondre:
Il s'agit d'une variable de chaîne, et il sera utilisé pour prendre la valeur d'entrée de l'utilisateur pour effectuer la tâche particulière.
Méthodes
display_menu ():
Cette méthode a été définie pour afficher la liste de menu de l'application. Si l'utilisateur type "1», Alors le contenu du des produits.SMS Le fichier sera affiché. Si l'utilisateur type "2», Alors l'invite d'entrée pour prendre le nom du produit apparaîtra. Si le nom du produit fourni par l'utilisateur existe dans le fichier, le nom du produit sera ajouté au CART_ITEMS Liste, et le prix du produit sera ajouté avec CART_AMOUNT. Si l'utilisateur type "3», Alors la demande sera résiliée. La fonction fg () a été utilisée dans la méthode pour imprimer le texte coloré dans le terminal.
display_products ():
Cette méthode a été définie pour lire le des produits.SMS File Line par ligne, divisez chaque ligne en fonction de la virgule à l'aide de la fonction Split () et stockez-la en variable de liste. Ensuite, la variable de liste sera itérée à l'aide d'une boucle pour imprimer le contenu du fichier dans un format lisible par l'homme.
Check_Products ():
Cette méthode a été définie pour vérifier si le nom du produit prélevé sur l'utilisateur existe dans le des produits.SMS déposer. Si le nom du produit existe dans le fichier, le prix de ce produit particulier sera ajouté avec la valeur du CART_AMOUNT variable, et la vérité la valeur sera renvoyée de la fonction. Le message, "Le produit n'existe pas."Sera imprimé si le nom du produit n'existe pas dans le fichier et le FAUX la valeur sera renvoyée de la fonction. Cette méthode sera appelée chaque fois qu'un nom de produit est tiré de l'utilisateur pour ajouter au panier.
Le script du «boutique«La classe est fournie ci-dessous:
"Créer une classe «Ordre»
Après avoir ajouté le «boutique«Classe, ajoutez le script pour définir le«commande"Classe dans le boutique.py déposer. Ceci est une classe d'enfants héritée du «boutique»Classe qui contient trois méthodes. Le but de ces méthodes est mentionné ci-dessous.
Méthodes
Ajouter au panier():
Cette méthode a été définie pour ajouter le nom du produit dans le CART_ITEMS liste si le produit existe dans le des produits.SMS file et imprimer un message après avoir ajouté le produit dans le chariot. Cette méthode sera appelée lorsque l'utilisateur sélectionne la deuxième option («Sélectionner le produit…») du menu principal en tapant «2» ou la première option du deuxième menu («Ajouter un produit») en tapant «1».
retire_from_cart ():
Cette méthode a été définie pour éliminer le produit du CART_ITEMS Liste si le nom du produit tiré de l'utilisateur existe dans le CART_ITEMS. Cette méthode sera appelée lorsque l'utilisateur sélectionnera la deuxième option du deuxième menu («supprimer le produit») en tapant «2». Après avoir retiré le produit, le prix du produit supprimé sera déduit du CART_AMOUNT variable. "Le produit n'existe pas dans le chariot.»Le message sera imprimé si le nom du produit tiré de l'utilisateur n'existe pas dans le CART_ITEMS liste.
display_cart ():
Cette méthode a été définie pour afficher le contenu du CART_ITEMS liste, la valeur du CART_AMOUNT, et les deuxième éléments de menu pour ajouter du produit ou supprimer le produit ou confirmer le paiement ou annuler l'achat. Si la CART_ITEMS La liste est vide, alors le message, "Votre panier est vide."Sera affiché. Cette méthode sera appelée lorsque la tâche d'ajouter un produit ou de supprimer un produit est terminée. Cette méthode renvoie les valeurs de la liste CART_ITEMS si le panier n'est pas vide ou retourne 0 si le panier est vide.
Le script du «commande«La classe est fournie ci-dessous:
"Créer une classe «client»
Après avoir ajouté le «commande«Classe, ajoutez le script pour définir le«client"Classe dans le boutique.py déposer. Il s'agit d'une autre classe d'enfants héritée du «commande”Classe contenant la méthode du constructeur et une méthode définie par l'utilisateur. Le but de ces méthodes est mentionné ci-dessous.
Méthodes:
Méthode du constructeur
La méthode du constructeur est définie par __init __ (). Supposons que l'utilisateur sélectionne la troisième option du deuxième menu («Confirmer le paiement»). Dans ce cas, le constructeur du «client«La classe sera appelée pour initialiser les informations du client au moment de la création d'objets du«client»Classe et rivaliser pour la tâche d'achat. Cette méthode prendra quatre arguments. Ce sont le nom, l'adresse, le téléphone et l'argent.
achat_info ():
Cette méthode a été définie pour afficher les détails d'achat contenant le numéro de commande, la date de commande, le nom du client, l'adresse du client, le téléphone du client, la liste des produits achetés et le prix total de tous les produits achetés. Ici, le numéro de commande sera généré à l'aide de la fonction aléatoire (). Cette méthode sera appelée si la valeur en espèces ajoutée par l'utilisateur est supérieure ou égale à la valeur de le CART_AMOUNT variable.
Le script du «client«La classe est fournie ci-dessous:
"Créer des objets
Après avoir défini les classes d'application nécessaires, ajoutez le script pour créer des objets pour l'utilisation des variables de classe et appelez les méthodes pour compléter la mise en œuvre de «l'application de gâteau». Au début, l'objet du «boutique«La classe sera définie, et le display_menu () La méthode sera appelée en utilisant cet objet pour afficher le menu principal. Dans le script, la première boucle infinie a été utilisée pour afficher le menu principal au début de l'application et après avoir confirmé ou annulé l'achat. Cette boucle sera terminée et l'application sera fermée lorsque l'utilisateur sélectionnera la troisième option («sortie») du menu principal. La deuxième boucle infinie a été utilisée pour ajouter les produits dans le panier jusqu'à ce que les types d'utilisateurs "aucun" et affiche le deuxième menu après avoir ajouté ou retiré un produit dans le chariot. Cette boucle sera résiliée si l'utilisateur sélectionne le troisième («Confirmer le paiement») ou la quatrième («annuler») du deuxième menu. Supposons que l'utilisateur sélectionne la troisième option du deuxième menu et que le montant en espèces ajouté par l'utilisateur est inférieur au CART_AMOUNT valeur. Ensuite, le deuxième menu réapparaîtra en affichant le message: «Vous n'avez pas assez d'équilibre.". Les deux CART_ITEMS et CART_AMOUNT Les valeurs seront effacées après avoir terminé la deuxième boucle infinie pour effectuer le prochain achat. Le script de cette pièce est fourni ci-dessous:
# Déclarer l'objet de la classe «Shop»Sortie de l'application
Après avoir ajouté tous les scripts dans le boutique.py fichier en série, vous pouvez vérifier si l'application fonctionne correctement ou non. La façon d'utiliser cette application a été montrée dans cette partie du tutoriel.
Exécuter l'application
Au début, l'utilisateur doit ouvrir le terminal et aller à l'emplacement où le des produits.SMS et boutique.py les fichiers sont situés. Vous devez stocker ces fichiers au même emplacement pour obtenir la sortie correctement. Exécutez la commande suivante pour exécuter l'application:
$ Python3 Shop.pyLa sortie suivante apparaîtra après l'exécution de la commande précédente. Ceci est le menu principal de cette application. L'utilisateur peut sélectionner l'une des trois options affichées dans la sortie en tapant "1" ou "2" ou "3". La liste des produits sera affichée si l'utilisateur type, "1". L'invite d'entrée pour prendre le nom du produit apparaît si l'utilisateur type, "2". L'application sera fermée si l'utilisateur type, "3". Le menu apparaît à nouveau si l'utilisateur tape un autre caractère.
PRODUCTION DES PRODUITS
La sortie suivante apparaîtra si l'utilisateur type "1". Le contenu du des produits.SMS Le fichier a été affiché dans cette sortie. L'utilisateur peut sélectionner tous les noms de gâteaux indiqués dans la sortie pour ajouter au panier, et l'utilisateur doit sélectionner la deuxième option du menu pour effectuer la tâche.
Ajouter le produit dans le chariot en utilisant le menu principal
Il existe deux façons dans l'application pour ajouter le produit au panier. La première façon est de sélectionner la deuxième option du menu principal. La sortie suivante apparaîtra si l'utilisateur a tapé "2". L'utilisateur doit taper le nom de tout élément de gâteau qui existe dans le fichier pour l'ajouter au panier.
La sortie suivante apparaîtra si les types d'utilisateurs "Gâteau de boue"Cela existe dans la liste de produits. La sortie montre que le produit a été ajouté au panier et que l'utilisateur peut ajouter un autre produit en tapant à nouveau le nom du produit. Si l'utilisateur ne veut ajouter aucun produit, il doit taper "aucun".
La sortie suivante apparaîtra si un autre produit nommé «Gâteau au café" est ajouté:
La sortie suivante apparaîtra si la valeur "aucun”Est tapé comme valeur d'entrée. La liste des éléments de panier est indiquée dans la sortie. Deux articles à gâteau ont été ajoutés: «Gâteau de boue" et "Gâteau au café". Le prix du «Gâteau de boue" est 35 $ et le "Gâteau au café" est 22 $. Le prix total des gâteaux est de 35 $ + 22 $ = 57 $, montré dans la sortie. Le deuxième menu a été affiché après avoir affiché les informations du panier. L'utilisateur peut ajouter des produits, supprimer des produits, acheter les produits ajoutés au panier et annuler l'achat à l'aide de ce menu:
Ajouter le produit dans le chariot en utilisant le deuxième menu
La sortie suivante apparaîtra si l'utilisateur a tapé "2". L'utilisateur doit taper le nom de tout élément de gâteau qui existe dans le fichier pour l'ajouter au panier.
La sortie suivante apparaîtra après avoir tapé le «gâteau à la vanille» comme valeur d'entrée. L'utilisateur peut ajouter plus d'articles au panier en tapant à nouveau le nom du produit. Si l'utilisateur ne veut pas ajouter plus de produits, il doit taper «aucun» pour arrêter d'ajouter le produit au panier.
La sortie suivante apparaîtra après avoir tapé "aucun«Comme valeur d'entrée. La sortie montre que le nouveau produit «Gâteau à la vanille"A été ajouté au panier et au prix du"Gâteau à la vanille"A été ajouté avec le montant du panier. Ainsi, le montant total est maintenant de 57 $ + 30 $ = 87 $. Le deuxième menu est réapparu. Le but de ce menu a été expliqué précédemment.
Retirez le produit du chariot
La sortie suivante apparaîtra si les types d'utilisateurs "2«Comme valeur d'entrée. L'utilisateur doit taper le nom de tout élément de gâteau qui existe dans le chariot pour le retirer du chariot. Si l'utilisateur tape une valeur qui n'existe pas dans le panier, alors un message d'erreur sera imprimé.
La sortie suivante apparaîtra si les types d'utilisateurs "Gateau au chocolat«Comme valeur d'entrée qui existe dans les produits.fichier txt mais n'existe pas dans le panier. Donc, le message d'erreur, "Le produit n'existe pas dans le panier.", Est apparu dans la sortie, et aucun élément n'a été ajouté ou supprimé du chariot. La valeur totale du montant du panier n'a pas également changé.
La sortie suivante apparaîtra si l'utilisateur type, "Gâteau au café«Comme la valeur d'entrée qui existe dans le panier. Le message de réussite, «le produit est supprimé du chariot», a été imprimé. La sortie montre également que «Gâteau au café"A été supprimé du panier, et la valeur de prix de cet article a été déduite de la valeur du montant du panier. Le prix du «Gâteau au café"Est 22 $. Ainsi, le montant total du panier est maintenant de 87 $ - 22 $ = 65 $.
La sortie suivante apparaîtra si tous les éléments du panier sont supprimés. La sortie affiche deux messages. L'un est de supprimer le dernier produit, et un autre est d'informer l'utilisateur que le panier est maintenant vide. Puisqu'il n'y a pas de produit dans le panier, le deuxième menu a disparu et le menu principal est réapparu.
Effectuer le paiement
La troisième option du deuxième menu est utilisée pour confirmer l'achat en ajoutant les informations du client et la valeur du montant du panier. La sortie suivante apparaîtra si l'utilisateur type "3" Pour sélectionner la troisième option du deuxième menu après avoir ajouté des articles à gâteau au chariot. La sortie montre que deux articles à gâteau sont ajoutés au chariot, et le prix total des gâteaux est de 60 $. L'invite d'entrée pour prendre le nom du client est apparue après avoir tapé la valeur, "3". Ensuite, d'autres invites d'entrée semblent ajouter d'autres informations liées au client et le montant en espèces pour acheter le produit.
Dans la sortie suivante, le nom, l'adresse du client, le numéro de téléphone et le montant en espèces ont été ajoutés. Mais la valeur de trésorerie ajoutée est inférieure au prix total des produits. Le montant total du panier était de 60 $ et 45 $ ont été ajoutés comme valeur de trésorerie. Le message: «Vous n'avez pas assez d'équilibre."Est apparu pour cette raison, et la commande a été annulée en rendant le chariot vide. Le menu principal est réapparu.
La sortie suivante apparaîtra si l'argent ajouté par l'utilisateur est égal ou supérieur au montant total du panier. Ici, le prix total du panier est de 35 $, et l'utilisateur a ajouté 100 $ comme valeur de trésorerie, ce qui est supérieur au prix total. La sortie montre également qu'un nombre aléatoire a été généré comme numéro de commande, et la date du système actuelle a été imprimée à la date de commande. Le menu principal est réapparu pour le prochain achat. Le solde actuel de l'utilisateur est de 100 $ - 35 $ = 65 $. Si le même utilisateur achète à nouveau un article de gâteau dans la boutique, le montant d'achat sera déduit du solde actuel de l'utilisateur.
La sortie suivante apparaîtra si l'utilisateur achète à nouveau et que le montant d'achat est inférieur à son solde actuel. Selon la production, deux articles à gâteau ont été ajoutés au chariot et le prix total des gâteaux est de 47 $. L'utilisateur a ajouté 0 $ en espèces, mais le solde actuel du client est de 65 $. Ainsi, le paiement a été achevé avec succès et le message «merci» a été imprimé. Le solde actuel de l'utilisateur est de 65 $ - 47 $ = 18 $.
Si le même utilisateur ajoute à nouveau un élément au panier et que le prix total de l'élément est inférieur au solde actuel de l'utilisateur, la sortie suivante apparaîtra. Le solde actuel de l'utilisateur est de 18 $ après la dernière transaction, mais le prix total du produit est de 30 $. Donc, le message: «Vous n'avez pas assez d'équilibre."A été imprimé et la commande a été annulée en rendant le panier vide.
La sortie suivante apparaîtra si l'utilisateur ajoute 12 $ avec les 18 $ pour acheter le «Gâteau à la vanille«De 30 $. Le solde actuel de l'utilisateur est de 0 $ après l'achat.
Annuler le paiement
L'utilisateur peut annuler la commande après avoir ajouté des articles au panier en sélectionnant la quatrième option du deuxième menu ou en supprimant tous les articles du panier. La sortie suivante apparaîtra si l'utilisateur sélectionne la quatrième option du deuxième menu en tapant "4". Le message: «Vous avez annulé votre achat.»A été imprimé pour annuler la commande. Le moyen d'annuler la commande en supprimant tous les articles du chariot a été montré avant. Le menu principal sera apparu après l'annulation de la commande.
Fermez la demande
L'application peut être fermée en sélectionnant la troisième option dans le menu principal. La sortie suivante apparaîtra si l'utilisateur type "3" Pour fermer la demande. La demande a été résiliée par le message «terminé à partir de la demande».
Limitations de cette application
La façon d'implémenter une application textuelle très simple par les classes Python a été affichée dans ce tutoriel. Mais cette application a certaines limites, qui sont mentionnées ci-dessous:
*** Les lecteurs de ce tutoriel essaieront de mettre en œuvre les fonctionnalités mentionnées ci-dessus pour développer leurs compétences en programmation et rendre l'application plus efficace pour l'apprentissage.
Tutoriel vidéo sur ce sujet
Conclusion
Les directives pour implémenter une application Python simple basée sur le texte ont été fournies dans ce didacticiel pour les utilisateurs de Python novices. Les fonctionnalités de base de l'application de la boutique sont utilisées pour mettre en œuvre dans ce tutoriel, telles que la liste de produits, ajouter au panier, supprimer du panier, système de paiement et annuler le paiement. Pour plus de simplicité, nous avons utilisé le fichier texte ici pour stocker les données en permanence. Mais toute application de base de données standard, telle que SQLite et MySQL, peut être utilisée pour gérer les données d'application plus efficacement.