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 #如果新字典里面没有城市就等于1print(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+iavg=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)
转载于:https://www.cnblogs.com/zaizai1573/p/10063015.html
python 小数据池 is和 == 编码解码相关推荐
- python小学生课本剧_小学生都能学会的python(小数据池)
小学生都能学会的python(小数据池) 1. 小数据池. 目的:缓存我们字符串,整数,布尔值.在使用的时候不需要创建过多的对象 缓存:int, str, bool. int: 缓存范围 -5~256 ...
- Python小数据池,代码块
今日内容一些小的干货 一. id is == 二. 代码块 三. 小数据池 四. 总结 python小数据池,代码块的最详细.深入剖析 一. id is == 二. 代码块 三. 小数据池 四. 总结 ...
- Python 图片数据MYSQL存取(BASE64编码解码)
Python 图片数据MYSQL存取(BASE64编码解码) 1.相关python代码 #-*- coding:utf-8 -*-import pymysql import sys import ba ...
- python之路--小数据池,再谈编码,is和 == 的区别
一 . 小数据池 # 小数据池针对的是: int, str, bool 在py文件中几乎所有的字符串都会缓存.# id() 查看变量的内存地址 s = 'attila' print(id(s)) 二 ...
- python代码块-python小数据池,代码块的最详细、深入剖析
一,id,is,== 在Python中,id是什么?id是内存地址,那就有人问了,什么是内存地址呢? 你只要创建一个数据(对象)那么都会在内存中开辟一个空间,将这个数据临时加在到内存中,那么这个空间是 ...
- python小数据池,代码块的最详细、深入剖析
一. id is == 二. 代码块 三. 小数据池 四. 总结 一,id,is,== 在Python中,id是什么?id是内存地址,那就有人问了,什么是内存地址呢? 你只要创建一个数据(对象)那么都 ...
- Python小数据池
一. id is == 二. 代码块 三. 小数据池 四. 总结 一,id,is,== 在Python中,id是什么?id是内存地址,那就有人问了,什么是内存地址呢? 你只要创建一个数据(对象)那么都 ...
- python我想对你说_python学习第4天----is和==区别、小数据池、编码解码
1.is和==的区别 1)==比较的是左右两边的值,无论是字符串.数字.列表,元组.若两边的值相等,则返回True a = "zdz"b= "zdz" prin ...
- python is 和 == 的区别、解码和编码 小数据池
一 . is 和 == (1) is 是比较两边的内存地址 a=1 print(id(a))b=1 print(id(b))print(a is b) # Truestr='alex' print ...
最新文章
- Mysql高级调优篇——前言简介
- python电脑下载什么软件好-Python工具 | 4个好用的开源 Python 下载器
- 1.1 为什么选择序列模型-深度学习第五课《序列模型》-Stanford吴恩达教授
- C++中namespace的理解与实践
- [转]想要成为一名优秀的Java程序员,这份文档必读
- 初学Java学员,千万不要踩这几个坑
- oracle中何时会用到join,Oracle中join用法的演示
- 模型☀️Catia模型到Unity的转化过程
- pdf editor android,MaxiPDF PDF editor builder
- MSP430学习笔记1——msp430概述
- 周星驰搞笑电影中的BT角色大全(100位)
- 微光系列之青春无敌美少女
- IPv4/IPv6地址范围与网络地址/子网掩码的转换,点分十进制与数字掩码的转换
- 实施配置 b/s 架构 webERP
- 小米十周年雷军演讲全文:和这个伟大时代同行,是最大的荣幸
- 【Joy of Cryptography 读书笔记】Chapter 6 伪随机函数(Pseudorandom Function)分组密码(Block Cipher)
- 软工1816 · Alpha冲刺(4/10)
- 接入厂商沟通科技跻身“深圳高新技术企业”行列
- python使用panda3d制作飞行模拟器
- 基于容器制作基于ubuntu启动ssh服务的镜像