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装饰器原理,从此面试工作再也不怕了. 一.装饰器 装饰器可以使函数执行前和执行后分别执行其他的附加功能,这种在代码运行期间动态增加功能的方式,称之为“ ...
随机推荐
- python学习笔记_week4
装饰器: 定义:本质是函数,(装饰其他函数)就是为其他函数添加附加功能 原则:1.不能修改被装饰的函数的源代码 2.不能修改被装饰的函数的调用方式 实现装饰器知识储备: 1.函数即“变量” impor ...
- 国内好的python学习地址
python3官方在线文档https://docs.python.org/3/ 玩蛇网http://www.iplaypy.com/ python中文网 http://bbs.pythontab.co ...
- 汉诺塔问题python
count = 0def hanoi(n,src,mid,dst): global count if n == 1: print("{}:{}->{}".format(1,s ...
- 设计模式、j2ee 部 分、EBJ 部 分
八. 软 件 工 程 与 设 计 模 式 1 .UML 方 面 标准建模语言 UML.用例图,静态图(包括类图.对象图和包图),行为图,交互图(顺序图,合作 图),实现图. 2 .j2ee 常 用 的 ...
- hadoop的client搭建-即集群外主机访问hadoop
1增加主机映射(与namenode的映射一样): 增加最后一行 [root@localhost ~]# su - root1 [root@localhost ~]# vi /etc/hosts 12 ...
- leetcode1018
根据题目的hint,使用单层循环计算: class Solution(object): def prefixesDivBy5(self, A: 'List[int]') -> 'List[boo ...
- Mac 命令行,自定义命令
例如自定义命令 gotoXFolder, 直接进入XFolder文件夹, XFolder地址为~/abc/def/Xfolder 步骤: 1. 在home文件夹下创建.profile文件 在.prof ...
- linux系统安装java环境
参考资料:实测可用 https://www.cnblogs.com/xuliangxing/p/7066913.html
- vue:监听数据
1:普通的监听: data () { return { watchNum:1, } }, watch: { watchNum(newValue, oldValue) { console.log(old ...
- JULIA BOORSTIN — Interview a Broadcaster!
JULIA BOORSTIN — Interview a Broadcaster! Share Tweet Share Tagged With: Interview a Broadcaster Stu ...