python實(shí)現(xiàn)超市管理系統(tǒng)(后臺(tái)管理)
本文實(shí)例為大家分享了python實(shí)現(xiàn)超市管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
這個(gè)相比上個(gè)程序簡(jiǎn)單很多,首先他沒(méi)有太過(guò)復(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ù)來(lái)初始化商品 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("歡迎來(lái)到 哼嘿哈嘿樂(lè)園") print('哈嘿樂(lè)園的商品清單:') print("%13s%40s%10s%10s" % ("條碼", "商品名稱(chēng)", "單價(jià)","數(shù)量")) # 遍歷repository的所有value來(lái)顯示商品清單 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)買(mǎi)商品") else: title = "%-5s|%15s|%40s|%10s|%4s|%10s" % \ ("ID", "條碼", "商品名稱(chēng)", "單價(jià)", "數(shù)量", "小計(jì)") print(title) print("-" * 100) # 記錄總計(jì)的價(jià)錢(qián) 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] # 獲取商品條碼讀取商品,再獲取商品的名稱(chēng) 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)買(mǎi)商品,就是向代表用戶購(gòu)物清單的list列表中添加一項(xiàng)。 def add(): # 等待輸入條碼 code = input("請(qǐng)輸入商品的條碼:\n") # 沒(méi)有找到對(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)買(mǎi)數(shù)量:\n") # 把商品和購(gòu)買(mǎi)數(shù)量封裝成list后加入購(gòu)物清單 shop_list.append([code, int(number)]) # 修改購(gòu)買(mǎi)商品的數(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)買(mǎi)數(shù)量 number = input("請(qǐng)輸入新的購(gòu)買(mǎi)數(shù)量:\n") # 修改item里面的number item[1] = int(number) # 刪除購(gòu)買(mǎi)的商品明細(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)輸入商品名稱(chē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") # 如果用戶輸入的字符沒(méi)有對(duì)應(yīng)的命令 if cmd not in cmd_dict: print("不要玩,好不好!") else: cmd_dict[cmd]() # 顯示清單和操作命令提示 while True: show_list() show_command()
結(jié)語(yǔ):
新增了后臺(tái)處理,但是代碼還是很不完善,還有很多問(wèn)題存在,這只是大概的思路,希望能給小伙伴們點(diǎn)啟發(fā)
小伙伴們?nèi)绻胁磺宄牡胤秸?qǐng)留言,我們共同進(jìn)步
感謝:
本文源碼參考瘋狂python講義
更多學(xué)習(xí)資料請(qǐng)關(guān)注專(zhuān)題《管理系統(tǒng)開(kāi)發(fā)》。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python 網(wǎng)絡(luò)編程之TCP客戶端/服務(wù)端功能示例【基于socket套接字】
這篇文章主要介紹了Python 網(wǎng)絡(luò)編程之TCP客戶端/服務(wù)端功能,結(jié)合實(shí)例形式分析了Python使用socket套接字實(shí)現(xiàn)TCP協(xié)議下的客戶端與服務(wù)器端數(shù)據(jù)傳輸操作技巧,需要的朋友可以參考下2019-10-10python 實(shí)現(xiàn)簡(jiǎn)單的FTP程序
這篇文章主要介紹了python 實(shí)現(xiàn)簡(jiǎn)單的FTP程序,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12Python利用柯里化實(shí)現(xiàn)提高代碼質(zhì)量
柯里化(Currying)是函數(shù)式編程中的一個(gè)重要概念,它可以將一個(gè)多參數(shù)函數(shù)轉(zhuǎn)化為一系列單參數(shù)函數(shù)的組合,本文將詳細(xì)解釋什么是柯里化,如何在Python中實(shí)現(xiàn)柯里化,感興趣的可以了解下2024-01-01使用Python的Turtle繪制哆啦A夢(mèng)實(shí)例
今天小編就為大家分享一篇使用Python的Turtle繪制哆啦A夢(mèng)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11python實(shí)現(xiàn)身份證實(shí)名認(rèn)證的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于python實(shí)現(xiàn)身份證實(shí)名認(rèn)證的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11對(duì)python for 文件指定行讀寫(xiě)操作詳解
今天小編就為大家分享一篇對(duì)python for 文件指定行讀寫(xiě)操作詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12Python 實(shí)現(xiàn) T00ls 自動(dòng)簽到腳本代碼(郵件+釘釘通知)
這篇文章主要介紹了Python 實(shí)現(xiàn) T00ls 自動(dòng)簽到腳本(郵件+釘釘通知),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07