练习题
一、元素分类
有如下值集合 [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
dic= { "k1":[], "k2":[] } li= [11,22,33,44,55,66,77,88,99,90] for i in li: if i<=66: dic["k1"].append(i) else: dic["k2"].append(i) print (dic)
1.元素分类答案
二、查找
查找列表中元素、移除每个元素的空格、并查找以 a或A开头 并且以 c 结尾的所有元素。
li = ["alec", " aric", "Alex", "Tony", "rain"] tu = ("alec", " aric", "Alex", "Tony", "rain") dic = {'k1': "alex", 'k2': ' aric', "k3": "Alex", "k4": "Tony"} li_1=[] s=0 for i in li: ret=i.strip() #去掉空格 ret=ret.capitalize() #将首字母变成大写 start=ret.startswith("A") end=ret.endswith("c") if start==True and end ==True: li_1.append(li[s]) else: pass s+=1 t=0 for i in tu: ret=i.lstrip() #去掉空格 ret=ret.capitalize() #将首字母变成大写 start=ret.startswith("A") end=ret.endswith("c") if start==True and end==True: li_1.append(tu[t]) else: pass t+=1 for value in dic.values(): ret=value.lstrip() if ret.startswith("A")==True and ret.endswith("c")==True: li_1.append(ret) elif ret.startswith("a" )==True and ret.endswith("c")==True: li_1.append(ret) print(li_1)
2.查找
三、输出商品列表,用户输入序号,显示用户选中的商品
商品 li = ["手机", "电脑", '鼠标垫', '游艇']
li = ["手机", "电脑", '鼠标垫', '游艇'] for k,v in enumerate(li,1): print(k,v) inp =input("input nunbel:") inp=int(inp) if inp >0 and inp<=len(li): print(li[inp-1]) else: print("商品不存在")
商品列表
四、购物车
功能要求:
要求用户输入总资产,例如:2000
显示商品列表,让用户根据序号选择商品,加入购物车
购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
附加:可充值、某商品移除购物车
ass_all=input('总资产:') ass_all= int(ass_all) car_all =[] goods = [ {"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998}, ] for i in goods: print(i["name"],i["price"]) while True: i2 = input("请选择商品(Y/y结算):") if i2.lower() == "y": break for j in goods: if j["name"] == i2 : car_all.append(j) print(car_all) p_all = 0 for p in car_all: m = p["price"] p_all+=m if p_all>0 and ass_all < ass_all : print("购买成功") elif p_all==0 : print("你没有选择商品") else: print("余额不足")
购物车程序1
#/usr/bin/env python #_*_coding:utf-8_*_ total = int(input("总额:")) all_cat={} goods = [ {"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998}, ] for i in goods: print (i["name"],i["price"]) #打印出所有商品 while True: i2 = input("请输入要购买的商品名称(Y/y结算):") if i2.lower()=="y": #检测用户结算行为 break #循环所有商品 for i in goods: if i["name"]==i2: name = i["name"] if i2 in all_cat.keys():#判断购买的商品是否在购物车 all_cat[name]={"single_price":i["price"],"num":all_cat[i2]["num"]+1} #在,数量上加1 else: all_cat[name]={"single_price":i["price"],"num":1} #不在条件入购物车 print(all_cat) sum= 0 for item in all_cat.values() : single_all = item["num"]*item["single_price"] sum+=single_all if sum <= total: print("购买成功") elif sum ==0 : print("你没有选购商品") else: print("余额不足")
购物车程序2
五、用户交互,显示省市县三级联动的选择
dic = { "河北": { "石家庄": ["鹿泉", "藁城", "元氏"], "邯郸": ["永年", "涉县", "磁县"], }, "河南": { "开封": ["xx", "ooo", "sss"], "信阳": ["ccc", "bbb", "aaa"], }, "山西": { "], "], }, } for s in dic.keys(): print(s) x= input("请输入省份:") b= dic[x] for v in b.keys() : print(v) ds= input("请输入地市:") xc=dic[x][ds] for xianc in xc: print(xianc)
5.三级联动