Python版本选择问题(自我总结)
摘要
对于小白刚接触 python,无论通过什么方式学习它(其实无非两种方式,视频学习和书本学习,两者结合最好)。在开始的时候会遇到版本选择的问题,同样身为小白的我当时在面临这个选择的时候根本没有多考虑,果断选最新的啊,(python2.X? 什么老古董python3.5前的都不想装)渐渐学习中发现,其实好多书本和视频中的教学还是用的2.x版本,网上的一些问题代码同样有古老的,这让我非常不爽,苦恼中…
上面说了这么多,其实我只是想声明三点:
(1)不必纠结,版本就选最新的。
(2)不要因为一些教学视频或书本是用2.x就弃之不用,学就是了。
(3)学3.x也要懂2.x,主要记住区别就OK了。
常见的区别
python新版本不向下兼容,所谓向下兼容,又称向后兼容(有些问题把向下兼容和向后兼容区别开来,垃圾问题,完全不必理会)
维基百科:
向下兼容(downward compatibility),又称向后兼容(backward compatibility)、回溯兼容,在计算机中指在一个程序、库或硬件更新到较新版本后,用旧版本程序创建的文档或系统仍能被正常操作或使用(包括输入数据)、在旧版本库的基础上开发的程序仍能正常编译运行,或较旧版的硬件仍可在新版使用的情况。
(1)print函数:用print()函数替换了print语句。(注意什么是函数什么是语句)
print "hello world " #2.x
print("hello world") #3.x
(2)exec语句:同print()一样
(3)修改了编码:3.x开始用Unicode(UTF-8)编码,简单理解就一句话:程序中能玩中文,不会乱码。
(4)去掉<>符号:用 != 表示“不等于”
(5)去掉长整型:统一 int(这也是python简洁的体现)
(6)修改整数除法:两个整数的一般除法(/)返回一个浮点数,不在返回一个整数,如果想返回整数,用整数除法(//)如
>>>3/2
>1 #2.x
>>>3/2
>1.5 #3.x
>>>3//2
>1 #3.x
(7)修改八进制整数格式:使用0o开头,不在用0开头(十六机制:0x;二进制:0b)
(8)增加关键字:增加as、with、True、Flase、None关键字
(9)去掉raw_input函数:用input()函数替代它,返回一个字符串
(10)修改range函数:range()功能与2.x中的xrange()类似,不在显式的返回一个列表,需要则通过list转换,如:
>>>range(6)
>[0,1,2,3,4,5] #2.x
>>>range(6)
>range(0,6) #3.x
>>>list(range(0,6))
>[0,1,2,3,4,5] #3.x
(11)修改返回类型:除了range()外,zip()、map()、filter()、字典类型的key()方法、value()方法、item()方法不再返回列表类型。
学无止境:
菜鸟文章:https://www.runoob.com/python/python-2x-3x.html
Guido: https://docs.python.org/3/whatsnew/3.0.html