# -*- coding: utf-8 -*-
# @Time : 2018/12/25 14:24
# @Author : Endless-cloud
# @Site :
# @File : day05 -day 8课后作业.py
# @Software: PyCharm
'''
# 1.有如下变量(tu是个元祖),请实现要求的功能
# tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])
# a. 讲述元祖的特性
# b. 请问tu变量中的第一个元素 "alex" 是否可被修改?
# c. 请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 "Seven"
# d. 请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 "Seven"
'''
# tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])
# a
# 元祖的儿子辈不能改,但是孙子辈的可能能做修改
# b
# 不能修改
# c
# k2 的值是字典类型 可以被修改
# tu[1][2]['k2'].append('seven')
# print(tu)
# d 不能修改,因为里面是元祖
'''
# 2.字典dic,dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
# 请循环输出所有的key
# 请循环输出所有的value
# c. 请循环输出所有的key和value
# d. 请在字典中添加一个键值对,"k4": "v4",输出添加后的字典
# e. 请在修改字典中 "k1" 对应的值为 "alex",输出修改后的字典
# f. 请在k3对应的值中追加一个元素 44,输出修改后的字典
# g. 请在k3对应的值的第 1 个位置插入个元素 18,输出修改后的字典
'''
#
# dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
# a for i in dic:
# print(i)
# b
# for i in dic.values():
# print(i)
# c
# for i , j in dic.items():
# print(i , j)
# d
# dic['k4']=['v4']
# print(dic)
# e
# dic['k1'] = 'alex'
# print(dic)
# f
# dic['k3'].insert(1,'18')
# print(dic)
# f
# dic['k3'].append('44')
# print(dic)
'''
# 3.av_catalog = {
# "欧美":{
# "www.太白.com": ["很多免费的,世界最大的","质量一般"],
# "www.alex.com": ["很多免费的,也很大","质量比yourporn高点"],
# "oldboy.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
# "hao222.com":["质量很高,真的很高","全部收费,屌丝请绕过"]
# },
# "日韩":{
# "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","verygood"]
# },
# "大陆":{
# "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]
# }
# }
# a,给此 ["很多免费的,世界最大的","质量一般"]列表第二个位置插入一个 元素:'量很大'。
# b,将此 ["质量很高,真的很高","全部收费,屌丝请绕过"]列表的 "全部收费,屌丝请绕过" 删除。
# c,将此["质量怎样不清楚,个人已经不喜欢日韩范了","verygood"]列表的 "verygood"全部变成大写。
# d,给 '大陆' 对应的字典添加一个键值对 '1048' :['一天就封了']
# e,"oldboy.com": ["多是自拍,高质量图片很多","资源不多,更新慢"]
# f,给此["全部免费,真好,好人一生平安","服务器在国外,慢"]列表的第一个元素,加上一句话:'可以爬下来'
'''
# av_catalog = {
# "欧美":{
# "www.太白.com": ["很多免费的,世界最大的","质量一般"],
# "www.alex.com": ["很多免费的,也很大","质量比yourporn高点"],
# "oldboy.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
# "hao222.com":["质量很高,真的很高","全部收费,屌丝请绕过"]
# },
# "日韩":{
# "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","verygood"]
# },
# "大陆":{
# "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]
# }
# }
# a
# av_catalog['欧美']["www.太白.com"].insert(2,'量很大')
# print(av_catalog)
#
# b
# av_catalog['欧美']['hao222.com'].pop()
# print(av_catalog)
# c
# av_catalog['日韩']['tokyo-hot'][1]=av_catalog['日韩']['tokyo-hot'][1].upper()
# print(av_catalog)
# print(l)
# #d
# av_catalog['大陆']['1048']='一天就封了'
# print(av_catalog)
# e
# f
# av_catalog['大陆']['1024'][1]+='可以趴下来'
# print(av_catalog)
'''
# 4.有字符串"k: 1|k1 :2|k2:3 |k3 :4" 处理成字典 {'k':1,'k1':2....} (升级题)
'''
# l1 ="k: 1|k1 :2|k2:3 |k3 :4"
# l2 =''
# for i in l1:
# if i !=' ':
# l2=l2+i
# a= []
# b =[]
# c ={}
# l4 =l2.split('|')
# for i in l4:
# a.append(i[-1])
# b.append(i[:-2:])
# print(dict(zip(b,a)))
########################## 重点
# l2 =''
# d ={}
# for i in l1:
# if i !=' ':
# l2=l2+i
# # print(l2)
# l3 =l2.split('|')
# print(l3)
# for i in l3 :
# k,v =i.split(':')
# d[k]=v
# print(d)
# l1 ="k: 1|k1 :2|k2:3 |k3 :4"
# c ={}
# l6=l1.split('|')
# for i in l6:
# k,v=i.split(':')
# c[k.strip()]=v.strip()
# print(c)
'''
5.元素分类
# 有如下值li= [11,22,33,44,55,66,77,88,99,90],将所有大于 66
的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
# 即: {'k1': 大于66的所有值列表, 'k2': 小于66的所有值列表}
'''
# li= [11,22,33,44,55,66,77,88,99,90]
# dic1 ={}
# big =[]
# small =[]
# for i in li :
# if i >66:
# big.append(i)
# else:small.append(i)
# dic1['k1']=big
# dic1['k2']=small
# print(dic1)
'''
# 6.输出商品列表,用户输入序号,显示用户选中的商品
# 商品列表:
# goods = [{"name": "电脑", "price": 1999},
# {"name": "鼠标", "price": 10},
# {"name": "游艇", "price": 20},
# {"name": "美女", "price": 998}, ]
#
# 要求:
# 1:页面显示 序号 + 商品名称 + 商品价格,如:
# 1 电脑 1999
# 2 鼠标 10
# …
# 2:用户输入选择的商品序号,然后打印商品名称及商品价格
# 3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。
# 4:用户输入Q或者q,退出程序。
'''
goods = [{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998}, ]
end_list=[]
shop_list = []
num = []
i=0
while True:
print('序号 商品名字 电脑价格')
for i, j in enumerate(goods):
print('%s %s %s' % (i + 1, j['name'], j['price']))
chiose = input('请输入序号, 输入q退出')
if chiose.isdigit():
chiose =int(chiose)
# shop_list[chiose-1]['num']=0
if chiose-1 < len(goods):
shop_list = goods[chiose - 1].copy()
# print(' {} {}'.format(goods[chiose-1]['name'],goods[chiose-1]['price']))
print("%s %s"%(goods[chiose-1]['name'],goods[chiose-1]['price']))
if shop_list in end_list:
shop_list['num'] = i
i = i + 1
shop_list['price'] = goods[chiose - 1]['price'] * (i - 1)
end_list.pop()
end_list.append(shop_list)
else:
print('列表中不存在该物品,生成该物品')
shop_list['num'] = i
i = i + 1
shop_list['price'] = goods[chiose - 1]['price'] * (i - 1)
end_list.append(shop_list)
elif chiose-1>len(goods):
print('你输入的内容不再该序号里')
elif chiose =='q':
l2 =[]
print('退出程序')
for i in end_list:
if i not in l2:
l2.append(i)
# print(l2)
print('你购买的物品是 %s %s %s '%('名字','金额','数量'))
sum =0
for i in l2:
print(' %s %s %s'%(i['name'], i['price'],i['num']))
sum =sum+i['price']
print('花费的总金额为%s'%(sum))
break
else:
print('输入数字或者q,不要输入其他的')
年与时驰,意与日去,遂成枯落,
多不接世,悲守穷庐,将复何及。