Learn_Day4

作业讲解


# /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-08-08 13:46:12

Learn_Day4的相关文章