python 小数据池 is和 == 编码解码
########################总结#########################
今日主要内容
1. 小数据池, id()
小数据池针对的是: int, str, bool
在py文件中几乎所有的字符串都会缓存.
id() 查看变量的内存地址
2. is和==的区别
# s1 = "abc" # 内存中是没有"abc", 创建一个新的 0.0001
# s2 = "abc" # 内存中是已经有了"abc", 直接把abc拿来用 0.0000001
# print(id(s1), id(s2)) # 31096032 31096032 # lst1 = [1,2,3]
# lst2 = [1,2,3]
# # 列表没有小数据池
# print(id(lst1), id(lst2)) # 166167560 166126408
# print(lst1 == lst2) # True
# print(lst1 is lst2) # False
is 比较的是内存地址
== 比较的是内容
当两个变量指向同一个对象的时候. is是True, ==也是True
3. 再谈编码
回顾:
1. ascii. 有: 数字, 字母, 特殊字符. 8bit 1byte 128 最前面是0
2. gbk. 包含: ascii, 中文(主要), 日文, 韩文, 繁体文字. 16bit, 2byte.
3. unicode. 包含gbk,ascii,big5... 32bit, 4byte
4. utf-8. 可变长度的unicode.
1. 英文: 8bit,1byte
2. 欧洲文字: 16bit 2byte
3. 中文: 24bit 3byte
不同的编码之间不能随意转换. 中国人gbk和德国人utf-8骂 想要沟通必须通过英文(unicode)(媒介)
在python3中. 默认的编码是unicode,我们的字符串就是unicode
在python2中. 默认的编码是ASCII. Cpython.c语言的默认编码是ASCII
unicode弊端:在存储和传输的时候. 是很浪费的
在存储和传输的时候不能直接使用unicode. 必须要对字符串进行编码. 编码成bytes类型
bytes: 字节形式的字符串
1. encode(编码格式) 编码 gbk utf-8
2. decode(编码格式) 解码
字符串转换为bytes
s = '中国'
s1 = s.encode('utf-8')
print(s1)
执行输出:
b'\xe4\xb8\xad\xe5\x9b\xbd' #一个 \ 表示一位,输出,可以看出占用了6位
转换为gbk
s = 'hello girl'
s1 = s.encode('gbk')
print(s1)
执行输出:
b'hello girl'
bytes转换为str
s1 = b'\xe4\xb8\xad\xe5\x9b\xbd'
s2 = s1.decode(encoding='utf-8')
print(s2)
执行输出:
中国
#############################作业########################
1,老男孩好声音选秀秀赛评委在打分的时候呢, 可以进行输入.假设,
老男孩有10个评委.让10个评委进行打分, 要求, 分数必须大于5分, 小于10分.
# pingwei = ['alex', 'wusir', '麻花藤', '东风扇','西风扇','宝宝','太白','日天','女神','老弟']
# list=[]
# number=0
# while number < 10:#不确定输入次数 用while
# content=int(input(f'请第{number+1}位{pingwei[number]}评委输入打分:'))
# if content > 5 and content <10:
# print(f"{pingwei[number]}评委的分数是:{content}")
# list.append(content)
# else:
# print('请按要求输入分数')
# number -= 1
# number += 1
# print(f'10位评委的得分情况:{list}') # lst=[]
# index=0
# while index<len(pingwei):
# content=input('请%s评委打分:' % pingwei[index])
# if content.isdigit():
# fen=int(content)
# if fen >= 5 and fen <= 10:
# lst.append(fen)
# index+=1
# else:
# print("对不起,你的分数有问题,请重新输入")
# else:
# print('输入的问题,请重新输入')
# print(lst)
# 2. 念数字. 给出一个字典. 在字典中标识出每个数字的发音. 包括相关符号. 然后由用户输入一个数字. 让程序读出相对应的发音(不需要语音输出. 单纯的打印即可)
dic = {
'-':'fu',
'0':'ling',
'1':'yi',
'2':'er',
'3':'san',
'4':'si',
'5':'wu',
'6':'liu',
'7':'qi',
'8':'ba',
'9':'jiu',
'.':'dian'
}
content = input("请输入数字:") # 123
# 获取到字符串中的每一个字符
for c in content:
print(dic[c], end=" ")
#3. 车牌区域划分,现给出以下车牌.根据车牌的信息,分析出各省的车牌持有量.
cars = ['鲁A32444','鲁B12333','京B8989M','黑C46555','沪B25041']
locals = {'沪':'上海','黑':'黑龙江','鲁':'山东','鄂':'湖北','湘':'湖南'}
dic={}
for i in cars:
jianchen=i[0]#拿到城市首字母
chengshi=locals[jianchen]#去找对应的城市
if dic.get(chengshi):#判断新字典里面有没有城市
dic[chengshi]+=1 #如果有 就dic[城市]=dic[城市]+1
else:
dic[chengshi]=1 #如果新字典里面没有城市就等于1
print(dic)
5.干掉主播.现有如下主播收益信息, 按照要求, 完成相应操作:
zhubo = {'卢本伟': 122000, '冯提莫': 189999, '金老板': 99999, '吴老板': 25000000, 'alex': 126}
1.计算各位主播收益的平均值.
2.干掉收益小于平均值的主播.
3.干掉卢本伟.
zhubo = {'卢本伟': 122000, '冯提莫': 189999, '金老板': 99999, '吴老板': 25000000, 'alex': 126}
# 1.计算各位主播收益的平均值.
# 2.干掉收益小于平均值的主播.
# 3.干掉卢本伟.
sum =0
for i in zhubo.values():
sum=sum+i
avg=sum/len(zhubo) lis=[]
for k,v in zhubo.items():
if v < avg:
lis.append(k)
print(lis) # for el in lis:
# zhubo.pop(el)#for 新list 开始删除字典的可key
# print(zhubo) # zhubo.pop("卢本伟")
# print(zhubo)
python 小数据池 is和 == 编码解码的更多相关文章
- 小学生都能学会的python(小数据池)
小学生都能学会的python(小数据池) 1. 小数据池. 目的:缓存我们字符串,整数,布尔值.在使用的时候不需要创建过多的对象 缓存:int, str, bool. int: 缓存范围 -5~256 ...
- Python小数据池,代码块
今日内容一些小的干货 一. id is == 二. 代码块 三. 小数据池 四. 总结 python小数据池,代码块的最详细.深入剖析 一. id is == 二. 代码块 三. 小数据池 四. ...
- python 小数据池,代码块, is == 深入剖析
python小数据池,代码块的最详细.深入剖析 一. id is == 二. 代码块 三. 小数据池 四. 总结 一,id,is,== 在Python中,id是什么?id是内存地址,那就有人问了, ...
- python -- 小数据池 is和 == 再谈编码
1.小数据池 python程序是由代码块构成的,一个代码块的文本作为python程序的执行单元. 代码块:一个模块,一个函数,一个类,甚至一个command命令都是一个代码块,一个文件也是一个代码块, ...
- python之路--小数据池,再谈编码,is和 == 的区别
一 . 小数据池 # 小数据池针对的是: int, str, bool 在py文件中几乎所有的字符串都会缓存. # id() 查看变量的内存地址 s = 'attila' print(id(s)) 二 ...
- python小数据池 is和 == 再谈编码
1. 小数据池, id() 小数据池针对的是: int, str, bool 在py文件中几乎所有的字符串都会缓存. id() 查看变量的内存地址 2. is和==的区别 is 比较的是内存地址 == ...
- python 小数据池,is and "==",decode ,encode
一:小数据池 1.python运行中的缓存: 2.目的:缓存我们字符串,整数,布尔值.在使用的时候不需要创建过多的对象 3.python 缓存数据:缓存:int, str, bool. ...
- day06 小数据池,再谈编码
今日所学 一. 小数据池 二. is 和==的区别 三. 编码的问题 一.小数据池的作用 用来缓存数据 可以作用的数据类型: 整数(int), 字符串(str), 布尔值(bool). 什么是块 ...
- python小数据池,代码块知识
一.什么是代码块? 根据官网提示我们可以获知: A Python program is constructed from code blocks. A block is a piece of Pyth ...
随机推荐
- HDU1659-GCD-容斥原理
从1-a和1-b种选两个数xy,计算出令gcd(x,y)=k的xy的对数. 对于每一个i∈[1,b]使用solve(i,n)函数解决有几个j∈[1,n]使gcd(x,y)=k.然后累加solve(i, ...
- Flask 构建微电影视频网站(三)
搭建后台页面 视图函数位于admin文件夹下, app/admin/views.py 管理员登录页面搭建 视图函数 @admin.route('/') def index(): return '后台主 ...
- 洛谷P4782 2-SAT问题
2-SAT问题 这是一道2-SAT的模板题.对于2-SAT问题的每一个条件,我们需要把他们转化成可接受的条件.即"若变量A的赋值为x,则变量B的赋值为y",其中x,y均等于0或1. ...
- 【XSY2741】网格 分治 LCT 并查集
题目描述 有一个\(n\times m\)的网格,线框的交点可以扭动,边不可伸缩.网格中有一些格子里面放了'x'形的支架,这些格子不会变形,但可以整体转动.如果所有格子都不能变形,那么称这个网格稳固. ...
- 1286 unknown storage engine innodb
打开my.ini 找到 loose-skip-innodb 与 skip-innodb 前面加上 # 注释掉,重启mysql 服务
- 洛谷CF1071E Rain Protection(计算几何,闵可夫斯基和,凸包,二分答案)
洛谷题目传送门 CF题目传送门 对于这题,我无力吐槽. 虽然式子还是不难想,做法也随便口胡,但是一些鬼畜边界情况就是判不对. 首先显然二分答案. 对于每一个雨滴,它出现的时刻我们的绳子必须落在它上面. ...
- Linux 多网卡绑定bond
mode=0:负载均衡模式,增加带宽,两块网卡使用的是同一个MAC地址,所以必须配置网卡相连的交换机,这两个端口应采用聚合方式. mode=1:主备模式,一个线断了,另一条自动备援. mode=6:负 ...
- sql语句循环截取字符串
测试环境 : mssql2016 express 需求 : 拆分字符串执行insert 思路 : 在循环中截取分隔符之间的字符串.起止点位置计算 起点从0开始startIndex,查找第一个分隔 ...
- centos7安装较高版本python3.5/3.6
应用环境: Centos7或者RHEL7下默认安装的python版本为2.7.x,更新不够及时,现在很多时候需要额外安装较高版本的python环境, 网上搜罗一圈总结记录一下常用两种方式: ① 源码编 ...
- hdu 3374 String Problem(kmp+最小表示法)
Problem Description Give you a string with length N, you can generate N strings by left shifts. For ...