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' 和 == 的比较知识与区别 编码和解码的内容及转换的更多相关文章

  1. Python全栈开发【面向对象进阶】

    Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__geta ...

  2. Python全栈开发【面向对象】

    Python全栈开发[面向对象] 本节内容: 三大编程范式 面向对象设计与面向对象编程 类和对象 静态属性.类方法.静态方法 类组合 继承 多态 封装 三大编程范式 三大编程范式: 1.面向过程编程 ...

  3. Python全栈开发【模块】

    Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...

  4. Python全栈开发【基础四】

    Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...

  5. Python全栈开发【基础三】

    Python全栈开发[基础三]  本节内容: 函数(全局与局部变量) 递归 内置函数 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 def 函数名(参数): ... 函数体 . ...

  6. Python全栈开发【基础二】

    Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...

  7. Python全栈开发【基础一】

    Python全栈开发[第一篇] 本节内容: Python 的种类 Python 的环境 Python 入门(解释器.编码.变量.input输入.if流程控制与缩进.while循环) if流程控制与wh ...

  8. python 全栈开发之路 day1

    python 全栈开发之路 day1   本节内容 计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可 ...

  9. Python全栈开发

    Python全栈开发 一文让你彻底明白Python装饰器原理,从此面试工作再也不怕了. 一.装饰器 装饰器可以使函数执行前和执行后分别执行其他的附加功能,这种在代码运行期间动态增加功能的方式,称之为“ ...

随机推荐

  1. 8.2.1-优化SELECT语句

    8.2.1.优化 SELECT 语句 由SELECT 语句组成的查询,在数据中执行所有的查询.对这类语句的调优排在首位,无论是调优动态web网页的二级响应时间,还是减少生成巨大隔夜报告的时间. 而且, ...

  2. 《汇编语言 基于x86处理器》第十一章 MS-DOS 编程部分的代码 part 2

    ▶ 书中第十一章的程序,主要讲了 Windows 接口,在小黑框中进行程序交互 ● 在屏幕指定位置输出带自定义属性的文字 INCLUDE Irvine32.inc .data outHandle HA ...

  3. 《算法》第三章部分程序 part 6

    ▶ 书中第三章部分程序,加上自己补充的代码,包含双向索引表.文建索引.稀疏向量类型 ● 双向索引表 package package01; import edu.princeton.cs.algs4.S ...

  4. pycharm中查找替换妙用

    1.二行空格变一行(转载https://www.cnblogs.com/dreamfine/p/7760575.html) 网上COPY的代码,经常多出一个空行,不用一行行删除了,用替换功能吧,查找 ...

  5. nginx配置资源缓存

    缓存nginx服务器的静态文件.如css,js,htm,html,jpg,gif,png,flv,swf,这些文件都不是经常更新.便于缓存以减轻服务器的压力. 打开配置文件/usr/local/ngi ...

  6. VSFTP 服务器配置

    解决root用户无法登陆ftp传输文件的问题 配置vsftpd用户,启用root用户.  #cd /etc/vsftpd #vi ftpusers  注释掉root  修改user_list文件  # ...

  7. zipfile模块

    在python中操作zip文件, 基本上都是使用zipfile模块,他可以创建.解压文件,获取zip文件的元数据信息. 我们想要操作一个zip文件,第一步就是初始化ZipFile实例. 1.打开tes ...

  8. Bootstarp 模版网站

    最佳Bootstrap模版 https://colorlib.com/wp/cat/bootstrap/ https://www.jianshu.com/p/4a116cf24a05

  9. ABAP-折叠窗口

    1.测试 2.代码 *&---------------------------------------------------------------------* *& Report ...

  10. 页面中的checkbox多选值获取

    依据name名称获取选中值 var arr=document.getElementsByName("name");arr是一个数组,就是所有checkbox的值:for(i=0;i ...