美文网首页
python2和python3的版本选择问题

python2和python3的版本选择问题

作者: lmingzhi | 来源:发表于2017-05-17 21:38 被阅读0次

    我先抛出我的观点,不要让你的思维迁就于你的工具,而是让你的工具迁就于你的思维!

    python2和python3,从他们实现的精髓而言,其实真的没有太多本质的区别,我目前所感知的python3与python2的最大差别在于:

    1. python3的range相当于python2的xrange。
    2. python3对于iterable(可迭代)对象全部采用惰性取数的原则,也就是在用的时候才去取数,比如range (10)是一个range可迭代对象,而不是一个列表。一般如果要将可迭代对象迭代出,那么再对象外套一个list()就可以实现了(这种情况再使用map函数尤为明显,你必须这样套用list(map(...)))循环出map的内容)。
    3. 对于生成器取消其next方法,next直接生格为内置函数的级别。也就是对于生成器a,要循环出第1个元素,python2可以用a.next(), 但是这在python3会报错,需改用next(a)。
    4. python3采用unicode编码,解决了python2上很多的乱码问题。
    5. python2将于2020年停止更新。
    6. python3的print()必须加后面的括号。

    上面讲的好像想表达python3优于python2, 新手入门应该优先选择python3。

    但是这不是我的最终意愿,我其实更想表达的是,这只是他们的一些细微上面的差别,对于新手入门来说,他们其实只是会造成些微的困扰而已!!!

    你究竟应该选择python2还是python3,应该取决你所选定的那本教材使用的是哪一个版本的python!

    比如,learn python the hard way和利用python进行数据分析, 他们用的python版本是2,所以如果你是初学者的话,你应该优先选择python2,这样子可以最大程度的避免你刚入门时候的,虽然你敲了一模一样的代码,但还是报错的困扰和挫折感。至于那些对这些困扰不在乎,可以自己搜索答案解决问题的同学来说,他们即使是用python3来运行书中的代码也是ok的,因为毕竟2个版本的差别并没有那么大!

    最后,讲一下我的python版本使用,我入门是用的python 2.7, 入门书是learn python the hard way以及廖雪峰的python2.7教程,上的MITx 6.00.1x还有后来学习的利用python进行数据分析都是用的是python2.7,但是我现在则主要用python3,主要是这样子遇到乱码的几率会比较小,而且我用的那些包,如numpy, pandas, requests, bs4, scrapy等等都有python3的版本了。此外,当你对python熟悉到一定程度其实这个版本转换的成本是很小的!

    愿你看了本文后,不会再对python版本的选择问题产生纠结!

    祝生活愉快!

    凡星
    2017.05.17

    相关文章

      网友评论

          本文标题:python2和python3的版本选择问题

          本文链接:https://www.haomeiwen.com/subject/lfrjxxtx.html