# 用字典写手机销售系统
'''
手机销售系统
手机品牌 手机价格 库存数量
vivoX9 2798 25
iphone7(32G) 4888 31
iphone7(128G) 5668 22
iphone7P(128G) 6616 29
iphone6(16G) 3858 14
....
功能要求:
四个选项:
1.查看所有手机品牌
1.vivoX9
2.iphone7(32G)
......
分支选项:
1.选择产品序号查看详情(根据序号输出产品名称,价格,库存)
1.购买(库存数量-1,库存为0时,删除该产品)
2.返回
2.返回
2.更改产品库存信息
1.添加新产品(添加新产品,包括产品名称、价格、库存)
2.修改原有产品
输出所有产品信息(将产品的名称 价格 库存)
1.根据选择序号进行修改
2.返回
3.移除产品库存信息
1.查看所有产品,根据序号移除
2.移除所有产品
3.返回
4.退出程序
'''
# 查看手机信息的函数
def query_phone(type):
'''
:param type: 查询时,输出的类型 1.输出详细信息(名称,价格,库存) 2.输出产品名称
'''
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, name, price, count))
else:
print('序号:%s 产品名称:%s'%(x, 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)
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('修改成功!')
else:
# 结束函数执行
return
# 声明大列表,存储所有手机信息
# [{'name':'iPhone8','price':'1999','count':'1'},{'name':'iPhone8','price':'1999','count':'1'}]
phone_list = []
while True:
# Ctrl+d 可以快速复制粘贴一行
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