一.首先区分"is"与"=="
1.什么是"is"它比较的是什么?
"is"在英文中意思:"是" 那么在python 'is'比较的是两个变量的地址(id)
# n = 10
# print(id(n)) #1408197120
# li = [1,2,3]
# print(id(li)) #38922760
#字符串
# a = 'name'
# b = 'name'
# print(a is b) #True
#数字
# n = 10
# n1 = 10
# print(n is n1) #True
is 是 比较 比较的是内存地址
2.什么是"=="
"=="这个大家都清楚它在编程语言中比较值是否相等
a = 'alex'
b = 'alex' print(a == b) True
n = 10 n1 = 10 print(n == n1) True
li1 = [1,2,3] li2 = [1,2,3] print(li1 == li2) True
说到地址就不得不提出一个概念"小数据池"
数字小数据池的范围 -5 ~ 256
字符串中如果有特殊字符他们的内存地址就不一样
字符串中单个*20以内他们的内存地址一样,单个*21以上内存地址不一致
这些都不要去深究,大致有个概念就可以了,越搞越糊涂.
二.编码和解码
为什么要讲编码和解码呢?
在前面我们说过Pyton3用的是万国码编程的但是如果客户有这样的需求代码只要国标码去编那么你应该怎么办?
不用担心pycharm可以帮你做到
#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'xe9xa5xbfxe4xbax86xe5x90x97'
# print(s.encode('gbk')) #b'xb6xf6xc1xcbxc2xf0'
# print(s1)
# print(s1.decode('utf-8'))
图片了解一下:
编码叫做"encode" 解码叫做"decode" (不用谢我叫雷锋!)
![](https://images2018.cnblogs.com/blog/1451303/201808/1451303-20180804143249804-891512574.png)