python全栈开发 随笔 'is' 和 == 的比较知识与区别 编码和解码的内容及转换
python
一. is 和 == 的区别;
== 比较的是两边的值.
a = 'alex' b = 'alex' print(a = b) #True
a = 10 b = 10 print(a = b) # True
a= [1,2,3] b= [1,2,3] print(a = b ) #True
is 比较的是内存地址 id( )
a = 'alex' print(id(a)) # 36942544 内存地址
# n = 10 # print(id(n)) #1408197120
# li = [1,2,3] # print(id(li)) #38922760
(1)字符串的 is 比较
# a = 'alex' # b = 'alex' # print(a is b) #True
(2)数字的 is 比较
# n = 10 # n1 = 10 # print(n is n1) #True
小数据池: 数字的小数据池范围 -5~ 256
# n = -6 # n1 = -6 # print(n is n1) #False
# n = -5 # n1 = -5 # print(n is n1) #True
字符串中如果有特殊字符,他们的内存地址就不一样;
# a = 'alex@' # a1 = 'alex@' # print(a is a1) # Fales
字符串中单个 * 20以内的他们的内存地址一样,单个 * 21 以上的内存地址不一致.
# a = 'a'*21 # b = 'a'*21 # print(a is b) # Flase
(3)列表的 is 比较
li =[1,2,3] li2 =[1,2,3] print(li is li2) #False
(4)元组的 is 比较
tu =(1,2,3) tu1 =(1,2,3) print(tu is tu1) # False
(5)字典的 is 比较
dic1 = {'name':'alex'}
dic = {'name':'alex'}
print(dic1 is dic) #False
注意:pycharm是个坑,一个py文件中所有的相同字符串 一般都是使用一样的内存地址.
二.编码和解码
ascii 码:
不支持 中文
支持 英文 数字 符号
8位 一个字节
gbk 码 国标码
支持 中文 英文 数字 符号
英文 16位 2个字节
中文 16位 2个字节
unicode 万国码
支持 中文 英文 数字 符号
英文 32位 4个字节
中文 32位 4个字节
utf - 8 长度可变的万国码 最少用 8位
英文 8位 1个字节
中文 24位 3个字节
python3中 程序运行阶段 使用的是 unicode 显示所有内容
bytes类型
传输和存储都是使用 bytes 类型
pycharm存储的时候默认使用的是 utf - 8
encode(编码方式) --------------- 拿到明文编码后对应的字节
decode(编码方式) --------------- 将编码后的字节解码成对应的明文
s = 'alex'
print(s.encode('utf-8')) # 编码 encode('utf-8') utf-8 是指定要编码成什么样的编码类型
print(s1.decode('utf-8')) #
bytes
b'alex'
s = '饿了'
s1 = s.encode('gbk') #b'饿了吗' #b'\xe9\xa5\xbf\xe4\xba\x86\xe5\x90\x97'
print(s.encode('gbk')) #b'\xb6\xf6\xc1\xcb\xc2\xf0'
print(s1)
print(s1.decode('utf-8'))
注意用什么进行编码就要用什么解码
不然最后会懵逼
python全栈开发 随笔 'is' 和 == 的比较知识与区别 编码和解码的内容及转换的更多相关文章
- Python全栈开发【面向对象进阶】
Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__geta ...
- Python全栈开发【面向对象】
Python全栈开发[面向对象] 本节内容: 三大编程范式 面向对象设计与面向对象编程 类和对象 静态属性.类方法.静态方法 类组合 继承 多态 封装 三大编程范式 三大编程范式: 1.面向过程编程 ...
- Python全栈开发【模块】
Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...
- Python全栈开发【基础四】
Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...
- Python全栈开发【基础三】
Python全栈开发[基础三] 本节内容: 函数(全局与局部变量) 递归 内置函数 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 def 函数名(参数): ... 函数体 . ...
- Python全栈开发【基础二】
Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...
- Python全栈开发【基础一】
Python全栈开发[第一篇] 本节内容: Python 的种类 Python 的环境 Python 入门(解释器.编码.变量.input输入.if流程控制与缩进.while循环) if流程控制与wh ...
- python 全栈开发之路 day1
python 全栈开发之路 day1 本节内容 计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可 ...
- Python全栈开发
Python全栈开发 一文让你彻底明白Python装饰器原理,从此面试工作再也不怕了. 一.装饰器 装饰器可以使函数执行前和执行后分别执行其他的附加功能,这种在代码运行期间动态增加功能的方式,称之为“ ...
随机推荐
- 8.2.1-优化SELECT语句
8.2.1.优化 SELECT 语句 由SELECT 语句组成的查询,在数据中执行所有的查询.对这类语句的调优排在首位,无论是调优动态web网页的二级响应时间,还是减少生成巨大隔夜报告的时间. 而且, ...
- 《汇编语言 基于x86处理器》第十一章 MS-DOS 编程部分的代码 part 2
▶ 书中第十一章的程序,主要讲了 Windows 接口,在小黑框中进行程序交互 ● 在屏幕指定位置输出带自定义属性的文字 INCLUDE Irvine32.inc .data outHandle HA ...
- 《算法》第三章部分程序 part 6
▶ 书中第三章部分程序,加上自己补充的代码,包含双向索引表.文建索引.稀疏向量类型 ● 双向索引表 package package01; import edu.princeton.cs.algs4.S ...
- pycharm中查找替换妙用
1.二行空格变一行(转载https://www.cnblogs.com/dreamfine/p/7760575.html) 网上COPY的代码,经常多出一个空行,不用一行行删除了,用替换功能吧,查找 ...
- nginx配置资源缓存
缓存nginx服务器的静态文件.如css,js,htm,html,jpg,gif,png,flv,swf,这些文件都不是经常更新.便于缓存以减轻服务器的压力. 打开配置文件/usr/local/ngi ...
- VSFTP 服务器配置
解决root用户无法登陆ftp传输文件的问题 配置vsftpd用户,启用root用户. #cd /etc/vsftpd #vi ftpusers 注释掉root 修改user_list文件 # ...
- zipfile模块
在python中操作zip文件, 基本上都是使用zipfile模块,他可以创建.解压文件,获取zip文件的元数据信息. 我们想要操作一个zip文件,第一步就是初始化ZipFile实例. 1.打开tes ...
- Bootstarp 模版网站
最佳Bootstrap模版 https://colorlib.com/wp/cat/bootstrap/ https://www.jianshu.com/p/4a116cf24a05
- ABAP-折叠窗口
1.测试 2.代码 *&---------------------------------------------------------------------* *& Report ...
- 页面中的checkbox多选值获取
依据name名称获取选中值 var arr=document.getElementsByName("name");arr是一个数组,就是所有checkbox的值:for(i=0;i ...