zoukankan      html  css  js  c++  java
  • Python-Day6

    常用数据类型练习题解答

    一、元素分类

    有如下值集合 [11,22,33,44,55,66,77,88,99],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
    即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}

    l = [11, 22, 33, 44, 55, 66, 77, 88, 99]
    d = {'k1': [], 'k2': []}
    for i in l:
        if i >= 66:
            d['k1'].append(i)
        else:
            d['k2'].append(i)
    print(d)
    

      

    二、查找
    查找列表中元素,移除每个元素的空格,并查找以 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"]
    print(li)
    for i in li[:]:
        x = li.index(i)
        li[x] = i.strip()
    print(li)
    l2 = []
    for i in li[:]:
        if i.capitalize().startswith('A') and i.endswith('c'):
            l2.append(i)
    print(l2)
    #>>>>>>>>>>
    ['alec', ' aric', 'Alex', 'Tony', 'rain']
    ['alec', 'aric', 'Alex', 'Tony', 'rain']
    ['alec', 'aric']
    
    tu = ("alec", " aric", "Alex", "Tony", "rain")
    l3 = []
    print(tu)
    for i in tu:
        l3.append(i.strip())
    tu = tuple(l3) #在循环里面逐个修改会报错:
    print(tu)
    l4 = []
    for i in tu:
        if i.capitalize().startswith('A') and i.endswith('c'):
            l4.append(i)
    tu4 = tuple(l4)
    print(tu4)
    #>>>>>>>>>>
    ('alec', ' aric', 'Alex', 'Tony', 'rain')
    ('alec', 'aric', 'Alex', 'Tony', 'rain')
    ('alec', 'aric')
    
    dic = {'k1': "alex", 'k2': ' aric',  "k3": "Alex", "k4": "Tony"}
    print(dic)
    for i in dic.keys():
        dic[i] = dic[i].strip()
    print(dic)
    dic1 = {}
    for i in dic.keys():
        if dic[i].capitalize().startswith('A') and dic[i].endswith('c'):
            dic1.update({i: dic[i]})
    print(dic1)
    #>>>>>>>>>>
    {'k4': 'Tony', 'k2': ' aric', 'k1': 'alex', 'k3': 'Alex'}
    {'k4': 'Tony', 'k2': 'aric', 'k1': 'alex', 'k3': 'Alex'}
    {'k2': 'aric'}
    

      

    三、输出商品列表,用户输入序号,显示用户选中的商品
        商品 li = ["手机", "电脑", '鼠标垫', '游艇']
    li = ['手机', '电脑', '鼠标垫', '游艇']
    print('Exit If Not Number!')
    while True:
        s = input()
        if not s.isnumeric():
            print('Exit')
            break
        z = int(s)
        if z > 4 or z < 1:
            print('Input Again Please:')
            continue
        for k, i in enumerate(li, 1):
            if k == z:
                print(i)
    

      

    四、购物车

    功能要求:

    • 要求用户输入总资产,例如:2000
    • 显示商品列表,让用户根据序号选择商品,加入购物车
    • 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
    • 附加:可充值、某商品移除购物车
    goods = [
        {"name": "电脑", "price": 1999},
        {"name": "鼠标", "price": 10},
        {"name": "游艇", "price": 20},
        {"name": "美女", "price": 998},
    ]
    

      

    print('请输入您的总资产:')
    assets = int(input())   #总资产
    cart = []   #购物车
    price = 0   #花销
    balance = assets - price    #余额
    goods = [
        {"name": "电脑", "price": 1999},
        {"name": "鼠标", "price": 10},
        {"name": "游艇", "price": 20},
        {"name": "美女", "price": 998},
    ]
    print('序号', '物品', '	', '价格')
    for k, i in enumerate(goods, 1):
        print(k, '	', i['name'], '	', i['price'])
    while True:
        menu = ['购买', '充值', '购物车']
        print('请输入操作序号:')
        for k, i in enumerate(menu, 1):
            print(k, i)
        print('********************************')
        choose = int(input())
        if choose == 1:
            while True:
                print('请输入要购买的商品序号,若要返回请按其他数字')
                seq = int(input())  # 购买物品的序号
                if seq > 4:
                    break
                if balance - goods[seq - 1]['price'] < 0:
                    print('余额不足!请前往充值!')
                    break
                cart.append(goods[seq - 1])
                price += goods[seq - 1]['price']
                balance = assets - price
        elif choose == 2:
            print('请输入充值金额:')
            money = int(input())
            assets += money
            balance = assets - price
            print('充值成功!资产如下:')
            print('总资产:', assets, '	' '总花费:', price, '	', '余额:', balance)
        elif choose == 3:
            while True:
                print('********************************')
                print('Shopping Cart:')
                print('序号', '物品', '	', '价格')
                for k, i in enumerate(cart, 1):
                    print(k, '	', i['name'], '	', i['price'])
                print('总资产:', assets, '	' '总花费:', price, '	', '余额:', balance)
                print('********************************')
                menu_cart = ['移除', '结算']
                print('请输入操作序号,若要返回请按其他数字')
                for k, i in enumerate(menu_cart, 1):
                    print(k, i)
                print('********************************')
                choose_cart = int(input())
                if choose_cart == 1:
                    print('请输入要移除的商品在购物车的序号')
                    rm = int(input())
                    remove = cart.pop(rm - 1)
                    price -= remove['price']
                    balance += remove['price']
                    print('移除成功!')
                elif choose_cart == 2:
                    print('购买成功!订单如下')
                    print('********************************')
                    print('Shopping Cart:')
                    print('序号', '物品', '	', '价格')
                    for k, i in enumerate(cart, 1):
                        print(k, '	', i['name'], '	', i['price'])
                    print('总资产:', assets, '	' '总花费:', price, '	', '余额:', balance)
                    print('********************************')
                    exit()
                else:
                    break
    

      突然发现,受C语言影响,这里将所有的输入输出分开写了。。。显得有些繁琐,在input()里面显示提示信息会好一些。

      另外,购物车结构可以优化,把相同的条目计数,如 {商品 ,单价,数目}

     五、用户交互,显示省市县三级联动的选择

    dic = {
        "河北": {
            "石家庄": ["鹿泉", "藁城", "元氏"],
            "邯郸": ["永年", "涉县", "磁县"],
        },
        "河南": {
            "郑州": ["二七", "金水", "慧济"],
            "洛阳": ["龙门", "白马寺", "上清宫"],
        },
        "山西": {
            "太原": ["万柏林", "尖草坪", "杏花岭"],
            "临汾": ["尧都区", "金殿镇", "屯里镇"],
        }
    }
    sheng = input("输入省名查看市:")
    for i in dic[sheng]:
        print(i)
    shi = input("输入市名查看县区:")
    for j in dic[sheng][shi]:
        print(j)
    

      

  • 相关阅读:
    MapReduce
    es2.0的语法学习
    java的并发
    JVM的前世今生
    linux环境jacoco接入
    每天一个linux命令--~
    每天一个linux命令--ssh的host配置用户名密码
    jenkins集成robot
    ElasticSearch学习
    rf关键字
  • 原文地址:https://www.cnblogs.com/freelandun/p/6568924.html
Copyright © 2011-2022 走看看