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装饰器原理,从此面试工作再也不怕了. 一.装饰器 装饰器可以使函数执行前和执行后分别执行其他的附加功能,这种在代码运行期间动态增加功能的方式,称之为“ ...
随机推荐
- Linux系统Oracle启动、关闭
Linux系统启动Oracle命令 su - oracle sqlplus /nolog conn / as sysdba startup exit lsnrctl start exit Linux系 ...
- WebForm多页面传值跳转
一.URL传值 URL传值是利用跳转地址直接加变量定义内容 格式:跳转地址?任意变量=传的值--?=之间不能有空格 多条数据传值 在地址栏继续拼接&key=value void Button1 ...
- docker修改镜像名称
[root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE pujh/centos tomcat-centos 70f ...
- Linux 压缩归档
压缩 压缩工具:gzip bzip2 zip tar 压缩格式 常见的压缩格式:gz.bz2.xz.zip.Z tar.gz格式 [root@xuegod72 mnt]# tar zcf gr ...
- usb之python(pyusb)
电脑系统为WIN7 64位 python:为python3.6 32位 需要插件PyUSB-1.0.0.tar,pywinusb-0.4.2. 按照的步骤我偷懒了,自己百度一下. 我们先看设备管理的 ...
- 机器学习进阶-案例实战-图像全景拼接-图像全景拼接(RANSCA) 1.sift.detectAndComputer(获得sift图像关键点) 2.cv2.findHomography(计算单应性矩阵H) 3.cv2.warpPerspective(获得单应性变化后的图像) 4.cv2.line(对关键点位置进行连线画图)
1. sift.detectAndComputer(gray, None) # 计算出图像的关键点和sift特征向量 参数说明:gray表示输入的图片 2.cv2.findHomography(kp ...
- Windows下如何查看某个端口被谁占用
开发时经常遇到端口被占用的情况,这个时候总是很令人抓狂,知道被哪个进程占用还好,结束就是了,要是不知道我们该怎么办呢? 我告诉大家一个方法,^_^. 1. 开始—->运行—->cmd,或者 ...
- Windows下MongoDB安装配置
一.安装 官网下载,一般选择community server版本下载,如果是企业可以选择enterprise版本,个人使用的话community就可以了,附上链接:https://www.mongod ...
- JSdom操作内容,样式,属性
<p> JavaScript 能够直接写入 HTML 输出流中: </p> <script> document.write("<h1>This ...
- python执行外部命令并获取输出
使用subprocess库 import subprocess out_bytes = subprocess.check_output(['netstat','-a']) out_bytes = su ...