1、元素的分类

需求:有如下集合[11,22,33,44,55,66,77,88,99,90……],将所有大于66的值保存在字典的第一个key中,将小于66的值保存在第二个key的值中
代码实现:
  1. #定义一个list列表
  2. li = [11,22,33,44,55,66,77,88,99,90]
  3. #定义空字典
  4. dic = {"k1": [], "k2": []}
  5. for i in li:
  6. if i <= 66:
  7. dic['k1'].append(i)
  8. else:
  9. dic['k2'].append(i)
  10. print(dic)

2、查找列表中元素,移除每个元素的空格,并查找以a或A开头并且以c结尾的所有元素

代码实现:

  1. li = ["aleb", "aric", "Alex", "Tony", "rain"]
  2. #tu = ("alec", "aric", "Alex", "Tony", "rain") 元组也适用以下方法
  3. for i in li:
  4. #i表示每一个元素
  5. new_i = i.strip()
  6. #if 判断的顺序,从前到后;or,自动执行成功就行;and
  7. #先执行括号内的,再执行括号外的
  8. if (new_i.startswith('a') or new_i.startswith('A')) and new_i.endswith('c'):
  9. print(i)
  10. #字典
  11. dic = {"k1": "alex", "k2": "arlc", "k3": "Alex", "k4": "Tony"}
  12. for j in dic.values():
  13. new_j = j.strip()
  14. if (new_j.startswith('a') or new_j.startswith('A')) and new_j.endswith('c'):
  15. print(j)

3、输出商品列表,用户输入序号,显示用户选中的商品

代码实现:

  1. li = ["手机", "电脑", "鼠标垫", "游艇"]
  2.  
  3. #首先循环商品
  4. for i, j in enumerate(li):
  5. print(i + 1, j)
  6. #用户输入
  7. num = input("请您输入商品编号: ")
  8. #获取索引
  9. num = int(num)
  10. #获取列表的长度
  11. len_li = len(li)
  12. if num > 0 and num <= len_li:
  13. goods = li[num - 1]
  14. print(goods)
  15. else:
  16. print("此商品不存在!")

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

代码实现:

  1. dic = {
  2. "广东": {
  3. "广州": ["天河区", "越秀区", "海珠区"],
  4. "东莞":["长安", "凤岗", "黄江"],
  5. },
  6. "河北": {
  7. "石家庄": ["鹿泉", "元氏", "鹰城"],
  8. "邯郸": ["永年", "涉县", "磁县"],
  9. }
  10. }
  11.  
  12. #循环输出所有的省
  13. for x in dic:
  14. print(x)
  15.  
  16. #用户输入省份
  17. i1 = input("请输入省份: ")
  18. a = dic[i1]
  19. #循环输出所有的市
  20. for j in a:
  21. print(j)
  22. #用户输入城市
  23. i2 = input("请输入城市: ")
  24. b = dic[i1][i2]
  25. #循环,将所有的数据打印出来
  26. for z in b:
  27. print(z)

5、购物车

功能需求:
要求用户输入总资产,例如:2000
显示商品列表,让用户根据序号选择商品,加入购物车
购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功
附加:可充值、某商品移除购物车
代码实现方法一:使用列表方式储存购买数量
  1. #定义一个总资产
  2. asset_all = 0
  3. #定义一个购物车列表
  4. car_list = []
  5.  
  6. num = input('请输入您的总资产: ')
  7. asset_all = int(num)
  8. #所有的商品列表
  9. goods = [
  10. {"name": "电脑", "price": 4999},
  11. {"name": "自行车", "price": 999},
  12. {"name": "耳机", "price": 129},
  13. {"name": "iphone", "price": 10999},
  14.  
  15. ]
  16. for i in goods:
  17. #i,每一个列表的元素,字典
  18. print(i['name'], i['price'])
  19.  
  20. while True:
  21. g = input('请输入你选择的商品(y结算): ')
  22. if g.lower() == 'y':
  23. break
  24. for j in goods:
  25. if j['name'] == g:
  26. # j = {"name": "电脑", "price": 4999}
  27. car_list.append(j)
  28. #结算
  29. print(car_list)
  30. #定义一个购买总价
  31. all_price = 0
  32. for item in car_list:
  33. p = item['price']
  34. all_price = all_price + p
  35.  
  36. #总资产与购买总价比较
  37. if all_price > asset_all:
  38. print('您当前的余额不足')
  39. else:
  40. print('购买成功')

