V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
https://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
weiqk
V2EX  ›  Python

这几天被 Python 搞得快崩溃了

  •  
  •   weiqk · 27 天前 · 16398 次点击
    主要是语法问题,缩进极不习惯,美观和可读性并没觉得提高,结尾也没有分号
    结束似乎也没标记,不如类 c 语言方便


    立贴起誓,新项目我再用 python 我是猪
    180 条回复    2024-09-25 09:33:04 +08:00
    1  2  
    gjw8u8
        1
    gjw8u8  
       27 天前 via Android   ❤️ 6
    话说的太满了不是好事
    beixiao
        2
    beixiao  
       27 天前 via iPhone   ❤️ 13
    好了 op 是🐷
    andforce
        3
    andforce  
       27 天前
    PyCharm 搞起啊
    cmdOptionKana
        4
    cmdOptionKana  
       27 天前   ❤️ 31
    有现代化 IDE 、编译器的情况下,还说这些枝节细末的问题,就很无聊了。
    hefish
        5
    hefish  
       27 天前
    这些就是不习惯导致的嘛,习惯了不就好了嘛。做人不能太讲究。将就一下,就过去了。
    yb2313
        6
    yb2313  
       27 天前   ❤️ 12
    给你写几个嵌套 def *arg **kwargs 就老实了
    somebody1
        7
    somebody1  
       27 天前   ❤️ 4
    第一次见到有人吐槽 python 不美观,真是乐了
    raycool
        8
    raycool  
       27 天前
    不好意思,我只用 python
    moudy
        9
    moudy  
       27 天前 via iPhone   ❤️ 1
    美国人觉得汉语难也是同理
    ytmsdy
        10
    ytmsdy  
       27 天前   ❤️ 9
    你写个 7 ,8 年程序以后,再转 python 以后,就会真切的感觉到什么叫 life is short, we use python.
    用缩进代表段落,只要你在其他开发语音里写代码的习惯好,完全不会觉得这会又什么问题,反而会觉得,终于不用写{}了
    结尾没有分号,如果你其他开发语言习惯好,有没有分号无所谓。正常写完一行逻辑也是需要换行的。

    搞一个 vs code 或者 pycharm 吧,用上了这些以后,这些都不是问题。
    我写过 java ,c#,c++,Golang ,这么多语音下来,真的觉得,python 是最简洁,最易懂的了。
    bboring
        11
    bboring  
       27 天前
    真香系列 等待后续
    yosoroAida
        12
    yosoroAida  
       27 天前
    用 pycharm 不会有这个问题
    miaotaizi
        13
    miaotaizi  
       27 天前
    @ytmsdy 所以你写的 py 的时候 有没有 def *arg **kwargs ?
    Pydes
        14
    Pydes  
       27 天前
    有没可能你说的这些就是 python 的优点
    chalet
        15
    chalet  
       27 天前
    习惯了就好,python 蛮简洁的
    ACMATIC
        16
    ACMATIC  
       27 天前
    是钓鱼吗,还是说 OP 是固步自封不愿意跟随时代的进步而用一些能提高效率的生产力工具
    thoo61871
        17
    thoo61871  
       27 天前
    换 golang 吧
    用过几年 py 换了 go 再也不想回去了
    treblex
        18
    treblex  
       27 天前
    本地还是很舒服的,上国内的服务器就难受了,除了 pip requments.txt 勉强能用,rye ,uv 什么的都连不上网,ping github.com 又 ping 的通
    alexsz
        19
    alexsz  
       27 天前
    OP 可以试试 Pycharm 啊
    xgdgsc
        20
    xgdgsc  
       27 天前 via Android   ❤️ 1
    转 Julia
    ytmsdy
        21
    ytmsdy  
       27 天前   ❤️ 1
    @treblex 哈哈,用 python 确实有这个问题,而且是非常蛋疼的问题,每次 docker rebuild 的时候都战战兢兢的。
    encro
        22
    encro  
       27 天前   ❤️ 2
    @treblex

    https://help.mirrors.cernet.edu.cn/


    有 mirror ,什么 uv ,pdm ,pip 都可以用。
    yb2313
        23
    yb2313  
       27 天前   ❤️ 1
    @treblex 用 poetry 在 pyproject.toml 里面设置一下多个国内镜像源就行了
    ytmsdy
        24
    ytmsdy  
       27 天前
    @miaotaizi 用,但是很少用。除非出现参数数量不确定场景。
    如果参数实在是多,我一般都是丢给 json 到参数里面去。但是千万别丢长度不确定的数组,别问我是怎么知道的。
    yb2313
        25
    yb2313  
       27 天前
    @encro 没有 cargo.io,气抖冷 rust 什么时候才能站起来
    nno
        26
    nno  
       27 天前
    @miaotaizi 其实用 kwargs 没啥问题,关键是要在注释里把用到的字段说清楚
    yb2313
        27
    yb2313  
       27 天前
    @encro 我的错, 记错了, 不叫 cargo, 叫 crates😣
    Goooooos
        28
    Goooooos  
       27 天前
    习惯就好,多写就适应了。我刚用的时候也很不习惯,尤其格式被人搞乱后。
    那些单纯嘲讽 OP 的,只会败光 python 的人缘
    ytmsdy
        29
    ytmsdy  
       27 天前
    @yb2313 Rust 太鸡婆了,比 Golang 还要鸡婆。
    l1xnan
        30
    l1xnan  
       27 天前   ❤️ 1
    @treblex 不是都能配置代理???
    fyxtc
        31
    fyxtc  
       27 天前   ❤️ 1
    点开之前我还以为是 py 版本问题和各种库之类的环境兼容问题,或者是某个技术问题 py 不好解决

    语法问题也值得发一个贴吗。。。。。。
    yb2313
        32
    yb2313  
       27 天前
    @ytmsdy #28 go 那种残疾人语法, 就是个出活语言, 怎么快怎么来, 谷歌根本没有用心设计. 结构体方法不指定结构体, 找个方法一长串引用, 急死人. 而且现在谷歌自己都推荐 rust 在安卓上使用了, rust 啰嗦也是为了让新手也能踏入 0gc 的世界, 不然用 cpp 新手写的代码别人愿意看吗
    woodfizky
        33
    woodfizky  
       27 天前
    用点好点的 IDE 嘛,PyCharm 社区版不要钱可以先用用,其实 IDE 很强大的。

    比方说用 PyCharm ,你开发能做到整个 py 文件基本上没有 IDE 报的强弱警告,且自己会格式化/善用 IDE 自动格式化,基本上不需要考虑缩进问题。

    不过阅读的时候确实没有花括号括住,读起来稍微逊色一点,但是也可以 IDE 把一段段缩小起来读,或者装 plugin 。
    yb2313
        34
    yb2313  
       27 天前
    @l1xnan 好像是, 但是我就用过 poetry, 所以就不说其他的了
    elevioux
        35
    elevioux  
       27 天前   ❤️ 1
    自己写的话其实没多大感觉,特别是对使用的库熟悉的话,写的很快。但 python 作为强类型语言,pycharm 的代码提示做的反而没有 phpstorm 好就很奇怪,影响开发体验。在看别人的代码,用不熟悉的库,就觉得 python 的代码很难看。语法糖+kwarg+缩进,感觉超乱。
    cominghome
        36
    cominghome  
       27 天前   ❤️ 1
    你用记事本写的?
    yjfkk
        37
    yjfkk  
       27 天前   ❤️ 4
    看标题以为会吐槽:静态变量,包管理,若类型。
    进来一看是吐槽:没有分号
    项目选型前对语言一点了解都没有吗?
    Tink
        38
    Tink  
       27 天前
    用什么写的
    thorneLiu
        39
    thorneLiu  
       27 天前 via Android   ❤️ 1
    python 不知道数据类型 看代码不知道背景也不知道代码意图是什么
    lyxxxh2
        40
    lyxxxh2  
       27 天前
    正在写 python 的 看着无语...
    UN2758
        41
    UN2758  
       27 天前   ❤️ 1
    写 c 用 ide 的话,应该也有缩进啊,换成 python 强制性就受不了? 感觉很奇怪
    jonsmith
        42
    jonsmith  
       27 天前 via Android
    语法规则不是 ide 自动补全吗?有什么麻烦的
    qq78660651
        43
    qq78660651  
       27 天前   ❤️ 1
    @thorneLiu 数据类型是可以标准的,另外我 ts 写习惯了,python 里面传数据也习惯用 @dataclass 了来辅助定义参数内容,这些细节主要看自己的习惯,总归是能想到办法解决的,但仅限于个人使用,团队开发还是要协商。
    cbythe434
        44
    cbythe434  
       27 天前
    php 比 python 好不知道多少,python 集成了很多 perl 的元素,非常恶心
    无奈人家榜上了深度学习,可惜了
    deplives
        45
    deplives  
       27 天前
    换一个 IDE 吧,pycharm 社区版免费的,别用记事本写了
    Blanke
        46
    Blanke  
       27 天前
    人生苦短,我用 Python
    ZZ74
        47
    ZZ74  
       27 天前
    接触过 C CPP java C# python 。感觉 python 最乱 难懂。缩进是真麻烦
    araraloren
        48
    araraloren  
       27 天前
    You can write rust in pyo3, then call it from python.
    RRRoger
        49
    RRRoger  
       27 天前
    先入为主了 python 很美
    wangee
        50
    wangee  
       27 天前   ❤️ 1
    @treblex rye/uv 都可以配置源的
    araraloren
        51
    araraloren  
       27 天前
    @UN2758 You can write c/c++ however you want, it has automatic formatting.
    weiqk
        52
    weiqk  
    OP
       27 天前
    是不是有人怀疑我不用 PyCharm,还用了 GitHub copilot,话说 copilot 是真好用
    Reficul
        53
    Reficul  
       27 天前   ❤️ 1
    chenqh
        54
    chenqh  
       27 天前
    @cbythe434 不是,php 这个 list,map 不分的,也能跟 python 比上了,虽然说 php 在 web 上比 python 火,但是就语法而言,python
    比 php 规矩多了
    luzihang
        55
    luzihang  
       27 天前
    小学学过 qbasic ,py 就是类 basic 。先入为主
    xz410236056
        56
    xz410236056  
       27 天前
    “结尾也没有分号”
    现代语言有几个有分号的?
    alexsz
        57
    alexsz  
       27 天前
    @Reficul #53 竟然还有这种项目👍 程序猿太难了
    itskingname
        58
    itskingname  
       27 天前
    为了黑而黑,还黑不到点子上,不是脑子太差,就是给的钱太少了。
    june4
        59
    june4  
       27 天前   ❤️ 1
    我写 python 的时候并不觉得缩进是个大问题。
    不过写多了别的语言,还是觉得缩进没 {} 好。
    至到分号真的没什么意义,连 js 这种可写分号的社区也基本抛弃了分号。满屏分号甚至觉得影响可读性,有种版面不干净的感觉。
    weiqk
        60
    weiqk  
    OP
       27 天前
    最扯的是缩进,代码块没有开始结束标记,好难受,就语法而言扯淡程度无限逼近括号大王 lisp

    @yjfkk
    >>> 项目选型前对语言一点了解都没有吗?
    二手项目

    @ZZ74
    >>>感觉 python 最乱 难懂。缩进是真麻烦
    其他语言缩进是为了美观和个人素质,py 是语法,很扯淡


    @deplives
    >>> 换一个 IDE 吧,pycharm 社区版免费的,别用记事本写了
    用 PyCharm+copilot,但我感觉用类记事本的 editplus 或 notepad++可能会更爽一些
    @Goooooos
    >>>那些单纯嘲讽 OP 的,只会败光 python 的人缘
    还好,尚未感觉到被冒犯
    cs8425
        61
    cs8425  
       27 天前   ❤️ 1
    @ytmsdy #10
    写了 10 几年的程序,再转 python 以后,就会真切的感觉到什么叫 life is short, we should not use python.
    用缩进代表段落,只要你在其他开发语音里写代码的习惯好,完全不会觉得写{}会有什么问题
    结尾没有分号,如果你其他开发语言习惯好,有没有分号无所谓。正常写完一行逻辑也是需要换行的。

    我写过 java ,c#,c++,Golang ,javascript ,python ,这么多语言下来,真的觉得,python 是最难网上帖子 ctrl c ,编辑器 ctrl v 的了。
    levelworm
        62
    levelworm  
       27 天前
    你这是还没习惯。习惯了就会觉得,Python 真是一门百搭的语言,再加上 ChatGPT 等 AI 更加是威力无穷。

    对我来说,(C/有限的 C++) + (Python) + (Bash) 基本上写自己的项目是够了。
    iorilu
        63
    iorilu  
       27 天前
    python 复制黏贴 是差点

    可能要调整格式

    如果只是自己写代码没啥问题
    aababc
        64
    aababc  
       27 天前
    @yb2313 #6 这个东西简直就是魔鬼,我们有些同事特别喜欢用这个
    Reficul
        65
    Reficul  
       27 天前
    @alexsz #57

    空格还是括号是圣战啊,堪比甜咸豆花
    vx7298
        66
    vx7298  
       27 天前
    😂,你这么说,钱到位了咋弄?
    cat9life
        67
    cat9life  
       27 天前
    等待 op 几个月到几年后回来说“我是猪,我是猪”。 而且这是能预见到的大概率事件😁
    yuedanwork
        68
    yuedanwork  
       27 天前
    说 py 的,你但凡加上一句性能不行 我都不说什么

    但你现在说的这些都是啥 黑人问号.webp
    lcvs
        69
    lcvs  
       27 天前
    强烈建议你用 Pycharm 写
    LieEar
        70
    LieEar  
       27 天前
    之前写 java ,第一次写 py 也是这个想法,现在越来越喜欢 python 了(甚至觉得 java 丑陋不堪:) )
    AAAAAAAAAAAAAAAA
        71
    AAAAAAAAAAAAAAAA  
       27 天前
    下个项目写爬虫和数据分析,你用 C 写吧。 抛开适用场景不谈都是耍流氓。
    Marszm
        72
    Marszm  
       27 天前
    @aababc 你同事都能肉眼识别 tab 和空格对吧。。哈哈哈
    yb2313
        73
    yb2313  
       27 天前
    @LieEar 因为 java 真的肥头大耳, 语法上 C#, ts 都是比较好的, 都是甜的, 不会出现给你把语法阉割了或者非常啰嗦这种情况
    moyt
        74
    moyt  
       27 天前
    @yb2313 对,这个才是最逆天的的,尤其用开源库,遇到这种代码头都大了
    yb2313
        75
    yb2313  
       27 天前
    @aababc 我猜他们要么没有文档, 要么文档和代码对不上
    746970179
        76
    746970179  
       27 天前
    py 有时候, 就是伪代码
    这种和逻辑完全一致的代码, 表达能力无出其右
    bugmaker1024
        77
    bugmaker1024  
       27 天前
    你需要 Pycham 。我第一次写 GO 的时候也是不适应,多写写就习惯了
    grzhan
        78
    grzhan  
       27 天前
    没有大括号和分号好像当年还是 python 的一大优势,因为没有这种为了语法解析加入的“噪音”,所以 python 看起来更像是一门自然语言,可读性更好,更适合初学者。

    反正我记得当年刚念本科的时候,一个大佬给我安利 python 的时候就这么吹的( x
    nyakoy
        79
    nyakoy  
       27 天前
    🪝太直了
    mwuxlcanrh
        80
    mwuxlcanrh  
       27 天前
    python 的对象类型不确定是我最不喜欢的一点。绝大多数不需要这种特性,反而更需要确定的类型带来的可读性。
    izzy27
        81
    izzy27  
       27 天前
    你来写 Swift 和 objc 你就知道 python 有多幸福了
    yodhcn
        82
    yodhcn  
       27 天前
    python 的包管理工具就是一坨,最要命的是 Github 上的有些项目,源码是上传了,但是没有 requments.txt ,包的版本只能自己猜,踩遍各种坑,最后项目也不一定能跑的起来。
    moluyouwo
        83
    moluyouwo  
       27 天前
    雀食,python 不适合做第二语言
    bazbaozhilv
        84
    bazbaozhilv  
       27 天前
    所以这个贴有什么营养价值嘛,浪费时间
    liangch
        85
    liangch  
       27 天前
    还 15 年的 ID 。
    Maiiiiii
        86
    Maiiiiii  
       27 天前
    人生苦短
    NoOneNoBody
        87
    NoOneNoBody  
       27 天前
    写惯了 python ,重拾扔下十年的 js 也是一塌糊涂
    报错,搞了半天,最后发现是前一个代码块漏了后面的花括号,程序跑到下一个代码块才报错,搞得我老是在后一个代码块中查错,自然查不到

    没想到 if else 里面声明的变量后面不能用,还以为作用域是平级的,原来要在 if 前面写个无赋值声明

    换一种语言,不学习就只接上,当然各种水土不服
    jjx
        88
    jjx  
       27 天前
    无聊

    语法,缩进你一开始就知道, 你可以不选择
    undertheros3
        89
    undertheros3  
       27 天前 via iPhone
    巧了,我正好相反,最近感觉 python 太方便了,脚本什么的准备都用 python 了。
    iyaozhen
        90
    iyaozhen  
       27 天前
    你这没说到点子上 我以为你说性能问题呢

    缩进,你写 c 都不缩进的?就是少括号,那不更简洁嘛
    wxf666
        91
    wxf666  
       27 天前
    @yb2313 #6
    @miaotaizi #13

    动态字段,很烦人吗?

    那用 MongoDB 的,是咋忍下去的。。
    Sawyerhou
        92
    Sawyerhou  
       27 天前
    走出舒适圈是提升技术的必经之路。
    EndlessMemory
        93
    EndlessMemory  
       27 天前
    你说他伪多线程,效率慢大伙都没话说,你来句缩进不习惯给我整乐了
    binaryxia
        94
    binaryxia  
       27 天前
    之前有个量化大佬,非科班出身,用 python 写的量化交易软件代码很棒
    DOLLOR
        95
    DOLLOR  
       27 天前
    @NoOneNoBody
    python 没有类似其他语言的“块级作用域”,所以就会有 if else 块里声明变量,在 if else 外也能用的现象。

    这种表现跟早年 JS 的 var 声明的变量提升是一样的,也是 JS 经常遭诟病的特性。
    所以后来 JS 有了 let 和 const ,用来声明块级作用域,语句块外不能再访问语句块内声明的变量。
    Lucups
        96
    Lucups  
       27 天前
    缩进的最大缺点就是当你从网上 copy 了一大段代码贴进去,然后丢失了格式,就蛋疼了。

    我以前也是因为这个原因,写一些小工具时不太喜欢用 Python ,不能快乐地 copy 了嘛。
    不过现在有 AI 提示了,不需要大量 copy 了,Python 还是可以用用的。
    zhouyin
        97
    zhouyin  
       27 天前
    @binaryxia

    量化交易那么要求高速度的软件 竟然能用 python 这种慢速度??
    NoOneNoBody
        98
    NoOneNoBody  
       27 天前
    @DOLLOR #95
    我没有吐槽 js 的意思,也觉得没必要吐槽一个语言的语法格式,因为那是从这个语言创设最初就定下来的东西
    选择这个语言,自然就要适应,总不能让人家推倒重来,全部语法格式换掉,那还算原来的语言么?还不如换一个语言搞项目
    adoal
        99
    adoal  
       27 天前
    用什么排版方式界定代码作用域的边界,是编程语言把人搞崩溃的因素里最无关紧要的
    15855pm
        100
    15855pm  
       27 天前 via iPhone
    我倒是觉得其他语言里有时候找哪里多一个或者少一个大括号是真的灾难啊
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5442 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 06:41 · PVG 14:41 · LAX 23:41 · JFK 02:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.