<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了python實現庫存商品管理系統的具體程式碼,供大家參考,具體內容如下
請設計一個商品管理系統,程式要求根據使用者輸入的選項進入相應的功能模組,並顯示相應的提示資訊。若使用者輸入其他選項時,提示“輸入有誤”。
程式的功能模組有:
1、新增
程式讀取原始檔路徑下的goodinformation.txt,若沒有就建立。當新增的商品已存在時,顯示“該商品已存在”
2、查詢
根據使用者輸入的商品名稱,查詢商品資訊,並輸出。當查詢的商品不存在時,顯示“商品庫中無該商品”
3、統計
根據goodinformation.xt中的資料,生成統計資料,包括(商品種類,商品總數,銷售總額,商品均價),並寫入到goodtotal.txt中去
4、退出
退出執行。
提示:
字典、列表、函數、檔案的開啟和讀取等
1.如果具體功能程式碼無法實現,那麼就把程式架構完成,比如羅列需要的函數,並且新增適當的註釋。
2.新增測試用例,即根據題目功能,可以寫明如果輸入為XXX,輸出 應該為YYY。
程式碼入下,為了增強程式的健壯性,使用了re模組防止輸入輸出出現逗號標點符號不識別的情況。
# 假設檔案中的資料按照這樣來寫:藍莓,10,20(一行的資料) import re def read_goods(fn): fdic = {} with open(fn, "r") as f: for i in f.readlines(): goodl = list(re.split(r"[,,]", i)) goodl = [x.strip() for x in goodl] fdic[goodl[0]] = goodl return fdic def add_goods(fdic, fn): goods_list = list(re.split('[,,]', input("請輸入商品資訊(商品名稱,單價,數量),直接輸入回車退出:"))) if goods_list[0] == "": return 0 elif len(goods_list) == 3: try: a = eval(goods_list[1]) + eval(goods_list[2]) # 防止輸入價格時輸入非數位符號 except NameError: print("價格請輸入數位符號") else: if goods_list[0] in fdic.keys(): print("該商品已存在") else: fdic[goods_list[0]] = goods_list with open(fn, "a") as f: f.writelines(','.join(goods_list)) f.write("n") add_goods(fdic, fn) else: if goods_list[0] in fdic.keys(): print("該商品已存在") else: print("輸入錯誤請重新輸入") add_goods(fdic, fn) def find_goods(fdic): while True: good_name = input("請輸入查詢商品名稱,直接輸入回車退出:") if good_name == "": break else: for k in fdic.keys(): if k == good_name: print("{},{:.2f}".format(k, eval(fdic[k][2]))) find_goods(fdic) return 0 print("商品庫中無該商品") def count(fdic, fn): type_amount = len(fdic) good_amount, total_sales, sum_price, ave_price = 0, 0, 0, 0 for v in fdic.values(): good_amount += eval(v[2]) total_sales += eval(v[2]) * eval(v[1]) sum_price += eval(v[1]) try: ave_price = sum_price / type_amount with open(fn, "w") as f: text = "商品種類: " + str(type_amount) + "n商品總數: " + str(good_amount) + "n銷售總額: " + str(total_sales) + "n商品均價: " + str(ave_price) f.write(text) except ZeroDivisionError: with open(fn, "w+") as f: f.seek(0) text = "商品種類: 0n商品總數: 0 n銷售總額: 0n商品均價: 0" f.write(text) return print("商品統計資料已寫入統計檔案") def main(): goodinfo = "C:\Users\13935\Desktop\goodinformation.txt" # 換成自己的路徑 goodtotal = "C:\Users\13935\Desktop\goodtotle.txt" # 換成自己的路徑 goods_dict = read_goods(goodinfo) print("1. 查詢商品n2. 新增商品n3. 統計商品n4. 退出n") while True: try: info = eval(input('請輸入您的選擇:')) if info == 1: find_goods(goods_dict) elif info == 2: add_goods(goods_dict, goodinfo) elif info == 3: count(goods_dict, goodtotal) elif info == 4: break else: print("輸入錯誤請重新輸入") except NameError: print("輸入錯誤請重新輸入") return 0 main()
執行結果:
生成兩個檔案:
本要求截圖如下
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45