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
crc8
V2EX  ›  Python

为什么 Python 会有那么多人喜欢用?

  •  
  •   crc8 · 8 天前 · 11961 次点击

    自知道它,历经数年,不止一次,

    想喜欢它,去使用它,去学习它。

    直到今天,发现对它,爱不起来。

    究其原因:出错的时候,错误一坨坨,毫无美感可言。

    弃!

    157 条回复    2024-11-19 09:46:09 +08:00
    1  2  
    wuxinling
        101
    wuxinling  
       7 天前
    说实话,游标卡尺问题在维护修改代码的时候确实使我脑壳疼,但是一通乱写跟写伪代码似的照样能跑,确实也挺爽。
    这东西写写小应用还行,上万代码行的应用开发维护成本未必比其它语言低吧?
    yangth
        102
    yangth  
       7 天前
    你花任你花,我用 java8
    chendl111
        103
    chendl111  
       7 天前
    @crc8 #23 来试试 cpp ?一堆报错,不显示真正原因
    hs444
        104
    hs444  
       7 天前
    虽然 python 有我不喜欢的地方,但是“出错的时候,错误一坨坨,毫无美感可言”这个非要说的话都能算是优点,不然像 sql 一样来一个
    syntax error at or near ")" 位置:696
    才真的让人头疼
    Wongz
        105
    Wongz  
       7 天前
    头一回见嫌弃报错详细的,定位不到问题怎么解决错误?再说了,想优雅提示出错和内容又不是做不到,项目没写罢了。你是终端用户,你应该去那个项目发 issue ,说作者对错误处理不够优雅,被围观别哭就好了
    uni
        106
    uni  
       7 天前
    @crc8 #27 你换个国内源一次就能成功了,何必折腾
    shuax
        107
    shuax  
       7 天前   ❤️ 1
    菜就多练
    bg7lgb
        108
    bg7lgb  
       7 天前   ❤️ 1
    大项目?多大才算大项目 ?
    lambdaq
        109
    lambdaq  
       7 天前   ❤️ 1
    @crc8 这是 py 出错吗?

    这是一个叫 pip 的包在告诉你网络出错了。

    网络问题罪魁祸首是你父母把你投胎到内网;

    pip 包这个报错的确丑,该骂。
    alexsz
        110
    alexsz  
       7 天前
    不知道 OP 想表达什么
    xuanbg
        111
    xuanbg  
       7 天前
    @nocmt 明确就算了吧,你从 V2 复制一段代码回去,能跑起来算我输。
    kpsanmao
        112
    kpsanmao  
       7 天前
    @yingxiangyu 那就直接显示错误原因,然后后面有个详情,点击查看详细的信息用于排查问题。
    fanjk
        113
    fanjk  
       7 天前
    吐槽的点和 Python 的缺点感觉不太搭边,硬找?
    ccfly
        114
    ccfly  
       7 天前
    人不行怪路不平
    BALKIN
        115
    BALKIN  
       7 天前
    在我用的几门语言里我觉得 Python 的报错信息是最友善的了。
    楼主觉得什么语言比较"优雅“呢?
    lyxxxh2
        116
    lyxxxh2  
       7 天前
    打印异常栈不是很正常的吗? 其他语言也是这样啊。
    也不是完全没用,出了 bug,你可以直接定位到代码去测试,也提供了更多信息找问题。

    pip 不应该显示异常栈,如果他这么做。
    难道不会又被人喷,吃太饱,一个文字提示就没了,简单就算了,复杂的等死。
    到底给客户看还是给程序员看的。
    Geon97
        117
    Geon97  
       7 天前
    菜就多练,怕报错就别玩
    gh110827
        118
    gh110827  
       7 天前
    @xvrzhao 他做 AI 的包多,nodejs 好多没有
    LXGMAX
        119
    LXGMAX  
       7 天前
    月经贴经验+1 告辞
    gh110827
        120
    gh110827  
       7 天前
    @crc8 不写代码最优雅,都不会报错
    NeverBelieveMe
        121
    NeverBelieveMe  
       7 天前
    今夕是何年?李子柒、竹鼠、川普,python 不好用,时光倒流 10 年了吗?
    sampeng
        122
    sampeng  
       7 天前
    python 纯粹因为生态环境大所以大家爱用。

    反正我是不爱用的。python 是唯一一个我今天写了。3-4 个月后就忘记代码是什么意思了。无论我如何组织代码都无法逃离这个魔咒。。我写个 shell 都能 1 年后还能回来看明白逻辑。。。
    seenthewind
        123
    seenthewind  
       7 天前
    我严谨的判断,你应该没写过 node.js 的大项目。

    那一个报错的日志你应该贴不进 v2 的回复框。
    laminux29
        124
    laminux29  
       7 天前
    因为差生多、穷、贪婪,整个世界都这样。

    差生多的意思是,没有几个人会严谨对待数据类型、异常处理,导致 js 、python 这类语言风靡。一旦工程大了,最终害人害己。

    穷的意思是,项目资金少,人力贵,导致催需求,不会给工程师预留多少时间来规范化地处理需求。

    贪婪的意思是,催需求,缩减工期,减少人力支出,能减少资本家的成本支出。
    pioflight
        125
    pioflight  
       7 天前
    垃圾引战帖能不能删啊,刷到这种内容我还以为在看小红书
    seagoat
        126
    seagoat  
       7 天前
    哈哈。。
    这段话,把 python 换成任何其他一种语言都差不多吧~
    009694
        127
    009694  
       7 天前 via iPhone
    op 真的是程序员吗?至少我觉得不适合干这一行。 抛错的堆栈信息都嫌看不懂的话,真的不适合干这一行,debug 能力太弱了
    Wh1t3zZ
        128
    Wh1t3zZ  
       7 天前
    去水深火热吧
    coolmenu
        129
    coolmenu  
       7 天前
    我喜欢 Fsharp ,没啥人用吧?不过干杂活,还是 Python 快。
    CassianVale
        130
    CassianVale  
       7 天前
    天下武功唯快不破
    panxi
        131
    panxi  
       7 天前
    @mayli #32 竟然还有人觉得堆栈信息打出来不友好, 我人麻了, 我觉得 go 可能更适合 up, 直接给 exit
    xuwen
        132
    xuwen  
       7 天前
    op 包括楼下大部分人都没学几天 python ,更别说阅读过高质量的 python 开源项目了
    Justin3go
        133
    Justin3go  
       7 天前
    Python:可运行的伪代码
    huanruiz
        134
    huanruiz  
       7 天前
    建议去问问 data scientist...
    qianckjuan
        135
    qianckjuan  
       7 天前
    我更想问问 op 写过什么语言,不是把堆栈错误信息打一坨出来的
    LanhuaMa
        136
    LanhuaMa  
       7 天前
    @crc8 #6 说 ssl 时间超时我就知道什么问题了。。作为中国程序员,基本素养都不过关,还怪 python ,你是高中没毕业吗?
    huage
        137
    huage  
       7 天前
    我喜欢手写操作系统、手写编译器、手写浏览器,一切都是手写,目前的进度是等硬件准备好了,才能写

    还是就是我喜欢自己手搓 CPU 、内存和硬盘,主板也是,目前的进度是开始研究提炼单晶硅了
    GeekGao
        138
    GeekGao  
       7 天前
    stupid kids: 为什么你们当年要用诺基亚而不是 iPhone
    GarliCC
        139
    GarliCC  
       7 天前
    遂弃之,择 Ruby ,渡终身。🙏
    MasterCai
        140
    MasterCai  
       7 天前
    pip install pretty_errors
    xgdgsc
        141
    xgdgsc  
       7 天前 via Android
    库多而已,爱不起来又必须用的话就在你喜欢的语言里调,比如在 Julia 用 pythoncall.jl ,在 cpp 里用 pybind11 ,一般是个语言都可以调
    itskingname
        142
    itskingname  
       7 天前
    Python 报的错误信息会比 Java 多? Java 的日志你翻页翻 3 屏幕都看不到真正错误的位置。
    ounxnpz
        143
    ounxnpz  
       7 天前
    假设有一个 Map [{"name": "zhang3"},{"name": "li4"}],我们找下 li4 在不在 Map 里。

    python:
    print("li4" in [i["name"] for i in l])

    java:
    System.out.println(l.stream().map(map -> map.get("name")).collect(Collectors.toList()).contains("li4"));

    golang:
    for _, i := range list {
    if i["name"] == "li4" {
    fmt.Println(true)
    return
    }
    }
    fmt.Println(false)

    js:
    console.log(list.some(item => item.name === 'li4'))

    php
    foreach($array as $item) {
    if ($item["name"] === $name)
    echo true;

    }
    echo false;
    }
    ounxnpz
        144
    ounxnpz  
       7 天前
    假设有一个 Map [{"name": "zhang3"},{"name": "li4"}],我们找下 li4 在不在 Map 里。

    python:
    print("li4" in [i["name"] for i in l])

    java:
    System.out.println(l.stream().map(map -> map.get("name")).collect(Collectors.toList()).contains("li4"));

    golang:
    for _, i := range list {
    if i["name"] == "li4" {
    fmt.Println(true)
    return
    }
    }
    fmt.Println(false)

    js:
    console.log(list.some(item => item.name === 'li4'))

    php
    foreach($array as $item) {
    if ($item["name"] === $name)
    echo true;
    return
    }
    echo false;
    }

    哪个最简单,更简洁,更接近自然语言。
    tunzao
        145
    tunzao  
       7 天前
    写自动化小脚本是真的快
    DIO
        146
    DIO  
       7 天前
    python 其实是调用入口,稍微核心一点的逻辑和实现都要去底层了。调库调参侠自然很喜欢。
    业务代码应该是没人主力用吧。。。

    工具只有适合不适合,没有喜好
    Leviathann
        147
    Leviathann  
       7 天前
    @ounxnpz
    幽默
    我直接 map.containsValue() 你又如何应对
    edisonwong
        148
    edisonwong  
       7 天前
    写脚本好使,大型项目不好使。我 js , swift ,golang ,python 基本都写过几万行公司生产环境代码, 最近换公司写了几千行 python 有感:

    1. django 不同版本兼容不好,网上教程有时候又过时用不了,当然你可以说看官网文档解决
    2. 还是 django ,报错跟实际问题天差地别,一个 from .xx import xxx 写得不对,django 居然给我报了个 api 重复注册的报错,我各个角落里试了 try catch 最后才发现 importError
    3. schama 约束+强弱类型混用,有点难受
    4. 环境问题,在一些老机器上,用 pymysql 之流的还需要系统层面安装底层库,要在一些 centos6 里,源都没了,装就更费劲了。当然你可以说用 docker 解决

    当然 java 也不怎么好,占资源,命名太长( doge )

    所以我能用 go+gin 写的就 go 写,go 写起来除了写可变结构体、复杂 json 结构的时候有点难受,别的还好。占资源好,编译随处执行,并发好写。
    edisonwong
        149
    edisonwong  
       7 天前
    @edisonwong 补上
    前端 node ,版本管理不太好。稍微换一下 node 版本、组件升级之类了,很多都跑不了
    相比 go mod 管的就挺好,当然有一些异类的库,比如 etcd ,需要手动 gomod 里 replace ,据说是因为 etcd 作者反 go mod ( doge )
    ounxnpz
        150
    ounxnpz  
       7 天前
    你针对的是这样的结构
    {
    "k": v
    }
    cold777SY
        151
    cold777SY  
       6 天前
    @sgld 我也看高天, 确实说的对, 开源了不代表就得当用户的孙子
    qq78660651
        152
    qq78660651  
       6 天前
    为什么那么多人用,因为库多,功能实现快;
    为什么库多,因为用的人多;
    Plumbiu
        153
    Plumbiu  
       6 天前
    @edisonwong 这种大概率没锁依赖版本,前面全是^开头的
    Sawyerhou
        154
    Sawyerhou  
       6 天前
    @Leviathann #147 比较代码量要在相同的算法逻辑下,

    总不能,题目:求 1-100 的和
    你:print(5050)
    yb2313
        155
    yb2313  
       6 天前
    不是,因地制宜啊,哪个方便用哪个啊,还能被语言给限制了吗
    rushpu
        156
    rushpu  
       6 天前
    语言之争,日经贴
    xu2goyuchen
        157
    xu2goyuchen  
       2 天前
    因为一个 Pandas ,python 就无敌了
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5308 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 09:07 · PVG 17:07 · LAX 01:07 · JFK 04:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.