代码实现方法二:使用字典方式储存购买数量

  1. #定义一个总资产
  2. asset_all = 0
  3.  
  4. num = input('请输入您的总资产: ')
  5. asset_all = int(num)
  6. #所有的商品列表
  7. goods = [
  8. {"name": "电脑", "price": 4999},
  9. {"name": "自行车", "price": 999},
  10. {"name": "耳机", "price": 129},
  11. {"name": "iphone", "price": 10999},
  12.  
  13. ]
  14. for i in goods:
  15. #i,每一个列表的元素,字典
  16. print(i['name'], i['price'])
  17.  
  18. #定义一个购物车字典
  19. car_dict = {}
  20. """
  21. car_dict = {
  22. "电脑": {'price':单价, num:12}
  23. } """
  24.  
  25. while True:
  26. g = input('请输入你选择的商品(Y/y结算): ')
  27. #循环所有的商品,查找需要的商品
  28. if g.lower() == 'y':
  29. break
  30. for item in goods:
  31. if item['name'] == g:
  32. # j = {"name": "电脑", "price": 4999}
  33. name = item['name']
  34. #判断购物车是否已经有该商品, 如果有,num + 1
  35. if name in car_dict.keys():
  36. car_dict[name]['num'] = car_dict[name]['num'] + 1
  37. else:
  38. car_dict[name] = {"num": 1, "single_price": item['price']}
  39.  
  40. #结算,显示购物车里的所有商品
  41. print(car_dict)
  42. #定义一个购买总价
  43. all_price = 0
  44. for k, v in car_dict.items():
  45. #单价
  46. n = v['single_price']
  47. #数量
  48. m = v['num']
  49. #计算每类商品的和
  50. all_sum = m * n
  51. #购买总价
  52. all_price = all_price + all_sum
  53. #总资产与购买总价比较
  54. if all_price > asset_all:
  55. print('您当前的余额不足')
  56. else:
  57. print('购买成功')

day005-python基础数据类型之课后作业讲解的更多相关文章

  1. python基础一之课后作业:编写登录接口

    1 # Author : Mamba 2 3 #python基础一之课后作业:编写登录接口 4 5 # 输入用户名密码 6 # 认证成功后显示欢迎信息 7 # 用户名3次输入错误后,退出程序 8 # ...

  2. python基础数据类型考试题

    Python基础数据类型考试题 考试时间:两个半小时                      满分100分(80分以上包含80分及格) 一,基础题. 1,简述变量命名规范(3分) 2,字节和位的关系 ...

  3. 图解python | 基础数据类型

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/56 本文地址:http://www.showmeai.tech/article-det ...

  4. python基础数据类型1

    python基础数据类型1 part1: ''' ''': 三个单引号用于换行的字符串 字符串可以相加(拼接)相乘(重复) 在Python中没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代 ...

  5. Python基础数据类型-列表(list)和元组(tuple)和集合(set)

    Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...

  6. Python基础数据类型-字符串(string)

    Python基础数据类型-字符串(string) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版 ...

  7. 1--Python 入门--Python基础数据类型

    一.Python基础语法 初次使用Python,首先要明确三点: Python的标识符(例如变量名.函数名等),可用字母.数字和下划线构成,不能以数字开头,且区分大小写. Python对于缩进敏感.在 ...

  8. python 基础数据类型之list

    python 基础数据类型之list: 1.列表的创建 list1 = ['hello', 'world', 1997, 2000] list2 = [1, 2, 3, 4, 5 ] list3 = ...

  9. Python基础数据类型-字典(dict)

    Python基础数据类型-字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版本的哟 ...

随机推荐

  1. 在vps上搭建hexo博客

    最近更换了服务器,需要把自己的Hexo Next重新部署到新服务器上,本文记录一下在vps上搭建hexo博客的过程. 在vps上搭建hexo博客需要下面这些工具: Nginx: 用于博客展示 SSH: ...

  2. Python语言的特点及自学建议

    Python语言的特点Python语言是一种被广泛使用的高级通用脚本编程语言,具有很多区别于其他语言的特点,这里仅列出如下一些重要特点.(1)语法简洁:实现相同功能,Python语言的代码行数仅相当于 ...

  3. azure跨域问题(访问azure存储账户数据,blob)

    访问azure存储账户数据报错:405错误 解决方案 打开访问的存储账户--->CORS--->Blob服务 全部填写*就可以了,点击“保存”即可. iframe就可以展示blob中的pd ...

  4. Linux中的defunct进程(僵尸进程)

    一.什么是defunct进程(僵尸进程)?在 Linux 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他,那么他将变成一个僵尸进程.当用ps命令观察进程的执行状态 ...

  5. jQuery 前端复选框 全选 反选 下拉菜单联动

    jQuery 页面中复选框全选.反选.下拉联动(级联) <!DOCTYPE html> <html lang="en"> <head> < ...

  6. jQuery中的DOM操作【续】

    一.复制节点$(选择器字符串).clone(false)    [返回克隆的节点对象]参数:false,浅复制,复制元素但不复制元素中所绑定的事件[默认为false]true,深复制,复制元素且复制元 ...

  7. Beego 学习笔记14:Session控制

    Session控制 1>     Session常用来作为全局变量使用,比如记录当前登录的用户,或者页面之间传递数据使用. 2>     Beego框架内置了 session 模块,目前 ...

  8. window 10 npm install node-sass报错

    最近准备想用vue-cli初始化一个项目,需要sass-loader编译: 发现window下npm install node-sass和sass-loader一直报错, window 命令行中提示我 ...

  9. url请求时,参数中的+在服务器接收时为空格,导致AES加密报出javax.crypto.IllegalBlockSizeException: Input length must be multiple of 16 when decrypting with padded cipher

    报错的意思的是使用该种解密方式出入长度应为16bit的倍数,但实际的错误却不是这个,错误原因根本上是因为在http请求是特殊字符编码错误,具体就是base64生成的+号,服务器接收时成了空格,然后导致 ...

  10. PostgreSQL分区表实现——pg_pathman分区表管理

    该博文用于自己学习记录,内容节选自: https://github.com/digoal/blog/blob/master/201610/20161024_01.md pg_pathman 创建分区表 ...