V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Reign
V2EX  ›  程序员

我 TM 脑子进水了才安装 Python 3,大部分时间都在修改语法错误

  •  
  •   Reign · 2018-06-19 22:11:03 +08:00 · 5950 次点击
    这是一个创建于 2109 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Python 果然是世界上最好的两种语言,准备从 PHP 过渡到 Python,脑子一抽,安装了 Python3,本来深感 Python 语法简单,读一遍就能看懂什么意思,GitHub 上找了很多项目自己来测试研究代码,结果一运行,一堆报错,全是 Python2 过渡到 Python3 的语法错误,我又得一个一个逐个搜索该怎么修正错误,大部分时间都去修正这些毫无任何意义的错误了

    希望 Python4 把前面的语法全部推翻重来,然后 5 继续推翻 4,6 推翻 5,一步一步过河拆桥,最终形成一个老用户恶心,新用户排斥的小众语言,最终唯我 PHP 继续当全世界最好的语言

    拒绝 Python3,从我做起,功在当代,利在千秋

    70 条回复    2018-06-21 12:18:48 +08:00
    IceCola1
        1
    IceCola1  
       2018-06-19 22:37:25 +08:00   ❤️ 2
    这是你自己的问题吧,用 python3 来跑 python2,还怪 bug 多,本身就是两个版本。
    undertonememorie
        2
    undertonememorie  
       2018-06-19 22:47:51 +08:00   ❤️ 5
    1,python 就两个大版本,2 和 3 3 在 2 的基础上重构了,并且 2 只维护到 2020 年,所以你学 3 是没问题的
    2,如果你连基本的版本都区分不了就在这抱怨,我建议你固步自封,回归到你的 php 大法好,ps:python3 自带 2to3.py,自动将 2 转化成 3。
    Tyanboot
        3
    Tyanboot  
       2018-06-19 22:54:33 +08:00
    你怎么不说 PHP7 出来的时候一开始也一堆不兼容以前的 5.x 代码.
    Kilerd
        4
    Kilerd  
       2018-06-19 23:28:33 +08:00   ❤️ 7
    > Python 果然是世界上最好的两种语言

    Python 的做法没毛病,有毛病的是不断的兼容旧版本,导致历史包袱太重,做不出比较好的革新。 你怎么不说 Swift,怎么不说你家最好的 PHP。
    再看看历史包袱很重的 CPP 还有你家的 PHP。 现在都多少年了,变量还要用个$来标示。

    > 「准备从 PHP 过渡到 Python 」 「全是 Python2 过渡到 Python3 的语法错误,我又得一个一个逐个搜索该怎么修正错误」

    弱鸡就老老实实一步一步把教程看完。入门连怎么分辨项目的版本都不懂怎么行。 要不然就去看「怎么 PY2 改写 PY3 」的文章,几个宏,或者一个简单的脚本就能解决大部分语法层面的问题。逻辑问题还是要自己去看


    > 拒绝 Python3,从我做起,功在当代,利在千秋

    很高兴你没能成功学 Python
    pushy
        5
    pushy  
       2018-06-19 23:59:10 +08:00 via iPhone
    奇怪咦

    人家兼容 py2 的代码你非要用 py3 跑,这不是给自己找麻烦嘛,你装个 py2 不就好了。

    相应的 php5 兼容的程序,php7 也未必能跑。
    比如说 mcrypt 扩展移除、mysql_ 系函数移除等等。

    这有什么好喷的。
    lolizeppelin
        6
    lolizeppelin  
       2018-06-20 00:11:52 +08:00 via Android
    Python2 死不了的锅主要在红帽等主流服务器发行版上

    等红帽升级 rhel8 了 Python2 就有机会死了
    param
        7
    param  
       2018-06-20 00:13:41 +08:00 via Android
    功在当代,利在千秋。。。你喜欢有 50 年 py2 没人阻拦你
    param
        8
    param  
       2018-06-20 00:14:20 +08:00 via Android
    功在当代,利在千秋。。。你喜欢用 50 年 py2 没人阻拦你
    Rufeer
        9
    Rufeer  
       2018-06-20 00:21:36 +08:00 via iPhone
    哇老哥你这都不了解一下的么 随便找个教程都有说明 23 不兼容 你还用 3 跑 2 代码 你要是真要跑就装个 python2 啊 改也不需要自己改啊有转换工具的 python 90 年代出来的 现在的升级是为了抛掉些历史包袱 也就这两个版本要注意的
    matrix273
        10
    matrix273  
       2018-06-20 00:24:53 +08:00 via Android
    先学 Python3 再学 Python2,碰到中文想爆粗。
    thread2
        11
    thread2  
       2018-06-20 00:24:56 +08:00
    楼主你说 Python,可以,但最好不要暴露出你来自 PHP,这样连累了 PHP
    ipwx
        12
    ipwx  
       2018-06-20 00:39:11 +08:00 via iPhone   ❤️ 2
    我和楼上喷楼主的姿势不一样:楼主你都找的什么野鸡代码学习研究,现在 Python23 兼容的库和代码一抓一大把,Python3 新特性的代码也不少。你什么关键词才搜到了只在 2 下运行的老代码呀?
    YvesX
        13
    YvesX  
       2018-06-20 00:46:38 +08:00
    我觉得楼主在钓鱼
    Muninn
        14
    Muninn  
       2018-06-20 00:48:12 +08:00
    无力吐槽
    wnh3yang
        15
    wnh3yang  
       2018-06-20 05:39:19 +08:00 via Android
    你很牛 X
    PythonAnswer
        16
    PythonAnswer  
       2018-06-20 06:20:39 +08:00 via iPhone
    楼主,你做的不是修正语法错误,我们叫它 2to3
    kokutou
        17
    kokutou  
       2018-06-20 07:26:24 +08:00 via Android
    2to3 了解一下。。。
    mseasons
        18
    mseasons  
       2018-06-20 07:52:47 +08:00
    是脑子进水了
    wuhau
        19
    wuhau  
       2018-06-20 07:59:18 +08:00 via iPhone
    楼上阅读理解都不过关,这题要抓住题目主干"最终唯我 PHP 继续当全世界最好的语言"
    日常吹 PHP [1/1]
    日常 Python [1/1]
    zjsxwc
        20
    zjsxwc  
       2018-06-20 08:30:48 +08:00
    程序员写个把 python 2 转换为 python 3 的脚本很简单啊,人肉改才会累,也就那么几种区别。
    nooper
        21
    nooper  
       2018-06-20 08:35:56 +08:00
    ...浪费时间。
    anotherlf
        22
    anotherlf  
       2018-06-20 08:38:19 +08:00 via Android
    入门用 2,搞懂后用 3。学习就是这样,从研究原型开始,沿着进化路线直到最新版本。最新版往往教程少,特性多,看着看着就晕了。
    sinoairlc
        23
    sinoairlc  
       2018-06-20 08:38:53 +08:00
    真正的高手都用 Ruby 的吧,,,只是为了喷而喷,这。。。
    agagega
        24
    agagega  
       2018-06-20 08:40:58 +08:00
    Ruby 程序员想说改不了就直接 Python2,不然就自己写 Python3,都 2018 年了,Python2 都要被淘汰了
    lepig
        25
    lepig  
       2018-06-20 08:47:13 +08:00
    好吧 送楼主 5 枚金币
    k9982874
        26
    k9982874  
       2018-06-20 08:49:37 +08:00
    买了不甜的橘子,回去把卖橙子的骂了一顿
    lihongjie0209
        27
    lihongjie0209  
       2018-06-20 08:54:03 +08:00
    @lolizeppelin #6 想多了, 已经跑在 rh7 上的系统只要存在一天, python2 就还得继续用. rh 升级不代表大家所有的服务器都升级
    gimp
        28
    gimp  
       2018-06-20 08:55:54 +08:00   ❤️ 7
    楼主的观点也有在理的地方, 比如“我 TM 脑子进水了”....
    aaronzjw
        29
    aaronzjw  
       2018-06-20 09:00:45 +08:00
    python3 特性了解一下,我都不想用 py2
    jinyu121
        30
    jinyu121  
       2018-06-20 09:01:54 +08:00
    Python3 和 Python2 是两个语言(有转换脚本)
    PHP7 不完全兼容 PHP5 (好像去掉了 mysql 相关的啥东西,反正不能直接跑)
    Java 好像有一个东西叫做 Java3 ?反正是某个版本大改了一下然后成了一个新的语言

    SQL 分 MySQL 和 MSSQL
    Markdown 分标准 Markdown、Github Markdown

    形变,心不变。


    如果一直怀旧的话,世界还要不要发展了呢?
    Xxss
        31
    Xxss  
       2018-06-20 09:03:44 +08:00
    对啊,你的脑子是进水了
    dobelee
        32
    dobelee  
       2018-06-20 09:04:47 +08:00 via Android
    @Kilerd 变量用$没毛病。其他都同意。
    SimbaPeng
        33
    SimbaPeng  
       2018-06-20 09:05:30 +08:00 via Android   ❤️ 2
    我真服了你们,居然还试图和他讲道理???
    renyijiu
        34
    renyijiu  
       2018-06-20 09:06:04 +08:00
    说的对,PHP 是最好的,我用 Python3
    shangfabao
        35
    shangfabao  
       2018-06-20 09:06:43 +08:00
    mysql5.7 group by 语法表示颤抖
    lgpqdwjh
        36
    lgpqdwjh  
       2018-06-20 09:06:46 +08:00 via Android   ❤️ 1
    楼主的观点也有在理的地方,比如"我脑子进水了……"
    ackfin01
        37
    ackfin01  
       2018-06-20 09:13:48 +08:00
    @lgpqdwjh 你不是人造革,你是真的皮
    yanaraika
        38
    yanaraika  
       2018-06-20 09:20:05 +08:00 via Android
    又黑 PHP
    XIVN1987
        39
    XIVN1987  
       2018-06-20 09:31:03 +08:00
    其实可以 Python2、Python3 同时安装,,新的程序用 Python3 写,,那些老的 Python2 的程序就用 Python2 跑就行,,
    ytmsdy
        40
    ytmsdy  
       2018-06-20 09:31:20 +08:00
    python2 写多了,你就知道他的中文字符串处理有多么的痛苦了!每次都是 encode,decode 的猜。
    LoliconInside
        41
    LoliconInside  
       2018-06-20 09:45:10 +08:00 via Android
    自己水平不行怪语言系列 V2 水平真是越来越低了
    CSM
        42
    CSM  
       2018-06-20 09:45:49 +08:00 via Android
    Tim Peters: 要不这样吧,如果编程语言里有个地方你弄不明白,而正好又有个人用了这个功能,那就开枪把他打死,这比学习新特性要容易些,然后过不了多久,那些活下来的程序员就会开始用 0.9.6 版的 Python,而且他们只需要使用这个版本中易于理解的一小部分就好了。
    misaka19000
        43
    misaka19000  
       2018-06-20 09:47:31 +08:00 via Android
    求求你们不要再黑 PHP 程序员了,这明显是楼主水平不行,关 PHP 啥事😒😒
    20015jjw
        44
    20015jjw  
       2018-06-20 09:48:09 +08:00 via iPad   ❤️ 1
    的确脑子进水了
    dcsite
        45
    dcsite  
       2018-06-20 09:50:21 +08:00
    楼主是个 PHP 程序员。呵呵
    slince
        46
    slince  
       2018-06-20 09:53:13 +08:00
    @undertonememorie php7.1 以及以下百分百兼容 php5 语法; 7.2 移除了版本废除代码;
    whoami9894
        47
    whoami9894  
       2018-06-20 09:56:44 +08:00 via Android
    @sinoairlc
    怎么又把 rb 扯进来了。。。
    zpf124
        48
    zpf124  
       2018-06-20 09:58:25 +08:00
    楼主应该用 win7 搭配 py2 + flash。

    抵制新方案新技术 从你做起。
    nosay
        49
    nosay  
       2018-06-20 10:01:42 +08:00
    楼主,我就问一句,黑 php 有高潮吗?现在爽上天了吧
    SuT2i
        50
    SuT2i  
       2018-06-20 10:06:45 +08:00
    就不能卸载 3 装回 2 吗 看个 print 都能知道哪个是 2 哪个是 3
    fourstring
        51
    fourstring  
       2018-06-20 10:06:53 +08:00
    醒醒 现在 2018 年了……
    jyf
        52
    jyf  
       2018-06-20 10:09:14 +08:00
    1, 有工具可以自动转换的
    2, php 呵呵
    whypool
        53
    whypool  
       2018-06-20 10:10:40 +08:00
    看来脑子是真的进水了
    dorothyREN
        54
    dorothyREN  
       2018-06-20 10:11:31 +08:00
    @fourstring 现在不是 8102 年吗
    jatesun
        55
    jatesun  
       2018-06-20 10:16:06 +08:00
    什么?大清亡了???
    lzvezr
        56
    lzvezr  
       2018-06-20 10:16:31 +08:00 via iPhone
    其实挺佩服 py3 的,敢推到重来也是勇气
    tamlok
        57
    tamlok  
       2018-06-20 10:17:28 +08:00 via Android
    好好说话嘛
    fourstring
        58
    fourstring  
       2018-06-20 10:17:35 +08:00
    @dorothyREN #54 8102 年是什么梗?
    chu8129
        59
    chu8129  
       2018-06-20 10:17:44 +08:00
    评论好激动~~~,个人表示服务器还要好多年才能升 3,两年前见过某行业的服务器 2.4。。。个人建议,用 2 写的尽量用 2 跑,等有要求上 3,用工具转换一波再修;
    chu8129
        60
    chu8129  
       2018-06-20 10:19:09 +08:00
    另外,建议深思后再转 py,入门容易遇坑更容易;
    zpf124
        61
    zpf124  
       2018-06-20 11:10:41 +08:00
    虽然我不会 python,
    但其实我觉得 py 的选择是正确的,它和 js 正好是两个极端。

    所有 开发迅速,语法约束简单的语言 尤其是脚本语言 很容易有很多奇奇怪怪的不符合直觉但能用的写法。

    最终攒到一定程度
    要么像 py,把有歧义模糊的不合理的地方都修正了再发一版全新的版本。
    要么像 js,兼容到底,那些反直觉的不是 bug,而是 feature,为了兼容这些 feature 搞出来个 js 相等表格。
    Kilerd
        62
    Kilerd  
       2018-06-20 12:30:47 +08:00
    @dobelee 从编译原理的层面上讲, 用「$」来做变量起始符,可以降低写解释器的难度。或者理解成作者在这方面偷懒了。那么问题就在于历史包袱这个问题上了。
    rebeccaMyKid
        63
    rebeccaMyKid  
       2018-06-20 12:54:11 +08:00
    python3 的改进进步了好多好吧。python2 有些东西都能恶心死你了。
    sinoairlc
        64
    sinoairlc  
       2018-06-20 13:32:02 +08:00
    @whoami9894 因为我认识的大佬用 RB,从此惊为天人
    yylucifer
        65
    yylucifer  
       2018-06-20 14:39:25 +08:00
    日常吹 PHP [1/1]
    日常黑 Python [1/1]

    今日全部任务已完成!
    zealinux
        66
    zealinux  
       2018-06-20 16:18:57 +08:00
    @Reign Py2 和 Py3 其实是两种语言,虽然名字很像。
    ben1024
        67
    ben1024  
       2018-06-20 17:28:06 +08:00
    PHP 和 Python 同是脚本语言设计思想有很多不一样,不能用理解 PHP 的想法去开发 Python
    wuwenzhx
        68
    wuwenzhx  
       2018-06-20 18:52:11 +08:00
    一个环境可以装多个 python 版本,指定 python 解释器就好了,暴露了楼主 python 水平......
    Zzdex
        69
    Zzdex  
       2018-06-20 20:53:59 +08:00
    这就是你直接喷的理由?
    xschaoya
        70
    xschaoya  
       2018-06-21 12:18:48 +08:00 via Android
    pyenv 了解一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2755 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 12:14 · PVG 20:14 · LAX 05:14 · JFK 08:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.