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. centos6安装python3

    1.安装环境 #yum install gcc zlib-devel make 2.下载python版本 #wget http://www.python.org/ftp/python/3.*.0/Py ...

  2. 36.scrapy框架采集全球玻璃网数据

    1.采集目标地址 https://www.glass.cn/gongying/sellindex.aspx 网站比较简单,没什么大的需要注意的问题.2.通过分析测试 https://www.glass ...

  3. ck

    ck

  4. js代码执行过程

    一:first-blood:任何程序执行的第一步总是会先检查有没有语法错误,如果有,则直接抛出语法错误,直接跳出, 二:second-blood:预编译,预编译呢会有四个执行过程,1:创建执行期上下文 ...

  5. windows系统安装

    系统最新地址:https://www.microsoft.com/zh-cn/software-download/windows10

  6. 高级js--(面向对象js,arguments,闭包,自调)

    1. Arguments对象    l检测参数个数 1.在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们. function howManyArgs() { al ...

  7. leetcode1020

    class Solution(object): def __init__(self): self.cons = 0 self.S = list() def dfs(self,m,n,v,A): whi ...

  8. 机器学习实战之朴素贝叶斯进行文档分类(Python 代码版)

    贝叶斯是搞概率论的.学术圈上有个贝叶斯学派.看起来吊吊的.关于贝叶斯是个啥网上有很多资料.想必读者基本都明了.我这里只简单概括下:贝叶斯分类其实就是基于先验概率的基础上的一种分类法,核心公式就是条件概 ...

  9. 使用STM32的USART的同步模式Synchronous调戏SPI【usart模拟spi理论】

    [原创出品§转载请注明出处] 出处:http://www.cnblogs.com/libra13179/p/7064321.html 什么东西?? 我们先来看我们平常看到SPI的时序图(呵呵,要是忘记 ...

  10. Spring和SpringMVC的常用注解

    Spring的部分: 使用注解之前要开启自动扫描功能 其中base-package为需要扫描的包(含子包). <context:component-scan base-package=" ...