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-压缩文件的原理
1 一种压缩原理 在系统中,系统使用byte作为最小单位来描述文件大小,但是计算机最小的单位是bit 一个byte=8bit,通常描述一个文件,计算机是使用0和1来存储的,所以系统工程师利用技术把为0 ...
- python库:bs4,BeautifulSoup库、Requests库
Beautiful Soup https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/ Beautiful Soup 4.2.0 文档 htt ...
- <转载> maven 详解 http://www.cnblogs.com/binyue/p/4729134.html
--声明规范 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3 ...
- flex学习笔记 使用函数,显示实时更新的标签
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...
- vs2008发布项目失败的解决方法
解决办法: 要知道发布是怎么失败的,用组合键"Ctrl+Alt+O"即可,仔细查看信息可发现有没发布成功的详细提示,然后在资源管理器中找到那一项,删除或排除到项目外,重新生成之后再 ...
- centos如何安装jdk8
首先下载jdk1.8 去官网下载jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151. ...
- Linux的学习 --corntab
计划任务的使用方法 http://www.cnblogs.com/CraryPrimitiveMan/p/4124851.html
- 检查nginx后端real server脚本,实现发现宕机剔除,恢复服务自动加入功能
#!/bin/bash #Author: Liang WeiCheng ip_array=($(grep "server 10.112.84" /etc/nginx/nginx.c ...
- UI5-学习篇-14-基于BSP应用部署Fiori Launchpad
1.UI5应用发布前端服务器 UI5-学习篇-10-本地UI5应用部署到SAP前端服务器 2.登录Fiori https://XXXXXX:50000/sap/bc/ui5_ui5/sap/arsrv ...
- 将IP地址字符串转为32位二进制
def str2bin(s): temp = s.split('.') result = '' for i in range(len(temp)): temp[i] = str(bin(int(tem ...