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. js调用打印机打印

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. hive数据倾斜原因以及解决办法

    何谓数据倾斜?数据倾斜指的是,并行处理的数据集 中,某一部分(如Spark的一个Partition)的数据显著多于其它部分,从而使得该部分的处理速度成为整个数据集处理的瓶颈. 表现为整体任务基本完成, ...

  3. 7. Orcle树形结构(类似数据字典有父子类关系),查询末节点的所有记录

    SELECT a.*FROM tablename aWHERE NOT EXISTS (SELECT 1 FROM tablename b WHERE b.Fid = a.id)START WITH ...

  4. 03.获取页面的flash文件

    1.打开页面的web控制台 2.选择网路查看当前请求的swf文件所在的地址 3.打开swf的文件地址 4.另存为swf的网页为swf格式 搞定就可以了.

  5. NRF51822之RNG

    在裸机下官方已经提供另一个RNG的例子(RF51_SDK_10.0.0_dc26b5e\examples\peripheral\rng) 好了现在我将给出在蓝牙模式下如何使用例子 #include & ...

  6. awk的用法

    awk是什么 awk是一种优良的文本处理工具,同时也是一种脚本语言.awk的三位作者者已将它正式定义为“样式扫描和处理语言”.awk脚本允许您创建简短的程序,这些程序读取输入文件.为数据排序.处理数据 ...

  7. centos查看命令

    1.查看 CPU 物理个数 grep 'physical id' /proc/cpuinfo | sort -u | wc -l 2.查看 CPU 核心数量 grep 'core id' /proc/ ...

  8. jquery下插入标签以及clone的应用

    //内部插入 插入一个儿子 //var $ele = $("<h1></h1>")//创建h1标签 // $ele.html('hello') // $el ...

  9. UICollectionView setPrefetchingEnabled

    UICollectionView 开启是否开启预加载,如果开启,cell在没显示的时候就回去调用cellForIndex…方法,如果没开启,cell只有在显示的时候才会去调用cellForIndex… ...

  10. Context namespace element 'annotation-config' and its parser class [org.springframework.context.annotation.AnnotationConfigBeanDefinitionParser] are only available on JDK 1.5 and higher

    Context namespace element 'annotation-config' and its parser class [org.springframework.context.anno ...