第六天
字符串中如果有特殊字符他们的内存地址就不一样
字符串中单个*20以内他们的内存地址一样,单个*21以上内存地址不一致
a1 = 'alex@'
print(a is a1) # Fales
n1 = 2
print(n is n1) #True
b = 'a'*21
print(a is b)
b = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
print(a is b)
n = -6
n1 = -6
print(n is n1) #False
n1 = -5
print(n is n1) #True
n = 257
n1 = 257
print(n is n1) #True
总结:
unicode 万国码
utf-8 长度可变的万国码 最少用8位
中文 24位 三个字节
Python3中 程序运行阶段 使用的是unicode 显示所有的内容
字符串单个字符*20以内内存地址都是一样的,单个字符*21以上内存地址不一致
== 比较 比较是值
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
is 是 比较 比较的是内存地址
a = 'alex'
print(id(a)) # 36942544 内存地址
n = 10
print(id(n)) #1408197120
li = [1,2,3]
print(id(li)) #38922760
字符串
a = 'alex'
b = 'alex'
print(a is b) #True
数字
n = 10
n1 = 10
print(n is n1) #True
========================================================
小数据池
数字小数据池的范围 -5 ~ 256
字符串中如果有特殊字符他们的内存地址就不一样
字符串中单个*20以内他们的内存地址一样,单个*21以上内存地址不一致
黑框框 == 终端
a = 'alex@'
a1 = 'alex@'
print(a is a1) # Fales
n = 5//2
n1 = 2
print(n is n1) #True
a = 'a'*21
b = 'a'*21
print(a is b)
a = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
b = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
print(a is b)
n = -6
n1 = -6
print(n is n1) #False
n = -5
n1 = -5
print(n is n1) #True
n = 257
n1 = 257
print(n is n1) #True
总结:
== 比较 比较的俩边的值
is 比较 比较的是内存地址 id()
列表
li =[1,2,3]
li2 =[1,2,3]
print(li is li2) #False
元组
tu =(1,2,3)
tu1 =(1,2,3)
print(tu is tu1) # False
字典
dic1 = {'name':'alex'}
dic = {'name':'alex'}
print(dic1 is dic) #False
-*- encoding:utf-8 -*-
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'))
浙公网安备 33010602011771号