is和==, 编码和解码

一. is和==

is比较的是两个变量的内存地址. ==比较的是两个变量的值.

 

is

小数据池: -5 ~ 256

在这个范围中的两个变量内存地址相同, print(a is b) 输出为True, 超出范围输出为False. 

在pycharm中和终端中不一样, pycharm中, 超过256也输出为True, 小于-5输出为False. 

 

两个变量都为同样的元组, 字典, 列表时, 输出变量1 is 变量2, 显示为False. 

 

在变量为字符时, 两个变量为一个相同的字符串, 当字符中不含有特殊字符时, Pycharm和终端都输出为True. 当字符中含有特殊字符时, 包括, . / * - + @, 内存地址不一样, 输出为False. 但是pycharm中, 输出仍然为True

在变量为字符时, 当变量为"w" * 20或小于20时(一个字符), Pycharm和终端输出都为True. 当变量为"qw" * 10或小于10时(两个字符), Pycharm和终端输出都为True

 

a = "abc"

print(id(a)) 输出 2757617409920, 这是内存地址

 

n = 5//2

n1 = 2

print(n is n1)                        Pycharm和终端输出都为True

 

 

二. 编码和解码

ascii 码:

不支持 中文

支持 英文 数字 符号

8位 一个字节

 

gbk码 国标:

支持 中文,英文,数字,符号

英文 16位 二个字节

中文 16位 二个字节


unicode 万国码

支持 中文,英文,数字,符号

英文 32 位 四个字节

中文 32位 四个字节


utf-8 长度可变的万国码 最少用8位

英文 8位 一个字节

中文 24位 三个字节

 

Python中, 程序运行阶段使用的时Unicode码, 显示所有内容, pycharm中的字符串就是Unicode的编码

Pycharm存储时, 默认使用UTF-8. 

 

s = "一二三"

print(s.encode("utf-8"))                                                b'\xe4\xb8\x80\xe4\xba\x8c\xe4\xb8\x89'

print(s.encode("utf-8").decode('utf-8'))                        一二三

 

转载于:https://www.cnblogs.com/NachoLau/p/9407786.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值