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 中: ...
随机推荐
- Lite OS学习之事件EVENT
1. Lite OS的事件EVENT,就是一个任务向另外一个任务通知事件的,不能数据传输.看下有的函数,实际比较复杂 2. 具体还是看编程,先全局结构体整个事件变量 /*事件控制结构体*/ EVENT ...
- jquery.validate使用 - 5
一些常用的验证脚本 不会写js了,只能从网上找一些常用的验证脚本. // 手机号码验证jQuery.validator.addMethod("mobile", function(v ...
- 五、Django之路由系统
1.普通路由匹配 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表:它就是以这种方式告诉Django,用哪个URL调用 ...
- C#之Ref,Out以及TryParse()的用法
ref和out用法很简单,我记下来也提醒自己要用更好的方式去写代码,不要让代码过于臃肿,让人看得头痛.直接写 ref:ref关键字就是让参数进行传递,但是需要初始化,而out不需要初始化参数 ref用 ...
- 第五章Web应用与应用层协议
Web应用与应用层协议 本篇博文中的主要参考文献是<计算机网络高级教程>,分别是吴功宜老先生和吴英教授合著.这部教程是我研究生老师所推荐的网络必读科目,由于该教程讲解的基础知识详细,但内容 ...
- 学习笔记之ubuntu修改固定IP脚本
一.shell脚本编程 二.正则表达式 三.linux修改IP的方法 #!/bin/bash cd /etc/network/ stty erase '^?' write_interfaces() { ...
- qt cout输出中文乱码解决记录
工具 -> 选项-> 文本编辑器-> 行为 -> 文件编码->默认编码改为System 乱码原因: 默认用utf-8编码,控制台默认gbk编码,编码不一致导致的乱码
- js设置、修改、获取、删除 cookie
上面这串省略号对于各种吐槽的声音:因为在百度上看到的关于设置cookie的前几篇文章都是错误的: 里面给出的设置cookie的代码是这样的: function setCookie(name,value ...
- linux常用的查看设备的命令
系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # ...
- org.apache.poi版本问题
问题描述: 今天跑一段历史代码,发现不能启动,抛出java.lang.NoSuchFieldError: RETURN_NULL_AND_BLANK 问题 解决办法: 把org.apache.poi的 ...