python全栈闯关--6-小知识点总结

Posted zxw-xxcsl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python全栈闯关--6-小知识点总结相关的知识,希望对你有一定的参考价值。

1、python2和python3区别常用整理

# python2
print ‘abc‘
# 返回一个列表
range()
# 返回一个生成器值,不是list。每次只生成一个值,避免暂用很大的内存
xrange() # 生成器
# 输入
raw_input(...)

# python3
print(‘abc‘)
# 返回一个迭代值,需要生成列表就需要使用list(range(...))
range()
input(...)


2、复制 == 比较值是否相等 is 比较,比较的是内存地址 id(内容)

>>> li1 = [1,2,3]
>>> li2 = li1
>>> pring(id(li1),id(li2))
>>> print(id(li1),id(li2))
2472533256584 2472533256584

# 数字和字符串存在小数池,小数池范围内,使用的是同一个内存地址
# 数字  -5~256
>>> i1 = 6
>>> i2 = 6
>>> print(id(i1),id(i2))
140717920019440 140717920019440
>>> i1 = 300
>>> i2 = 300
>>> print(id(i1),id(i2))
2472536947344 2472536947248
>>> i1 = 256
>>> i2 = 256
>>> print(id(i1),id(i2))
140717920027440 140717920027440
>>> i2 = 257
>>> i1 = 257
>>> print(id(i1),id(i2))
2472536947344 2472536947248
>>> i1 = -5
>>> i2 = -5
>>> print(id(i1),id(i2))
140717920019088 140717920019088
>>> i2 = -6
>>> i1 = -6
>>> print(id(i1),id(i2))
2472536947344 2472536947248

 

# 字符串: 1、不能有特殊字符
#         2、s*20 还是同一个地址,s*21以后都是两个地址(有待考证,试验时,* 1以上,都变化了。估计是版本不同导致
>>> s1 = 121212asdasdasdadasdasdasdadadqrjladksfjaiodfu
>>> s2 = 121212asdasdasdadasdasdasdadadqrjladksfjaiodfu
>>> print(id(s1),id(s2))
2472537146064 2472537146064
>>> s1 = 121212asdasdasdadasdasdasdadadqrjladksfjaiodfu@
>>> s2 = 121212asdasdasdadasdasdasdadadqrjladksfjaiodfu@
>>> print(id(s1),id(s2))
2472537146160 2472537146064

# list、dict、tuple、set
# list
>>> l1 = [1,]
>>> l2 = [1,]
>>> print(l1 is l2)
False
>>>
>>> l2 = l1
>>> print(l1 is l2)
True

 

3、字符集编码

ascii
A : 00000010 8位 一个字节

unicode A : 00000000 00000001 00000010 00000100 32位 四个字节
中:00000000 00000001 00000010 00000110 32位 四个字节


utf-8 A : 00100000 8位 一个字节
中 : 00000001 00000010 00000110 24位 三个字节


gbk A : 00000110 8位 一个字节
中 : 00000010 00000110 16位 两个字节
1,各个编码之间的二进制,是不能互相识别的,会产生乱码。
2,文件的储存,传输,不能是unicode(只能是utf-8 utf-16 gbk,gb2312,asciid等)



py3:
str 在内存中是用unicode编码。
bytes类型
对于英文:
str :表现形式:s = ‘beer‘
编码方式: unicode
bytes :表现形式:s = b‘beer‘
编码方式: utf-8 gbk。。。。

对于中文:
str :表现形式:s = ‘熊大‘
编码方式: unicode
bytes :表现形式:s = b‘\xe9\x9b\x84\xe5\xa4\xa7‘
编码方式: utf-8 gbk。。。。

>>> s = beer
>>> s1 = bbeer
>>> print(s,type(s))
beer <class str>
>>> print(s1,type(s1))
bbeer <class bytes>
>>> 
>>> 
>>> s = 雄大
>>> print(s,type(s)
      )
雄大 <class str>
>>> s1 = b雄大
SyntaxError: bytes can only contain ASCII literal characters.
>>> 
>>> 
>>> s1 = s.encode(utf-8)
>>> print(s1)
b\xe9\x9b\x84\xe5\xa4\xa7
>>> s1 = s.encode(gbk)
>>> print(s1)
b\xd0\xdb\xb4\xf3

 

以上是关于python全栈闯关--6-小知识点总结的主要内容,如果未能解决你的问题,请参考以下文章

Python之——遇到的小知识点总结

python小知识点总结

JavaSE课程知识体系总结

Selenium-总结(思维导图)

python小知识点的总结

python全栈和python自动化课程的区别在哪?