博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python-Day6
阅读量:7261 次
发布时间:2019-06-29

本文共 5375 字,大约阅读时间需要 17 分钟。

常用数据类型练习题解答

一、元素分类

有如下值集合 [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('序号', '物品', '\t', '价格')for k, i in enumerate(goods, 1):    print(k, '\t', i['name'], '\t', 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, '\t' '总花费:', price, '\t', '余额:', balance)    elif choose == 3:        while True:            print('********************************')            print('Shopping Cart:')            print('序号', '物品', '\t', '价格')            for k, i in enumerate(cart, 1):                print(k, '\t', i['name'], '\t', i['price'])            print('总资产:', assets, '\t' '总花费:', price, '\t', '余额:', 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('序号', '物品', '\t', '价格')                for k, i in enumerate(cart, 1):                    print(k, '\t', i['name'], '\t', i['price'])                print('总资产:', assets, '\t' '总花费:', price, '\t', '余额:', 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)

  

转载于:https://www.cnblogs.com/freelandun/p/6568924.html

你可能感兴趣的文章
Unity Chan 2D Asset
查看>>
Mobile Prototype Dev Res Collection(Unity原型开发资源储备)
查看>>
二次开发开源软件
查看>>
linux ubuntu系统下MySQL的安装及设置
查看>>
Zookeeper的安装配置及基本开发
查看>>
asp.net 网站 发布时 去掉.cs文件
查看>>
Android菜鸟的成长笔记(24)——Android中的振动器
查看>>
关于用什么作为dll版本号的思考
查看>>
第三周学习进度条
查看>>
关于 HTML5本地存储详解 (转载学习)
查看>>
55字符串解析
查看>>
使用Topshelf创建Windows服务
查看>>
《面向模式的软件体系结构3-资源管理模式》读书笔记(10)--- Evictor模式
查看>>
[POI2007]EGZ-Driving Exam
查看>>
[教程] 虚拟机安装MAC lion 10.7.3教程 附送原版提取镜像! 安装
查看>>
spark性能调优02-JVM调优
查看>>
c语言 快速排序---归并排序----堆排序
查看>>
PHP关于VC9和VC6以及Thread Safe和Non Thread Safe版本选择的问题
查看>>
一.投资基本面分析(微观宏观经济)
查看>>
数据结构
查看>>