作业讲解
# /usr/local/bin/python# -*- coding: utf-8 -*-# Author:Ren Hang """一、元素分类 有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。即: {‘k1‘: 大于66的所有值, ‘k2‘: 小于66的所有值}"""# 方法1li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]l1 = []l2 = []for i in li: if i < 66: l1.append(i) elif i > 66: l2.append(i)temp = {"k1": l1, "k2": l2}print(temp)# {‘k1‘: [11, 22, 33, 44, 55], ‘k2‘: [77, 88, 99, 90]} # 方法2li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]dic = { ‘k1‘: [], ‘k2‘: []}for i in li: if i < 66: dic["k1"].append(i) elif i > 66: dic["k2"].append(i) print(dic)# {‘k1‘: [11, 22, 33, 44, 55], ‘k2‘: [77, 88, 99, 90]}
"""二、查找查找列表中元素,移除每个元素的空格,并查找以 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 = ["alec", " aric", "Alex", "Tony", "rain"]tu = ("alec", " aric", "Alex", "Tony", "rain")dic = {‘k1‘: "alex", ‘k2‘: ‘ aric‘, "k3": "Alex", "k4": "Tony"} # 方法1# 循环lifor i in li: new_i = i.strip() # 去除空格 if (new_i.startswith("a") or new_i.startswith("A")) and new_i.endswith("c"): print("a1", i)# 循环tufor i in li: new_i = i.strip() # 去除空格 if (new_i.startswith("a") or new_i.startswith("A")) and new_i.endswith("c"): print("b2", i)# 循环dicfor i in dic.values(): new_i = i.strip() if (new_i.startswith("a") or new_i.startswith("A")) and new_i.endswith("c"): print("c3", i) # 方法2# 循环lifor i in li: b = i.strip() # 去除空格 # print(b) if b.startswith("a") and b.endswith("c"): # 判断以a开头以c结束的元素 print("1", b) # 输出元素 elif b.startswith("A") and b.endswith("c"): # 判断以A开头以c结束的元素 print("2", b) # 输出元素# 循环tufor i in tu: b = i.strip() # 去除空格 # print(b) if b.startswith("a") and b.endswith("c"): # 判断以a开头以c结束的元素 print("3", b) # 输出元素 elif b.startswith("A") and b.endswith("c"): # 判断以A开头以c结束的元素 print("4", b) # 输出元素# 循环dicfor k, v in dic.items(): b1 = k.strip() # 去除空格 b2 = v.strip() # 去除空格 if b1.startswith("a") and b1.endswith("c"): # 判断以a开头以c结束的元素 print("5", b1) # 输出元素 elif b1.startswith("A") and b1.endswith("c"): # 判断以A开头以c结束的元素 print("6",b1) # 输出元素 elif b2.startswith("a") and b2.endswith("c"): # 判断以a开头以c结束的元素 print("7", b2) # 输出元素 elif b2.startswith("A") and b2.endswith("c"): # 判断以A开头以c结束的元素 print("8", b2) # 输出元素
# 三、输出商品列表,用户输入序号,显示用户选中的商品li = ["手机", "电脑", ‘鼠标垫‘, ‘游艇‘] # 方法1while True: for i, j in enumerate(li): print(i+1, j) num = input("num:") if num.isdigit(): num = int(num) if 0 < num < len(li): print(li[num-1]) break else: print("输入错误!请输入商品对应的编号:") else: print("输入错误!请输入商品对应的编号:")
"""四、购物车功能要求:1.要求用户输入总资产,例如:20002.显示商品列表,让用户根据序号选择商品,加入购物车3.购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。4.附加:可充值、某商品移除购物车""" goods = [ {"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998},]# 方法2# asset_all 总资产asset_all = 0# car_dict 购物车car_dict = {}# all_pric 已经购买所以的商品总价all_price = 0# all_sum 已经购买单个的商品总价all_sum = 0 i1 = input("请输入总资产:")asset_all = int(i1) for i in goods: print(i["name"], i["price"]) while True: i2 = input("【Y/y:结算】输入要购买的商品名称:") if i2.lower() == "y": break for item in goods: if item["name"] == i2: name = item["name"] if name in car_dict.keys(): car_dict[name]["num"] += 1 else: car_dict[name] = {"num": 1, "single_price": item["price"]} print(car_dict) for k, v in car_dict.items(): all_sum = v["num"] * v["single_price"] all_price += all_sum if all_price > asset_all: print("余额不足!")else: print("购买成功!”)
"""五、用户交互,显示省市县三级联动的选择""" dic = { "北京": { "朝阳区": ["123", "456"], "崇文区": ["789", "101"] }, "辽宁省": { "沈阳市": ["铁西区", "沈河区"], "锦州市": ["古塔区", "黑山县"], },}# 方法1# 循环输出所以的省for x in dic: print(x) i1 = input("请输入省份:")a = dic[i1] # 循环输出所以的市for j in a: print(j) i2 = input("请输入市:")b = dic[i1][i2] for z in b: print(z)
时间: 2024-10-27 11:16:03