python 基础六 各项小知识点

1、python2 python3的区别:
python2
print()  print 'abc'   #print时,可以不加括号
range()   xrange() 生成器
 raw_input()       #用户交互

python3
print('abc')    # #print时,需要加括号
range()
 input()       #用户交互

2、= == is 三者之间的区别:

# = 赋值
# == 比较值是否相等 
#  is 比较,比较的是内存地址  是否相等
#ps:    id(内容)  #id取得的是内存地址


#举例:
# li1 = [1,2,3]
# li2 = li1
# li3 = li2
# print(id(li1),id(li2))

3、小数据池

注意:小数据池只有int数字和str字符串才有。表示一个数字在一个范围中,他们在内存中只开辟一个内存地址。相同的数据指向的是同一个内存地址。

3.1  数字的范围: -5 -- 256
3.2  字符串:1、不能有特殊字符
         2、s*20 还是同一个地址,s*21以后都是两个地址

# i1 = 6
# i2 = 6
# print(id(i1),id(i2)) #输出i1 i2的内存地址
# i1 = 300
# i2 = 300
# print(id(i1),id(i2))

3.3  剩下的list dict tuple set 都没有小数据池的概念

# l1 = [1,]
# l2 = [1,]
# print(l1 is l2)

4、str 与 bytes 之间的转换

1,各个编码之间的二进制,是不能互相识别的,会产生乱码。
2,文件的储存,传输,不能是unicode(只能是utf-8 utf-16 gbk,gb2312,asciid等)
Python3当中 str在内存中使用的是Unicode编码,但不能直接用于文件的传输与存储,所以需要转换成bytes类型,再转换成utf-8,或者gbk或者gbk2312等。
        对于英文:
             str  :表现形式:s = 'alex'
                    编码方式: 010101010  unicode
            bytes :表现形式:s = b'alex'
                    编码方式: 000101010  utf-8 gbk

        对于中文:
             str  :表现形式:s = '中国'
                    编码方式: 010101010  unicode
            bytes :表现形式:s = b'x\e91\e91\e01\e21\e31\e32'
                    编码方式: 000101010  utf-8 gbk

 

s1 = 'alex'
# encode 编码,如何将str --> bytes, ()
s11 = s1.encode('utf-8')
s11 = s1.encode('gbk')
print(s11)
s2 = '中国'
s22 = s2.encode('utf-8')
s22 = s2.encode('gbk')
print(s22)

 


 
posted @ 2017-12-21 19:21  amyleell  阅读(56)  评论(0)    收藏  举报