码迷,mamicode.com
首页 > 编程语言 > 详细

python字符串,赋值和is的区别

时间:2019-01-23 15:44:17      阅读:393      评论:0      收藏:0      [点我收藏+]

标签:unicode   code   进制   列表   的区别   byte   32位   一个   比较   

1. == 与 is 的区别

赋值 == 比较值是否相等,is 比较,比较的是内存地址。

小数据池的作用是节省内存空间

数字的范围:-5 到 256 共用一个数据池

字符串范围:1.不能有特殊字符。2. s*20还是同一个地址,超过以后就是不用地址  3.不同字符超过20仍然is

剩下的 列表,元祖等没有小地址池

2. python3中的编码

ascii
    一个字符1个字节,占8位
    A:00000010

unicode
    一个字符4个字节,占32位
    A:00000000 00000001 00000010 00000010
    中:

utf-8
    一个英文字符,8位
    一个中文字符,占24位

gbk
    A:一个字符,8位
    中:一个中文字符,16位

    1.各个编码2 进制不能识别,会产生乱码
    2.文件的存储和传输不能是unicode

3.python中的bytes类型

‘‘‘
对于英文:
    str:    
            表现形式: s = ‘alex‘
            编码方式: 01010101  unicode
    bytes:
            表现形式: s = b‘alex‘
            编码方式: 01010101  utf-8 gbk
    
对于中文:
    str:    
            表现形式: s = ‘中国‘
            编码方式: 01010101  unicode
    bytes:
            表现形式: s = b‘x\e91\e91\e01\e21\e31\e32‘ 3字节表示一个中文,utf-8;若2个字节1个汉字,gbk
            编码方式: 01010101  utf-8 gbk
    
‘‘‘
s1 = alex
# 将 unicode 转换成utf-8 或gdk,表现形式是将str 转换成bytes,
# encode 编码,如何将str --> bytes,
s11 = s1.encode(utf-8)
print(s11)

 

python字符串,赋值和is的区别

标签:unicode   code   进制   列表   的区别   byte   32位   一个   比较   

原文地址:https://www.cnblogs.com/jiuyachun/p/10308890.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!