Python
当前位置:首页 > 学习资料 > Python >

python2和python3的区别有哪些详解

更新时间:2020年10月10日   作者:spoto
Python2和python3的区别有哪些详解:Python2python3分别是python的两个版本,python3作为一个升级版,许多针对早期Python版本设计的程式都无法在Python3.0上正常执行的。

python2和python3的区别有哪些详解

python2和python3的区别

1、print函数:print不再是语句,而是函数(Python3中print为一个函数,必须用括号括起来;Python2中print为class)。
比如原来是 print 'abc' ,现在是 print('abc')。
Python 2 的 print 声明已经被 print() 函数取代了,这意味着我们必须包装我们想打印在小括号中的对象。

2、在Python 3中,没有旧式类,只有新式类,也就是说不用再像这样class Foobar(object): pass 显式地子类化object,但是最好还是加上,主要区别在于 old-style 是 classtype 类型而 new-style 是 type类型。

3、新的字符串格式化方法format是否完全取代了%,其实并不应该这样理解,从 python2.6+ 开始,已经在str和unicode中有该方法, 同时 python3依然支持 % 算符。

4、xrange重命名为range,同时更改的还有一系列内置函数及方法, 都返回迭代器对象, 而不是列表或者元组, 比如 filter, map, dict.items 等。

5、long重命名为int, python3 彻底废弃了 long+int 双整数实现的方法, 统一为 int , 支持高精度整数运算。

6、exec变成了函数,类似 print() 的变化, 之前是语句。

7、通过input()解析用户的输入:Python3中input得到的为str;Python2的input的到的为int型,Python2的raw_input得到的为str类型。
即:Python3中用input,Python2中用row_input,都输入为str。
幸运的是,在 Python 3 中已经解决了把用户的输入存储为一个 str 对象的问题。为了避免在 Python 2 中的读取非字符串类型的危险行为,我们不得不使用 raw_input() 代替。

8、整除:(没有太大影响)Python3中/表示真除,%表示取余,//表示地板除(结果取整);Python2中/表示根据除数被除数小数点位得到结果,//同样表示地板除
即:Python3中/表示真除,%表示取余,//结果取整;Python2中带上小数点/表示真除,%表示取余,//结果取整

9、xrange模块:在 Python 3 中,range() 是像 xrange() 那样实现以至于一个专门的 xrange() 函数都不再存在(在 Python 3 中xrange() 会抛出命名异常)。
在 Python 2 中 xrange() 创建迭代对象的用法是非常流行的。比如: for 循环或者是列表/集合/字典推导式。
这个表现十分像生成器(比如。“惰性求值”)。但是这个 xrange-iterable 是无穷的,意味着你可以无限遍历。

由于它的惰性求值,如果你不得仅仅不遍历它一次,xrange() 函数 比 range() 更快(比如 for 循环)。尽管如此,对比迭代一次,不建议你重复迭代多次,因为生成器每次都从头开始。

Python2和Python3学哪个?

因为两个版本并不兼容,而且差异较大,所以很多同学犹豫是应该学习Python 2还是学习Python 3,今天小编也为大家答疑解惑。
首先,我们在此先直截了当的给到大家正确的建议!Python2和Python3最好都学!
当然,对此回答你可能有很多反驳的理由,比如“Python 3 才是Python的未来”“Python 官方都建议了让我们直接学习Python 3”“Python 2 只维护到2020年,学他干什么?”等等。
但是实际情况真的是这样吗?下面就来为大家分析一下。

为什么还要学习Python2

首先,Python 2只维护到2020年不应该成为你拒绝Python 2的理由,因为在版本之间的差距还没有大到使人们放弃习惯的情况下,短时间内大多数人还是会继续使用自己旧有的版本,直到版本产生飞跃式的改变或者有不得不换的理由。
而如果你觉得,Python 3才是Python的未来,不希望接触Python 2的项目。那么问题来了,一旦你遇到了Python2方面的需求,急需解决的问题,你该怎么办?
所以Python官方建议学习Python 3其实只是一种一厢情愿的行为,还是需要考虑用户的实际情况,更新换代不是一个短时间的事情。
另外,其实python是Linux上最常用的软件之一,但是linux目前的版本大部分还是使用python2的,在linux上依赖python2的程序更多一些,所以 Python3 要代替 python2 成为主流还需要几年的时间。
所以纠结先学 Python2 还是 Python3 没有太大必要,因为目前的市场和用户现状就是如此复杂,我们作为程序员无法改变现状,只能努力学习去适应好现状,满足各方面的需求,能够在实操中解决多种问题。

思博Python学习建议

1、如果是你在企业中,工作日常中就需要用到python,所以才来学习python的话,那就要根据企业的应用python的版本进行学习,最大限度提高效率,能够尽快把学到的技能应用的工作中。
2、如果你想要更多的成熟解决方案,最少的bug,最稳定的应用,那就先学python2 ,当然也不能耽误Python3的学习,毕竟将来总会有彻底更新换代结束的时候,早晚都要学的;
3. 如果你是在读大学的学生,暂时还用不到工作实战中,那我建议你先学习python3,那样等到你毕业或者真正用上的时候,python3已经成为了主流了。

福利时间:SPOTO Python付费课程 试听名额免费开放,立即体验:
免费试听
思博SPOTO在线咨询

相关资讯

7天无条件退款
24小时实验室开放
全程跟踪服务
无条件免费重读