Python2.与Python3.的区别

在很多Python有关的教程、书籍和代码片中,通常没有注明Python的版本,特别是百度出来一些Python编程问题的帖子,这对很多初学者的学习造成不小的困扰。为跟上时代的潮流,墙裂建议Python初学者从Python3.版本入手,这并不会增加Python学习的难度,还会减少很多不必要的麻烦。对于已经入坑Py2想转Py3的童鞋们,这里我总结了一些关于两个Python版本的语法变化,另在文末附上一份详细指南,以供大家学习参考。

1. Print函数

py2中print是一个语法结构,如 print value;    

py3中print是一个函数,如 print(value)。

2. 除法运算

py2中两个整数除法得到的是0,要想得到浮点数结果,则被除数或除数二者要有一个是浮点数才行。如:

print 1/4    >>>0

print 1/4.   >>>0.25

py3中整数相除可以直接得到浮点数结果,要想整数相除得到的是0,则要使用//符号。如:

print(1/4)   >>>0.25

print(1//4)  >>>0

3. nonlocal语句

py2没有,而py3 新加入的,可以指定非全局变量。

4. Input函数

py2中输入函数有input和raw_input两个函数,py3中只保留了input函数作为输入函数,而不再使用raw_input。

5. cPickle模块

py3中用pickle模块来取代py2的cPickle模块

6. urlib模块

py2中有两个爬虫常用包urlib和urlib2,在py3中二者统一到urlib中。此外,py2中的urlparse模块也被统一到了urlib中,用法为urlib.parse。

7. 字典dict的方法

dict中的keys()、items()、values()方法将返回一个迭代器,而iterkeys()、has_key()方法将被弃用。

8. 迭代器next()

py3中迭代器next()方法更改为__next__(),并增加了内置函数next()。

9. 装饰器@

py3中新增了两个装饰器@abstractmethod和@abstractproperty。

10. os模块

py3中os模块中的os.tmpnam()和os.tmpfile()已转移到了tmpfile模块下。

此外,关于更多版本变动的内容,不再一一列出说明。在此,附上一篇干货《机器学习从python2迁移到python3你需要注意的一些事》,里面几乎涵盖了所有变动的内容及详解,有兴趣的童鞋可移步https://mp.weixin.qq.com/s?__biz=MzI0ODcxODk5OA==&mid=2247492842&idx=1&sn=52a3ae3083b906655985d36b5354e15c&chksm=e99ed713dee95e05cf1bee63bd5d7d5e09b929bd2c4f995ab5e4d28677b666188af1c425208c&scene=0#rd继续学习。祝大家元宵节快乐!




发布了31 篇原创文章 · 获赞 30 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/linchunmian/article/details/79424653