python超市售货统计程序_用Python实现简易超市售货系统
今天來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的超市售貨系統(tǒng)
數(shù)據(jù)存儲(chǔ)形式為json的數(shù)據(jù)
首先是讀取數(shù)據(jù),這里用到的Python的json庫(kù),用于處理json類(lèi)型的數(shù)據(jù)
```python
def load(): # 數(shù)據(jù)讀取
j = open('goods.txt', 'r', encoding='utf-8')
# 逐行讀取文件中的數(shù)據(jù)
readers = j.readlines()
# 將數(shù)據(jù)整理后存入data
for i in readers:
# 對(duì)數(shù)據(jù)進(jìn)行清洗 以-為間隔符分割 然后將后半段的換行符清洗掉 將單引號(hào)換成雙引號(hào)
data[i.split('-')[0]] = json.loads(i.split('-')[-1].replace('\n', '').replace("\'", '\"'))
for i in data:
for j in data[i]:
data[i][j] = [data[i][j], random.randint(100, 1000)]
```
然后就是超市的主體部分,實(shí)現(xiàn)了用戶(hù)購(gòu)買(mǎi)多次購(gòu)買(mǎi)商品,并打印訂單
```python
def sale():
print('歡迎來(lái)到XXX超市')
while True:
# 讓用戶(hù)輸入購(gòu)買(mǎi)物品的類(lèi)別
print(' '.join(list(data.keys())))
category = input('請(qǐng)選擇你想購(gòu)買(mǎi)的類(lèi)別:')
# 判斷用戶(hù)輸入的類(lèi)別是否存在
if category not in data.keys():
print('您輸入的類(lèi)別不存在,情重新輸入')
continue
# 將用戶(hù)選擇的類(lèi)別內(nèi)的商品都放入commoditys進(jìn)行保存
commoditys = data[category]
while True:
print('進(jìn)入商品選購(gòu)')
print(' '.join([k+str(v[0]) for k,v in commoditys.items()]))
# 讓用戶(hù)輸入購(gòu)買(mǎi)的商品名
commodity = input('請(qǐng)輸入你購(gòu)買(mǎi)的商品:')
# 判斷用戶(hù)選擇的商品是否存在
if commodity not in commoditys.keys():
print('您輸入的商品不存在,請(qǐng)重新輸入')
continue
# 讓用戶(hù)輸入購(gòu)買(mǎi)商品的數(shù)量
number = int(input('請(qǐng)輸入購(gòu)買(mǎi)商品的數(shù)量:'))
# 將庫(kù)存減少
data[category][commodity][1] -= number
# 將購(gòu)物單子存入購(gòu)物清單中
detailed_list.append([commodity, commoditys[commodity][0], number, commoditys[commodity][0]*number, data[category][commodity][1]])
print('當(dāng)前的購(gòu)物清單為')
# 將購(gòu)物清單打印出來(lái)
print('商品名 數(shù)量 總價(jià)')
for i in detailed_list:
print(i[0], i[2], i[3])
# 判斷用戶(hù)是否繼續(xù)選擇商品
if input('是否繼續(xù)選擇商品,是輸入y:') != 'y':
break
# 判斷用戶(hù)是否繼續(xù)購(gòu)物
if input('是否繼續(xù)選擇購(gòu)物,是輸入y:') != 'y':
break
print('=' * 50)
print(' 商品名稱(chēng)|單價(jià)| 數(shù)量| 小計(jì)| 庫(kù)存|')
print('-' * 50)
# 格式化循環(huán)打印購(gòu)物清單
for i in detailed_list:
print('{:>6}|{:>2}|{:>8}|{:>8}|{:>8}|'.format(i[0], str(i[1]), str(i[2]), str(i[3]), str(i[4])))
print('-' * 50)
print(' 總消費(fèi):%.2f '%(sum([i[3] for i in detailed_list])))
print('=' * 50)
print('歡迎再來(lái)!')
```
全部代碼如下:
```python
import json
import random
def load(): # 數(shù)據(jù)讀取
j = open('goods.txt', 'r', encoding='utf-8')
# 逐行讀取文件中的數(shù)據(jù)
readers = j.readlines()
# 將數(shù)據(jù)整理后存入data
for i in readers:
# 對(duì)數(shù)據(jù)進(jìn)行清洗 以-為間隔符分割 然后將后半段的換行符清洗掉 將單引號(hào)換成雙引號(hào)
data[i.split('-')[0]] = json.loads(i.split('-')[-1].replace('\n', '').replace("\'", '\"'))
for i in data:
for j in data[i]:
data[i][j] = [data[i][j], random.randint(100, 1000)]
def sale():
print('歡迎來(lái)到XXX超市')
while True:
# 讓用戶(hù)輸入購(gòu)買(mǎi)物品的類(lèi)別
print(' '.join(list(data.keys())))
category = input('請(qǐng)選擇你想購(gòu)買(mǎi)的類(lèi)別:')
# 判斷用戶(hù)輸入的類(lèi)別是否存在
if category not in data.keys():
print('您輸入的類(lèi)別不存在,情重新輸入')
continue
# 將用戶(hù)選擇的類(lèi)別內(nèi)的商品都放入commoditys進(jìn)行保存
commoditys = data[category]
while True:
print('進(jìn)入商品選購(gòu)')
print(' '.join([k+str(v[0]) for k,v in commoditys.items()]))
# 讓用戶(hù)輸入購(gòu)買(mǎi)的商品名
commodity = input('請(qǐng)輸入你購(gòu)買(mǎi)的商品:')
# 判斷用戶(hù)選擇的商品是否存在
if commodity not in commoditys.keys():
print('您輸入的商品不存在,請(qǐng)重新輸入')
continue
# 讓用戶(hù)輸入購(gòu)買(mǎi)商品的數(shù)量
number = int(input('請(qǐng)輸入購(gòu)買(mǎi)商品的數(shù)量:'))
# 將庫(kù)存減少
data[category][commodity][1] -= number
# 將購(gòu)物單子存入購(gòu)物清單中
detailed_list.append([commodity, commoditys[commodity][0], number, commoditys[commodity][0]*number, data[category][commodity][1]])
print('當(dāng)前的購(gòu)物清單為')
# 將購(gòu)物清單打印出來(lái)
print('商品名 數(shù)量 總價(jià)')
for i in detailed_list:
print(i[0], i[2], i[3])
# 判斷用戶(hù)是否繼續(xù)選擇商品
if input('是否繼續(xù)選擇商品,是輸入y:') != 'y':
break
# 判斷用戶(hù)是否繼續(xù)購(gòu)物
if input('是否繼續(xù)選擇購(gòu)物,是輸入y:') != 'y':
break
print('=' * 50)
print(' 商品名稱(chēng)|單價(jià)| 數(shù)量| 小計(jì)| 庫(kù)存|')
print('-' * 50)
# 格式化循環(huán)打印購(gòu)物清單
for i in detailed_list:
print('{:>6}|{:>2}|{:>8}|{:>8}|{:>8}|'.format(i[0], str(i[1]), str(i[2]), str(i[3]), str(i[4])))
print('-' * 50)
print(' 總消費(fèi):%.2f '%(sum([i[3] for i in detailed_list])))
print('=' * 50)
print('歡迎再來(lái)!')
if __name__ == '__main__':
detailed_list = [] # 購(gòu)物清單
data = {} # 數(shù)據(jù)存儲(chǔ)
# 讀取數(shù)據(jù)
load()
# print(data)
# 客戶(hù)開(kāi)始選購(gòu)
sale()
print('當(dāng)前庫(kù)存為:\n', data)
input('按回車(chē)退出')
```
效果圖:
一起學(xué)習(xí)python,小白指導(dǎo),教學(xué)分享記得私信我
總結(jié)
以上是生活随笔為你收集整理的python超市售货统计程序_用Python实现简易超市售货系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 腋臭手术需要多少钱啊?
- 下一篇: python如何获取url中的内容_py