V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
mokeyjay
V2EX  ›  Python

Python 到底学 2 还是学 3 好?很多第三方库不兼容 3?

  •  
  •   mokeyjay ·
    mokeyjay · 2016-11-20 13:59:54 +08:00 · 6342 次点击
    这是一个创建于 2685 天前的主题,其中的信息可能已经有所发展或是发生改变。

    听慕课网某讲师说很多第三方库不兼容 3 ,这就很尴尬了,我本来想着学新不学旧

    作为初学者,到底学 2 还是学 3 好?是想认真学的那种。谢谢

    61 条回复    2016-11-22 16:30:03 +08:00
    ericls
        1
    ericls  
       2016-11-20 14:02:37 +08:00
    3

    讲师水平不一定你比高。。。。
    triostones
        2
    triostones  
       2016-11-20 14:03:42 +08:00
    3
    Lonely
        3
    Lonely  
       2016-11-20 14:07:06 +08:00 via iPhone   ❤️ 1
    注意下视频发布的时间
    mikicomo
        4
    mikicomo  
       2016-11-20 14:07:37 +08:00   ❤️ 4
    starvedcat
        5
    starvedcat  
       2016-11-20 14:10:32 +08:00
    等真正遇到什么不得不用 2 的情形,再回去学 2 不迟(其实肯定不会遇到)
    lwjcjmx123
        6
    lwjcjmx123  
       2016-11-20 14:19:31 +08:00 via Android
    十年前的教程了吧,现在第三方库不支持 3 的已经不多了吧
    aristotll
        7
    aristotll  
       2016-11-20 14:23:13 +08:00
    学新不学旧

    为啥会出现不兼容 就是为了弥补 Python 原来的缺陷
    wellsc
        8
    wellsc  
       2016-11-20 14:26:19 +08:00
    区别不大
    Antidictator
        9
    Antidictator  
       2016-11-20 14:31:20 +08:00
    以学习为目的的就是 3
    Yinz
        10
    Yinz  
       2016-11-20 14:35:33 +08:00
    学 3 ,现在已经有很多特性只有 3 才有而 2 没有的了,如 async/await
    zhuangzhuang1988
        11
    zhuangzhuang1988  
       2016-11-20 14:36:45 +08:00
    你是学语言呢 还是学习库呢??
    smallaccount
        12
    smallaccount  
       2016-11-20 14:40:30 +08:00 via iPhone
    学 3 吧,其实差别不是很大。现在 3 的教程快比 2 多了。

    利益相关:一直在用 2
    mgna17
        13
    mgna17  
       2016-11-20 14:51:27 +08:00
    先学 3 ,在兼容 2 , 2 个都会不是什么难事,学好了 3 之后大概再花个 1~2 小时就可以兼容 2 。
    qweweretrt515
        14
    qweweretrt515  
       2016-11-20 14:52:14 +08:00
    学 3 讲师的水平通常落后, 另外注意视频发布时间,没准 4 年前发布的
    现在 3 不兼容的库 ,基本都是一些没有人用的垃圾库
    mokeyjay
        15
    mokeyjay  
    OP
       2016-11-20 15:03:51 +08:00
    @mikicomo 很强,谢谢

    谢谢楼上有所耐心回答的 V 友,已决定学 3
    fy
        16
    fy  
       2016-11-20 15:07:40 +08:00
    等明年这时候可能就听说很多库不支持 2 了。
    zby0826
        17
    zby0826  
       2016-11-20 15:42:34 +08:00
    没什么库不支持 3 了,只是有一些可能支持还不是很完善,存在一些 bug ,但一点不影响。
    ainimuyan
        18
    ainimuyan  
       2016-11-20 15:45:09 +08:00
    果断 3
    iFlicker
        19
    iFlicker  
       2016-11-20 15:57:03 +08:00 via Android
    用 2 的建议 3
    panda1001
        20
    panda1001  
       2016-11-20 16:16:37 +08:00 via Android
    入哪一个都没问题,完全可以当两门语言来学
    dsg001
        21
    dsg001  
       2016-11-20 16:41:33 +08:00
    初学者必须 3 ,手头有项目的能 2 就 2
    hareandlion
        22
    hareandlion  
       2016-11-20 16:54:10 +08:00
    学 3 ,官方已经钦定支持 2 到 2020 年了 http://legacy.python.org/dev/peps/pep-0373/
    imgalaxy
        23
    imgalaxy  
       2016-11-20 16:58:09 +08:00
    我来改一下标题
    Javascript 到底学 ES5 还是学 ES6 好?很多第三方库不兼容 ES6 ?
    tyfulcrum
        24
    tyfulcrum  
       2016-11-20 17:09:08 +08:00 via iPad   ❤️ 1
    学 Ruby 吧,从此不再纠结 2 还是 3 (
    shakala
        25
    shakala  
       2016-11-20 17:14:48 +08:00
    目前大部分你能想到的的库都支持 3
    20015jjw
        26
    20015jjw  
       2016-11-20 18:34:19 +08:00
    安利一下 berkekley 的 cs61a
    102400
        27
    102400  
       2016-11-20 19:24:41 +08:00
    ryanzyy
        28
    ryanzyy  
       2016-11-20 19:55:02 +08:00
    真心不重要 想认认真真学 python 不看 python 教程 看 Ruby 的都可以
    学精了之后转很容易
    tscat
        29
    tscat  
       2016-11-20 20:12:57 +08:00
    看你要干嘛。。学 2 也没差。坑都被填完了。反正我用着玩的,一直都是 2
    dd99iii
        30
    dd99iii  
       2016-11-20 20:45:10 +08:00
    3333333333
    snnn
        31
    snnn  
       2016-11-20 20:47:53 +08:00 via Android
    工作中还是 2 为主。
    别忘了 Perl6 的笑话
    yeah2569
        32
    yeah2569  
       2016-11-20 20:50:30 +08:00
    都一样啊,主要还是看你想做啥
    chousb
        33
    chousb  
       2016-11-20 20:52:36 +08:00
    别逗了,学 3
    zhusimaji
        34
    zhusimaji  
       2016-11-20 21:06:50 +08:00 via Android
    反正从上手一直都是 2 ,楼主也不要纠结
    ipconfiger
        35
    ipconfiger  
       2016-11-20 21:14:23 +08:00   ❤️ 1
    其实别把学语言当成一场圣战, 其实入门也不过一周时间, 学深入了日常用一年基本也够了, 但是学了语言就够么, 好多初学者最大的困惑反而是在学完之后, 那个时候学完某某语言 prime 仿佛手握雷神之锤,举目四望到处找钉子, 但是往往很多人都在这个时候发现, 妈蛋的学了半天语言确还是啥也不会做, 然后发帖求助问能做啥, 然后被告知还要再学习 B, C, D, E.......等等 等等.......
    mokeyjay
        36
    mokeyjay  
    OP
       2016-11-20 21:31:38 +08:00 via Android
    @snnn perl6 怎么了?愿闻其详
    wtbhk
        37
    wtbhk  
       2016-11-20 21:32:42 +08:00
    运维学 2
    ericgui
        38
    ericgui  
       2016-11-20 22:29:48 +08:00
    区别不大
    orvice
        39
    orvice  
       2016-11-20 22:47:12 +08:00
    没有历史原因就学 3
    2 有些写法太 ugly 啦😋
    mianju
        40
    mianju  
       2016-11-20 22:48:41 +08:00
    插楼问一下,怎么快速从 2 学会 3 ?
    mansur
        41
    mansur  
       2016-11-20 23:07:56 +08:00   ❤️ 3
    自己走上邪路的一般这么鼓动别人学 3 :基本上库都支持 3 了,好多新库只有 3
    工作上一旦用了 3 :到 github 一查,经常是只支持 2 的库,或者就是没写只支持 2 ,但是在 3 下一运行,运行不起来。实际上只有一些比较知名的公共库支持 3 了, github 上大批的个人写的库都只支持 2 ,等你发现的时候项目已经用 3 了,这些库要么自己转,要么自己重新写,领导给的工期就这么多,你只能含泪加班了。这时候你要诉苦,那些当初忽悠你的人可能还会挖苦你效率这么差或眼光差,不给转 3 的库就不应该用,到时候你就有吃了狗屎的感觉,那么多库不支持,当初我转 python 干嘛呀
    est
        42
    est  
       2016-11-20 23:39:57 +08:00
    自己玩,挖新坑,用 3

    老司机都用 2 。。
    nullizer
        43
    nullizer  
       2016-11-20 23:43:12 +08:00   ❤️ 2
    3 注定淘汰的,以后是 Python 2 和 Python 4 的天下
    fy
        44
    fy  
       2016-11-21 00:45:34 +08:00   ❤️ 1
    @mansur Excuse me? 这是几年前得到的感受了?现在是 2016 年,醒醒。

    @nullizer python4 说不折腾,那是由 3 继承的; 2 还是该不兼容不兼容。
    kkzxak47
        45
    kkzxak47  
       2016-11-21 01:25:40 +08:00 via Android   ❤️ 1
    既然是学,肯定学 3 好。
    其实学 Python 如果只是学完基本语法,完成需求就满足,不更加深入, 2 和 3 有什么区别?
    我觉得更多精力可以放在看 pep ,还有核心开发者的邮件讨论等等上面,看看这门语言的 API 是怎样进化的,现状是如何形成的,为什么要做一个不兼容 Python2 的版本, 3 到底强在哪里,为什么 2 生命力那么顽强?
    这样就超越了一般 2 和 3 的泛泛讨论,会有一门语言的宏观认识,知道一门编程语言牵扯到的设计、社区、历史、同类语言等等方方面面,到时候 Python 的版本号叫什么,有什么关系?
    lrh3321
        46
    lrh3321  
       2016-11-21 08:52:56 +08:00
    3 很多老库没人维护了。所以不支持 3 ,但 3 下面一般有替代用的库
    setonfocus
        47
    setonfocus  
       2016-11-21 08:55:24 +08:00
    web 选 3 ,软件 选 2
    liuwenju
        48
    liuwenju  
       2016-11-21 09:39:41 +08:00
    linux 发行版本默认什么就选什么
    crazykuma
        49
    crazykuma  
       2016-11-21 10:11:31 +08:00
    月经贴。。
    自学学 3 ,因为毕竟是新版本有很多新特性
    但是 2 也建议学一下,以防万一
    tinyproxy
        50
    tinyproxy  
       2016-11-21 10:40:54 +08:00
    之前写了两年 2 ,最近新开的坑转移到 3 去了,主要是 2 的 str 太烦人了。如果你不知道,随便挑一个先学就好了,只要不是整个项目都要从 2 迁移到 3 这种情况, 2->3 没有任何问题。
    itxp
        51
    itxp  
       2016-11-21 11:26:47 +08:00
    讲师。。。
    我一同学现在是北大青鸟讲师,
    项目都没做几个,整天跟我说自己啥也不会,给他外包的活都不敢做。
    所以后来跑去当讲师了。
    salmon5
        52
    salmon5  
       2016-11-21 11:33:22 +08:00
    看是什么工种,职业 python 开发,就 3 ,
    如果是职业运维就 2 ,毕竟现在服务器 centos6,7 都是 2.6,2.7 , 2 还能再战 3-4 年。
    wyntergreg
        53
    wyntergreg  
       2016-11-21 12:24:07 +08:00
    很靠谱的说, 3 的库数量最近已经超 2 了
    lilydjwg
        54
    lilydjwg  
       2016-11-21 12:42:35 +08:00
    学 3 ,换到 2 ,是忍痛割爱;
    学 2 ,换到 3 ,是各种报错。
    wensonsmith
        55
    wensonsmith  
       2016-11-21 13:18:12 +08:00
    真尼玛受不了了,月经贴就罢了,楼主你不会去搜搜?

    自学 python 应该学 2 还是 3 ?: https://www.v2ex.com/t/289061

    新手学习 python ,是学 python2 好,还是 python3 呢?: https://www.v2ex.com/t/101035

    Python2.7 还是 3.5 。纠结: https://www.v2ex.com/t/236665

    一个老生常谈的问题,学 python2 还是 python3 : https://www.v2ex.com/t/204529

    学个 python 给你矫情的,还学 2 学 3 ,整天发些月经贴,你能学啥??
    suueyoung
        56
    suueyoung  
       2016-11-21 14:49:47 +08:00
    不兼容的话就靠同学你写出兼容的 code 了. (拍肩.
    koche
        57
    koche  
       2016-11-21 16:01:45 +08:00
    3 , 大部分都兼容了。
    asen477
        58
    asen477  
       2016-11-21 16:31:38 +08:00
    语言来讲 2 , 3 基础都差不多,只是运行环境及库,新的特性,有所区别。
    如果新手学习,当然建议从 3 学起
    milugt
        59
    milugt  
       2016-11-21 16:36:15 +08:00 via iPhone
    3
    视频键程还是别看了 用处不大还慢
    geektony
        60
    geektony  
       2016-11-21 20:46:56 +08:00
    我想问问,如果是机器学习方向呢?
    kushao1267
        61
    kushao1267  
       2016-11-22 16:30:03 +08:00
    @Yinz async ,awit,好像在 2 里面表示为 yield from...什么的, asyncio 的文档里有些
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1335 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 23:32 · PVG 07:32 · LAX 16:32 · JFK 19:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.