python實(shí)現(xiàn)超市管理系統(tǒng)(后臺(tái)管理)
本文實(shí)例為大家分享了python實(shí)現(xiàn)超市管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
這個(gè)相比上個(gè)程序簡(jiǎn)單很多,首先他沒有太過復(fù)雜的邏輯關(guān)系,它的邏輯線條很清晰,你能很清楚的知道要做什么,只要往自己想的方面實(shí)現(xiàn)就行,代碼如下
# coding: utf-8
# 定義倉(cāng)庫(kù)
repository = dict()
# 定義購(gòu)物清單對(duì)象
shop_list = []
# 定義倉(cāng)庫(kù)里商品數(shù)量
shangpin = [["1000001", "你好世界", 88.0, 10], \
["1000002", "瘋狂python講義", 69.0, 12],\
["1000003", "康復(fù)手冊(cè)", 59.0, 188],\
["1000004", "瘋狂Java講義", 109.0, 56],\
["1000005", "瘋狂Android講義", 108.0, 100],\
["1000006", "世界起源", 77.0, 122]]
# 定義一個(gè)函數(shù)來初始化商品
def init_repository():
# 遍歷商品生成倉(cāng)庫(kù)dict字典
for i in range(len(shangpin)) :
repository[shangpin[i][0]] = shangpin[i]
#顯示超市的商品清單,就是遍歷代表倉(cāng)庫(kù)的dict字典
def show_goods():
print("歡迎來到 哼嘿哈嘿樂園")
print('哈嘿樂園的商品清單:')
print("%13s%40s%10s%10s" % ("條碼", "商品名稱", "單價(jià)","數(shù)量"))
# 遍歷repository的所有value來顯示商品清單
for s in repository.values():
s = tuple(s)
print("%15s%40s%12s%12s" % s)
# 顯示購(gòu)物清單,就是遍歷代表購(gòu)物清單的list列表
def show_list():
print("=" * 100)
# 如果清單不為空的時(shí)候,輸出清單的內(nèi)容
if not shop_list:
print("還未購(gòu)買商品")
else:
title = "%-5s|%15s|%40s|%10s|%4s|%10s" % \
("ID", "條碼", "商品名稱", "單價(jià)", "數(shù)量", "小計(jì)")
print(title)
print("-" * 100)
# 記錄總計(jì)的價(jià)錢
sum = 0
# 遍歷代表購(gòu)物清單的list列表
for i, item in enumerate(shop_list,start=1):
# 轉(zhuǎn)換id為索引加1
id = i
# 獲取該購(gòu)物項(xiàng)的第1個(gè)元素:商品條碼
code = item[0]
# 獲取商品條碼讀取商品,再獲取商品的名稱
name = repository[code][1]
# 獲取商品條碼讀取商品,再獲取商品的單價(jià)
price = repository[code][2]
# 獲取該購(gòu)物項(xiàng)的第2個(gè)元素:商品數(shù)量
number = item[1]
# 小計(jì)
amount = price * number
# 計(jì)算總計(jì)
sum = sum + amount
line = "%-5s|%17s|%40s|%12s|%6s|%12s" % \
(id, code, name, price, number, amount)
print( line )
print("-" * 100)
print(" 總計(jì): " , sum)
print("=" * 100)
# 添加購(gòu)買商品,就是向代表用戶購(gòu)物清單的list列表中添加一項(xiàng)。
def add():
# 等待輸入條碼
code = input("請(qǐng)輸入商品的條碼:\n")
# 沒有找到對(duì)應(yīng)的商品,條碼錯(cuò)誤
if code not in repository:
print("條碼錯(cuò)誤,請(qǐng)重新輸入")
return
# 根據(jù)條碼找商品
goods = repository[code]
# 等待輸入數(shù)量
number = input("請(qǐng)輸入購(gòu)買數(shù)量:\n")
# 把商品和購(gòu)買數(shù)量封裝成list后加入購(gòu)物清單
shop_list.append([code, int(number)])
# 修改購(gòu)買商品的數(shù)量,就是修改代表用戶購(gòu)物清單的list列表的元素
def edit():
id = input("請(qǐng)輸入要修改的購(gòu)物明細(xì)項(xiàng)的ID:\n")
# id減1得到購(gòu)物明細(xì)項(xiàng)的索引
index = int(id) - 1
# 根據(jù)索引獲取某個(gè)購(gòu)物明細(xì)項(xiàng)
item = shop_list[index]
# 提示輸入新的購(gòu)買數(shù)量
number = input("請(qǐng)輸入新的購(gòu)買數(shù)量:\n")
# 修改item里面的number
item[1] = int(number)
# 刪除購(gòu)買的商品明細(xì)項(xiàng),就是刪除代表用戶購(gòu)物清單的list列表的一個(gè)元素。
def delete():
id = input("請(qǐng)輸入要?jiǎng)h除的購(gòu)物明細(xì)項(xiàng)的ID: ")
index = int(id) - 1
# 直接根據(jù)索引從清單里面刪除掉購(gòu)物明細(xì)項(xiàng)
del shop_list[index]
def payment():
# 先打印清單
show_list()
print('\n' * 3)
print("歡迎下次光臨")
# 退出程序
import os
os._exit(0)
# 后臺(tái)添加商品函數(shù)
def adds():
# 獲取要添加的商品信息
a = input("請(qǐng)輸入商品條碼:")
b = input('請(qǐng)輸入商品名稱:')
c = input('請(qǐng)輸入商品單價(jià):')
d = input('請(qǐng)輸入商品數(shù)量:')
# 添加到商品列表
shangpin.append([a,b,c,d])
# 重新打印商品清單
init_repository()
show_goods()
# 后天修改商品屬性函數(shù)
def edits():
a = input("請(qǐng)輸入商品條碼:")
# 獲取此商品條碼的新的值
if a in repository.keys():
e = input("請(qǐng)輸入修改后商品名字:")
f = input("請(qǐng)輸入修改后商品單價(jià):")
g = input("請(qǐng)輸入修改后商品數(shù)量:")
repository.update({a:[a,e,f,g]})
print(repository[a])
show_goods()
else:
print('輸入條碼有誤')
def deletes():
h = input('請(qǐng)輸入您要下架商品條碼:')
# 直接根據(jù)條碼從倉(cāng)庫(kù)里面刪除掉此商品
repository.pop(h)
show_goods()
# 重新打印商品清單
def show_good():
show_goods()
# 后臺(tái)支持的操作
cmd_dicts = {'a': adds, 'e': edits, 'd': deletes, 's': show_good, 'q': quit}
def root():
# 先打印清單
show_goods()
print("歡迎進(jìn)入超市貨品管理平臺(tái)")
print("=" * 100)
while True:
cmds = input("后臺(tái)操作指令: \n" +
" 添加商品(a) 修改商品(e) 刪除商品(d) 全部商品(s) 退出(q)\n")
if cmds == 'q' :
return
elif cmds not in cmd_dicts:
print("好好玩,行嗎!")
else:
cmd_dicts[cmds]()
# 用戶所支持的操作
cmd_dict = {'a': add, 'e': edit, 'd': delete, 'p': payment, 's': show_goods, 'r': root }
# 初始倉(cāng)庫(kù)并展示
init_repository()
show_goods()
# 顯示命令提示
def show_command():
# 等待命令
cmd = input("用戶操作指令: \n" +
" 添加(a) 修改(e) 刪除(d) 結(jié)算(p) 超市商品(s) 后臺(tái)管理(r)\n")
# 如果用戶輸入的字符沒有對(duì)應(yīng)的命令
if cmd not in cmd_dict:
print("不要玩,好不好!")
else:
cmd_dict[cmd]()
# 顯示清單和操作命令提示
while True:
show_list()
show_command()結(jié)語:
新增了后臺(tái)處理,但是代碼還是很不完善,還有很多問題存在,這只是大概的思路,希望能給小伙伴們點(diǎn)啟發(fā)
小伙伴們?nèi)绻胁磺宄牡胤秸?qǐng)留言,我們共同進(jìn)步
感謝:
本文源碼參考瘋狂python講義
更多學(xué)習(xí)資料請(qǐng)關(guān)注專題《管理系統(tǒng)開發(fā)》。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python使用socket向客戶端發(fā)送數(shù)據(jù)的方法
這篇文章主要介紹了python使用socket向客戶端發(fā)送數(shù)據(jù)的方法,涉及Python使用socket實(shí)現(xiàn)數(shù)據(jù)通信的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
python中l(wèi)ist循環(huán)語句用法實(shí)例
這篇文章主要介紹了python中l(wèi)ist循環(huán)語句用法,以實(shí)例形式詳細(xì)介紹了Python針對(duì)list的解析,包含各種常見的遍歷操作及原理分析,需要的朋友可以參考下2014-11-11
?python中pandas讀取csv文件?時(shí)如何省去csv.reader()操作指定列步驟
這篇文章主要介紹了?python中pandas讀取csv文件?時(shí)如何省去csv.reader()操作指定列步驟,對(duì)正在工作的你可能有一定的幫助,需要的朋友可以參考一下2022-01-01
Seaborn數(shù)據(jù)分析NBA球員信息數(shù)據(jù)集
這篇文章主要為大家介紹了Seaborn數(shù)據(jù)分析處理NBA球員信息數(shù)據(jù)集案例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
對(duì)python:print打印時(shí)加u的含義詳解
今天小編就為大家分享一篇對(duì)python:print打印時(shí)加u的含義詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12
解決Pytorch 加載訓(xùn)練好的模型 遇到的error問題
今天小編就為大家分享一篇解決Pytorch 加載訓(xùn)練好的模型 遇到的error問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-01-01
關(guān)于Python ImportError: No module named&nb
最近多個(gè)小伙伴兒?jiǎn)枴癐mportError: No module named xxx“,應(yīng)該怎么樣解決,下面小編給大家?guī)砹岁P(guān)于Python ImportError: No module named 通用解決方法,感興趣的朋友一起看看吧2022-11-11
Python中Selenium模擬JQuery滑動(dòng)解鎖實(shí)例
這篇文章主要介紹了Python中Selenium模擬JQuery滑動(dòng)解鎖實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
Python編程之字符串模板(Template)用法實(shí)例分析
這篇文章主要介紹了Python編程之字符串模板(Template)用法,結(jié)合具體實(shí)例形式分析了Python字符串模板的功能、定義與使用方法,需要的朋友可以參考下2017-07-07

