学习来源:老男孩-太白金星
1、 python2,3区别
python2.7默认使用ascii(无论源码编码方式是什么,python解释器都将使用ascii读取源文件,且如果碰到ascii之外的字符,则报错),但是python3.6在不指定的情况下,执行编码方式默认使用utf-8编码,所以在这种情况下,python3.6无需显示指定utf-8为执行编码方式。(这一点和c语言的vs的cl.exe等编译器相似,在不指定执行编码方式时,cl.exe默认使用gbk编码,gcc则默认使用与源码编码方式一致的编码,但python和c语言编译器还有不同,c语言允许源码编码方式和执行编码方式不一致,并且编译器会自动将源码中字符串转码成为执行编码方式相应的字符串,即exe文件中的字符串常量编码与源文件中的字符串编码不同,但python如果源码编码与执行编码不一致,将出现乱码,甚至直接报错)
python2
print() print 'abc'
range() xrange() 生成器
raw_input()
python3
print('abc')
range()
input()
2、 = 赋值 == 比较值是否相等 is 比较,比较的是内存地址 id(内容)
# = 赋值 == 比较值是否相等 is 比较,比较的是内存地址 id(内容)
li1 = [1,2,3]
li2 = li1
li3 = li2
print(id(li1),id(li2))
3、数字,字符串
数字,字符串 小数据池
数字的范围 -5 -- 256
字符串:1,不能有特殊字符
#2,s*20 还是同一个地址,s*21以后都是两个地址
i1 = 6
i2 = 6
print(id(i1),id(i2))
i1 = 300
i2 = 300
print(id(i1),id(i2)) # 在程序中是不一致的
4、list dict tuple set
#剩下的 list dict tuple set
l1 = [1,]
l2 = [1,]
print(l1 is l2)
s = 'alex'
s1 = b'alex'
print(s,type(s))
print(s1,type(s1))