您的位置:首页 > 其它

1. 手机销售系统(结合着本地文件的读写,进行数据的持久化(.txt),当程序退出的时候,将所有修改后的数据保存在txt中,等下一次再运行程序的时候,可以直接从txt中读取最新的数据信息)

2018-07-31 19:23 836 查看
import os
import pickle

查看手机信息的函数

def query_phone(type):
# phone_list = [{'name': 'vivo9', 'price': '1200', 'count': '30'},
#               {'name': 'iphone6', 'price': '2000', 'count': '55'},
#               {'name': 'iphone6s', 'price': '2200', 'count': '120'},
#               {'name': 'iphone7', 'price': '4000', 'count': '80'},
#               {'name': 'iphone7s', 'price': '4200', 'count': '90'},
#               {'name': 'iphone8', 'price': '5200', 'count': '70'}]
for x in range(0, len(phone_list)):
phone = phone_list[x]
name = phone['name']
if type == 1:
price = phone['price']
count = phone['count']

print('序号:%s  产品名称:%s  产品价格:%s  产品库存:%s' % (x+1, name, price, count))
else:
print('序号:%s  产品名称:%s' % (x+1, name))

购买手机的函数

def buy_phone():
if len(phone_list) <= 0:
print('当前无商品信息!')
return
print('1.选择序号查看手机详情:')
print('2.返回')
num = int(input('请选择您的操作:'))
while num not in range(1, 3):
num = int(input('选项有误,请重选:'))
if num == 1:
# 输入选择产品序号
index = int(input('请输入查看的产品序号:'))
while index not in range(0, len(phone_list)):
index = int(input('序号有误,请重选:'))
# 根据index的值,取出小字典
phone = phone_list[index]
# 输出产品序号、名称、价格、库存
print('序号:%s  产品名称:%s  产品价格:%s  产品库存:%s' % (index, phone['name'], phone['price'], phone['count']))
# 是否购买
print('1.购买')
print('2.返回')
num = int(input('请选择:'))
while num not in range(1, 3):
num = int(input('选择错误,请重选:'))
if num == 1:
count = phone['count']
count = count - 1
if count == 0:
# 手机卖完了
print('%s 已售罄,请及时补货!' % phone['name'])
phone_list.remove(phone)

else:
# 更改库存量
phone['count'] = count
return
else:
return

更改产品信息

def update_phone():
print('1.添加新产品')
print('2.修改原有产品')
print('3.返回')
num = int(input('请选择您的操作:'))
while num not in range(1, 4):
num = int(input('选项错误,请重选'))
if num == 1:
# 包括产品名称、价格、库存
name = input('请输入添加的产品名称:')
price = input('请输入添加的产品价格:')
# 转换为数字
count = int(input('请输入添加的产品库存量:'))
while count <= 0:
count = int(input('库存量不能小于1,请重新输入:'))
# 将产品信息组装为一个小字典
phone = {'name': name, 'price': price, 'count': count}
# 将小字典添加到大列表中
phone_list.append(phone)
save()
elif num == 2:
if len(phone_list) <= 0:
print('当前无商品信息!')
return
# 查询手机详细信息
query_phone(1)
index = int(input('请输入要修改的产品序号:'))
while index not in range(0, len(phone_list)):
index = int(input('序号有误,请重选:'))
# 根据index取出手机信息字典
phone = phone_list[index]
# 取出原来的名称
old_name = phone['name']
phone['name'] = input('请输入修改后的名称(%s):' % old_name)
phone['price'] = input('请输入修改后的价格(%s):' % phone['price'])
count = int(input('请输入修改后的库存量(%s):' % phone['count']))
# 库存量不能为0
while count <= 0:
count = int(input('库存不能小于1,请重新输入:'))
phone['count'] = count
print('修改成功!')
save()
else:
# 结束函数执行
return

声明大列表,存储所有手机信息

[{‘name’:’iPhone8’,’price’:’1999’,’count’:’1’},{‘name’:’iPhone8’,’price’:’1999’,’count’:’1’}]

def save():
with open('data.txt', 'wb') as f:
pickle.dump(phone_list, f)

if os.path.exists('data.txt'):
with open('data.txt', 'rb') as f:
phone_list = pickle.load(f)
else:
phone_list = []

while True:
print('1.查看所有手机品牌')
print('2.更改产品信息')
print('3.移除产品信息')
print('4.退出程序')

# 选择操作:
num = int(input('选择您的操作:'))
while num not in range(1, 5):
num = int(input('选项错误,请重选:'))
if num == 1:
query_phone(2)
buy_phone()
elif num == 2:
update_phone()
elif num == 3:
print('移除产品信息')
else:
# 结束循环
break
阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