day06 小数据池和编码
一. 上次课内容回顾
字典:
由{}括起来. 每个元素用逗号隔开, key:value的形式存储数据
key: 不可变的. 可哈希的.
增删改查:
1. 增加: 直接用新key来赋值. dict[key] = value setdefault()
2. 删除: pop(key), popitems(), clear(), del dict[key]
3. 修改: dict[key] = value, update()
4. 查询: get(key) dict[key] setdefault()
5. 常用操作:
1. keys() 拿到所有的key
2. values() 拿到所有的value
3. items() 拿到所有的键值对. (key, value)
6. 字典的遍历
for k,v in dict.items():
for k in dict:
dict[k]
二. 作业讲解
三. 今日主要内容
1. 小数据池.
目的:缓存我们字符串,整数,布尔值。在使用的时候不需要创建过多的对象
缓存:int, str, bool、
int: 缓存范围 -5~256
str:
1. 长度小于等于1,直接缓存
2. 长度大于1. 字符串中如果只有数字, 字母, 下划线。 就会缓存
3. 乘以1。 同上, 乘以大于1的数。仅包含数字,字母下划线。最终长度小于20会缓存
4. 使用sys模块中的intern()缓存字符串
代码块的关系:如果在同一个代码块中。默认的整数和字符串还有布尔值都会进行缓存. 如果涉及计算。尊崇上面的规则
如果跨代码块,按照上面的规则执行的
2. is和==的区别
is比较的是内存地址
==比较的是值
3. decode和encode
python3内存中使用的是unicode。
unicode => utf-8 encode("utf-8")
utf-8 => unicode decode("utf-8")
utf-8和gbk不能直接转换
bytes是字符串的另一种表示形式
预习:
list和dict相关操作
set集合(粗略的看一看)
深浅拷贝(难)
1,老男孩好声⾳选秀⼤赛评委在打分的时候呢, 可以进⾏输入. 假设, 老男孩有10个评委. 让10个评委进⾏打分, 要求, 分数必须⼤于5分, ⼩于10分.
score_list=[] count=0 welcome='''*******Welcome******* 欢迎大家给老男孩好声选秀大赛评分! ''' print(welcome) sum=0 while count>=0 and count<10: count += 1 score=input("请第%s位评委输入评分:" % (count)) if score.isdigit(): score=float(score) if score>5 and score<=10: score_list.append(score) else: print("输入的分数不妥,请重新输入") count=count-1 continue else: print("输入不合法!") count = count - 1 continue score_list.sort() min=score_list.pop(0) max=score_list.pop() for i in range(len(score_list)): sum +=float(score_list[i]) print(""" *******分数******* 去掉一个最低分%s 去掉一个最高分%s 左后得分是>>>>%s """%(min,max,sum/len(score_list)))
2.
电影投票. 程序先给出个前正在上映的电影列表. 由用户给每个电影投票. 最终将该户投票信息公布出来 lst = ['⾦瓶梅', '解救吾先⽣', '美国往事', '西西里的美丽传说'] 结果: {'⾦瓶梅': 99, '解救吴先⽣': 80, '美国往事': 6, '西西里的美丽传说': 23}
lst = ['瓶梅', '解救吾先⽣', '美国往事', '西西里的美丽传说'] score_list={} print("请客观公正的给一下电影进行评分!") for i in range(len(lst)): score=input("请给>>%s<<<输入你的评分"%(lst[i])) score_list.setdefault(lst[i],score) print(score_list)
3.念数字.给出一个字典. 在字典中标识出每个数字的发音. 包括相关符号. 然后由用户输入一个数字. 让程序读出相对应的发音(不需要语音输出. 单纯的打印即可)
dict={ "-":"fu", "0":"ling", "1":"yi", "2":"er", "3":"san", "4":"si", "5":"wu", "6":"6", "7":"qi", "8":"ba", "9":"jiu", ".":"dian", } num=input("请输入一个整数") if num.isdigit() or num.startswith("-"): for numi in num: for k ,v in dict.items(): if numi ==k: print(v,end=" ") else: print("你咋不听话捏?重新运行输入数字")
4.车牌区域划分, 现给出以下车牌. 根据车牌的信息, 分析出各省的车牌持有量.
cars=["鲁A32444","鲁B12333","京B8989M","黑C46555","沪B25041","沪B25041","湘B25041","贵A2345","贵A2345","贵A2345"] locals={"沪":"上海","黑":"黑龙江","鲁":"山东","鄂":"湖北","湘":"湖南","京":"北京","贵":"贵州"} list=[] str="_" count_car={} count_car1={} for first in cars: list.append(first[0]) str=str.join(list) for key,value in locals.items(): count_car.setdefault(value,str.count(key)) for key2, value2 in count_car.items(): if value2!=0: count_car1.setdefault(key2,value2) print(count_car1)
cars=["鲁A32444","鲁B12333","京B8989M","黑C46555","沪B25041","沪B25041","湘B25041"] locals={"沪":"上海","黑":"黑龙江","鲁":"山东","鄂":"湖北","湘":"湖南","京":"北京","贵":"贵州"} list=[] str="_" count_car={} for first in cars: list.append(first[0]) str=str.join(list) for key,value in locals.items(): count_car.setdefault(value,str.count(key)) print(count_car)
5干掉主播. 现有如下主播收益信息, 按照要求, 完成相应操作:
zhubo={"卢本伟":12200,"冯提莫":189999,"金老板":99999,"吴老板":25000000,"alex":126,} sum=0 for k,v in zhubo.items(): sum+=v print("主播的平均工资:%s"%(sum/len(zhubo)))
dict1={}zhubo={"卢本伟":12200,"冯提莫":189999,"金老板":99999,"吴老板":25000000,"alex":126,}sum=0for k,v in zhubo.items(): sum += v avr=sum/len(zhubo)print(avr)for k,v in zhubo.items(): if v>avr: dict1.setdefault(k,v)print(dict1)
zhubo={"卢本伟":12200,"冯提莫":189999,"金老板":99999,"吴老板":25000000,"alex":126,} zhubo.pop("卢本伟") print(zhubo)
day06 小数据池和编码的更多相关文章
- python学习笔记:第6天 小数据池和编码转换
目录 1. id 和 == 2. 小数据池 3. 编码和解码 1. id 和 == id:id是一个内置的函数,可以查看变量存放的内存地址(实际上不是真正的物理地址,这里暂时这样理解),用于判断是变量 ...
- day06——小数据池、深浅拷贝、集合
day06 小数据池 小数据池--缓存机制(驻留机制),只是一种规格,不会实际的开辟一个空间 == 判断两边内容是否相等 ***** # a = 10 # b = 10 # print(a == b) ...
- day06 小数据池,再谈编码
今日所学 一. 小数据池 二. is 和==的区别 三. 编码的问题 一.小数据池的作用 用来缓存数据 可以作用的数据类型: 整数(int), 字符串(str), 布尔值(bool). 什么是块 ...
- python 浅谈小数据池和编码
⼀. ⼩数据池 在说⼩数据池之前. 我们先看⼀个概念. 什么是代码块: 根据提示我们从官⽅⽂档找到了这样的说法: A Python program is constructed from code b ...
- python:id与小数据池与编码
一.id与小数据池 id:查的是内存地址 a = 100 b = 100 print(a == b)#比较的数值 print(a is b)#比较的是id print(id(a),id(b))#id相 ...
- 06_python_小数据池/ is == /编码
一.小数据池 1.代码块 python程序是由代码块构成的.一个代码块的文本作为python程序执行的单元.代码块: 一个模块, 一个函数, 一个类, 甚至每一个command命令都是一个代码块. 一 ...
- 《Python》 代码块、小数据池和编码转换
一.代码块 Python程序是由代码块构造的.块是一个python程序的文本,他是作为一个单元执行的. 什么是代码块:一个py文件,一个函数,一个文件,一个类都是一个代码块. 作为交互方式输入的每一行 ...
- python基础4(小数据池,编码,深浅拷贝)
1.==与is == 比较值是否相等 is比较内存地址是否相同 2.小数据池 为了节省内存,当数据在一个范围里的时候,两个值相同的变量指向的是小数据池里的同一个地址 数字范围:-5 ~ 256 num ...
- 6,id 小数据池,编码and解码。
asscii :8位(数字,英文,特殊字符)表示一个字符. A:0000 0001 unicode :(万国码)初期:16位,两个字节,表示两个字符. A:0000 0001 0000 0001 中: ...
随机推荐
- C#基础之委托
委托常常和事件在一起使用,可以理解委托是方法的容器,事件则是委托的另一种表现形式.委托和事件虽然写得还比较多,不过也只是用的熟练而已,趁周末没课好好巩固下基础,一点一点积累吧. 1.一个简单的小例子 ...
- day 2 异常传递 ,抛出
1.异常的传递 def test1(): print("---test1--") print(num) print('---test1 over---') def test2(): ...
- iOS 关于在提交了APP等待审核之后,发现小Bug需要再提一个版本的说明
昨天晚上加班到深夜终于将APP推上去,今天早上过来再测试一遍的时候,发现需要一个小调整.而此时应用的状态是正在等待审核,随手记录一下这种情况下,提交一个新版本的做法,有需要的可以参考一下. 01-进入 ...
- PostFix使用dovecot支持POP3/IMAP收信
PostFix只能够收发邮件,以及使用SMTP发送邮件,想要使用POP3/IMAP收信的话必须装其他软件,本文通过配置dovecot让邮件服务器支持POP3/IMAP收信.POP3/IMAP是一种收信 ...
- Django之视图系统
Django的View(视图) 一个视图函数(类),简称视图,是一个简单的python函数(类),它接受web请求并返回web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误,或者 ...
- mybatis拦截器使用
目录 mybatis 拦截器接口Interceptor spring boot + mybatis整合 创建自己的拦截器MyInterceptor @Intercepts注解 mybatis拦截器入门 ...
- 那些年安装Appium遇到的坑
安装appium以及相关的总体记录 1 主要流程是参照这个来 https://www.cnblogs.com/wangyinghao/p/5780151.html 细节参考虫师的博客 http ...
- Redis的数据类型以及每种数据类型的使用场景
人就是很奇怪的动物,很简单的问题往往大家都容易忽略,当我们在使用分布式缓存Redis的时候,一个最简单的问题Redis的数据类型以及每种数据类型的使用场景是什么? 是不是觉得这个问题很基础?我也这么觉 ...
- Just a Hook:线段树+区间修改
E - Just a Hook In the game of DotA, Pudge’s meat hook is actually the most horrible thing for most ...
- New York Comic Con 2013 - 2013年纽约动漫展
New York Comic Con - 2013年纽约动漫展 New York Comic Con is the largest pop culture event on the East Coas ...