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.htmlGuido: https://docs.python.org/3/whatsnew/3.0.html