⼀、分析
1、⾸先定义⼀个空列表,防⽌在循环定义列表,导致列表重置list = []
6、 当终⽌循环的时候,需要进⾏判断,返回break,终⽌循环
a = input('是否继续(1:是;2:否)')
if a == str(2):
break
7、 按照销售额和成本进⾏排序:
1.如果列表长度为1,直接输出
if len(list) == 1:
print('按照销售额排序:', list)
print('按照利润排序:', list)
2.如果列表长度不为1,进⾏排序,⽤到sort()⽅法
else:
list.sort(key=lambda x: (int(x['价格']) * int(x['销量'])), reverse=True)
print('按照销售额排序:', list)
list.sort(key=lambda x: (int(x['成本']) * int(x['销量'])), reverse=True)
print('按照成本排序:', list)
例:list.sort(key=lambda x: (x['成本'], x['销量']))# 先按照成本排序,再按照销量排序
lambda是⼀个隐函数,是固定写法,不要写成别的单词;x表⽰列表中的⼀个元素,在这⾥,表⽰⼀个字典,x只是临时起的⼀个名字,你可以使⽤任意的名字;x['成本']表⽰字典⾥的成本的value;所以这句命令的意思就是按照列表中第⼀个元素排序
上⾯代码是按照乘积进⾏排序,字典的value是str类型,所以需要进⾏转换,才能进⾏乘积
reverse = True #降序排序
⼆、代码
list = []
while True:
name = input('请输⼊商品名称:')
while name == '':
name = input('禁⽌为空,请重新输⼊:')
price = input('请输⼊商品价格:')
while price == '':
price = input('禁⽌为空,请重新输⼊:')
quantity = input('请输⼊商品销量:')
sort命令排序while quantity == '':
quantity = input('禁⽌为空,请重新输⼊:')
cost = input('请输⼊商品成本:')
while cost == '':
cost = input('禁⽌为空,请重新输⼊:')
dict = {'商品名称': name, '价格': price, '销量': quantity, '成本': cost}
list.append(dict)
a = input('是否继续(1:是;2:否)')
if a == str(2):
if len(list) == 1:
print('按照销售额排序:', list)
print('按照利润排序:', list)
else:
list.sort(key=lambda x: (int(x['价格']) * int(x['销量'])), reverse=True)
# sort(key=lambda x: (x['成本'], x['销量']))# 先按照成本排序,再按照销量排序            # reverse = True #降序排序
print('按照销售额排序:', list)
list.sort(key=lambda x: (int(x['成本']) * int(x['销量'])), reverse=True)
print('按照成本排序:', list)
break
如有错误,请多指正!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。