
自知道它,历经数年,不止一次,
想喜欢它,去使用它,去学习它。
直到今天,发现对它,爱不起来。
究其原因:出错的时候,错误一坨坨,毫无美感可言。
弃!
1 ynkkdev 2024-11-13 16:30:58 +08:00 按照这个逻辑,可能喜欢用 python 的人一般不出错,所以看不到毫无美感的错误? |
2 malusama 2024-11-13 16:32:31 +08:00 没有需求何必强求自己写什么语言呢 |
3 NoOneNoBody 2024-11-13 16:33:27 +08:00 圣人 |
4 nocmt 2024-11-13 16:34:44 +08:00 Python 的设计理念是“优雅”、“明确”、“简单”。 优雅:Python 代码风格优美,语法简洁明了,代码可读性高,易于理解和维护。 明确:Python 语言规范清晰,标准库丰富,可用于开发各种应用程序。 简单:Python 语言的语法相对简单,可以让人很快掌握。 Python 之禅,by Tim Peters 优美胜于丑陋 明确胜于隐晦 简单胜于复杂 复杂胜于凌乱 扁平胜于嵌套 稀疏胜于紧凑 可读性至关重要 即便特例,也需服从以上规则 除非刻意追求,错误不应跳过 面对歧义条件,拒绝尝试猜测 解决问题的最优方法应该有且只有一个 尽管这一方法并非显而易见(除非你是 Python 之父) 动手胜于空想 空想胜于不想 难以解释的实现方案,不是好方案 易于解释的实现方案,才是好方案 命名空间是个绝妙的理念,多多益善! ---- 最后是可以早点下班 |
5 NessajCN 2024-11-13 16:34:52 +08:00 「为啥会有那么多人用螺丝刀?我一次又一次尝试用他敲钉子,每次都对不准,还不好发力。弃!」 |
7 ninjashixuan 2024-11-13 16:36:46 +08:00 这理由有点像美女也拉屎我选择和五姑娘共度一生。 |
8 crc8 OP 一会 Python2 ,一会 Python3 ,接下来应该还会有 Python4 |
10 xvrzhao 2024-11-13 16:40:26 +08:00 Python 是一门革命不彻底的语言,异步编程效仿 Node.js 的 Event Loop ,但在异步代码中同样可以使用 I/O 阻塞的 API ,没有强行将开发者规范起来。 如果我用 Python ,请告诉我一个不用 Node.js 的理由。 |
11 BeautifulSoap 2024-11-13 16:41:45 +08:00 对我来说,Python 写脚本方便,而且库多。虽然 node 也能写脚本,但很明显 node 写脚本的体验是被 python 按在地上摩擦的 至于开发复杂的项目,那我肯定不选 python |
12 mayli 2024-11-13 16:41:48 +08:00 究其原因:出错的时候,错误一坨坨,毫无美感可言。 rust: ? |
13 minami 2024-11-13 16:42:45 +08:00 方便糊 |
14 yosoroAida 2024-11-13 16:45:30 +08:00 写脚本算是很方便的东西吧,你让我写大型项目还是算了。。 |
15 xvrzhao 2024-11-13 16:46:32 +08:00 @BeautifulSoap 我怀疑你不会写 Node.js |
16 ninjashixuan 2024-11-13 16:46:38 +08:00 @xvrzhao 印象中 python 引入 await async 比 js 早吧。 |
17 Donaldo 2024-11-13 16:47:22 +08:00 自己用不对别怪人家语言啊。。 |
18 lizy0329 2024-11-13 16:47:42 +08:00 缩进分段落就是最大的 |
19 xvrzhao 2024-11-13 16:48:51 +08:00 语法是早,但是 asyncio 出的晚 |
20 crc8 OP 其实,科学一下,就不会一坨坨的啦,但科学不是每时每刻都有啊。 让大家伙也领略一下吧。 pip3 install django==4.2.11 Collecting django==4.2.11 Using cached Django-4.2.11-py3-none-any.whl.metadata (4.2 kB) Requirement already satisfied: asgiref<4,>=3.6.0 in c:\users\user\appdata\local\programs\python\python313\lib\site-packages (from django==4.2.11) (3.8.1) Requirement already satisfied: sqlparse>=0.3.1 in c:\users\user\appdata\local\programs\python\python313\lib\site-packages (from django==4.2.11) (0.5.1) Requirement already satisfied: tzdata in c:\users\user\appdata\local\programs\python\python313\lib\site-packages (from django==4.2.11) (2024.2) Downloading Django-4.2.11-py3-none-any.whl (8.0 MB) -------------------------- ------------- 5.2/8.0 MB 9.7 kB/s eta 0:04:43 [notice] A new release of pip is available: 24.2 -> 24.3.1 [notice] To update, run: python.exe -m pip install --upgrade pip ERROR: Exception: Traceback (most recent call last): File "C:\Users\user\AppData\Local\Programs\Python\Python313\Lib\site-packages\pip\_vendor\urllib3\response.py", line 438, in _error_catcher yield File "C:\Users\user\AppData\Local\Programs\Python\Python313\Lib\site-packages\pip\_vendor\urllib3\response.py", line 561, in read data = self._fp_read(amt) if not fp_closed else b"" ~~~~~~~~~~~~~^^^^^ File "C:\Users\user\AppData\Local\Programs\Python\Python313\Lib\site-packages\pip\_vendor\urllib3\response.py", line 527, in _fp_read return self._fp.read(amt) if amt is not None else self._fp.read() ~~~~~~~~~~~~~^^^^^ File "C:\Users\user\AppData\Local\Programs\Python\Python313\Lib\site-packages\pip\_vendor\cachecontrol\filewrapper.py", line 98, in read data: bytes = self.__fp.read(amt) ~~~~~~~~~~~~~~^^^^^ File "C:\Users\user\AppData\Local\Programs\Python\Python313\Lib\http\client.py", line 479, in read s = self.fp.read(amt) File "C:\Users\user\AppData\Local\Programs\Python\Python313\Lib\socket.py", line 719, in readinto return self._sock.recv_into(b) ~~~~~~~~~~~~~~~~~~~~^^^ File "C:\Users\user\AppData\Local\Programs\Python\Python313\Lib\ssl.py", line 1304, in recv_into return self.read(nbytes, buffer) ~~~~~~~~~^^^^^^^^^^^^^^^^ File "C:\Users\user\AppData\Local\Programs\Python\Python313\Lib\ssl.py", line 1138, in read return self._sslobj.read(len, buffer) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ TimeoutError: The read operation timed out During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Users\user\AppData\Local\Programs\Python\Python313\Lib\site-packages\pip\_internal\cli\base_command.py", line 105, in _run_wrapper status = _inner_run() File "C:\Users\user\AppData\Local\Programs\Python\Python313\Lib\site-packages\pip\_internal\cli\base_command.py", line 96, in _inner_run return self.run(options, args) ~~~~~~~~^^^^^^^^^^^^^^^ File "C:\Users\user\AppData\Local\Programs\Python\Python313\Lib\site-packages\pip\_internal\cli\req_command.py", line 67, in wrapper return func(self, options, args) File "C:\Users\user\AppData\Local\Programs\Python\Python313\Lib\site-packages\pip\_internal\commands\install.py", line 379, in run requirement_set = resolver.resolve( reqs, check_supported_wheels=not options.target_dir ) File "C:\Users\user\AppData\Local\Programs\Python\Python313\Lib\site-packages\pip\_internal\resolution\resolvelib\resolver.py", line 179, in resolve self.factory.preparer.prepare_linked_requirements_more(reqs) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^ File "C:\Users\user\AppData\Local\Programs\Python\Python313\Lib\site-packages\pip\_internal\operations\prepare.py", line 554, in prepare_linked_requirements_more self._complete_partial_requirements( ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ partially_downloaded_reqs, ^^^^^^^^^^^^^^^^^^^^^^^^^^ parallel_builds=parallel_builds, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "C:\Users\user\AppData\Local\Programs\Python\Python313\Lib\site-packages\pip\_internal\operations\prepare.py", line 469, in _complete_partial_requirements for link, (filepath, _) in batch_download: ^^^^^^^^^^^^^^ File "C:\Users\user\AppData\Local\Programs\Python\Python313\Lib\site-packages\pip\_internal\network\download.py", line 184, in __call__ for chunk in chunks: ^^^^^^ File "C:\Users\user\AppData\Local\Programs\Python\Python313\Lib\site-packages\pip\_internal\cli\progress_bars.py", line 55, in _rich_progress_bar for chunk in iterable: ^^^^^^^^ File "C:\Users\user\AppData\Local\Programs\Python\Python313\Lib\site-packages\pip\_internal\network\utils.py", line 65, in response_chunks for chunk in response.raw.stream( ~~~~~~~~~~~~~~~~~~~^ chunk_size, ^^^^^^^^^^^ ...<22 lines>... decode_cOntent=False, ^^^^^^^^^^^^^^^^^^^^^ ): ^ File "C:\Users\user\AppData\Local\Programs\Python\Python313\Lib\site-packages\pip\_vendor\urllib3\response.py", line 622, in stream data = self.read(amt=amt, decode_cOntent=decode_content) File "C:\Users\user\AppData\Local\Programs\Python\Python313\Lib\site-packages\pip\_vendor\urllib3\response.py", line 560, in read with self._error_catcher(): ~~~~~~~~~~~~~~~~~~~^^ File "C:\Users\user\AppData\Local\Programs\Python\Python313\Lib\contextlib.py", line 162, in __exit__ self.gen.throw(value) ~~~~~~~~~~~~~~^^^^^^^ File "C:\Users\user\AppData\Local\Programs\Python\Python313\Lib\site-packages\pip\_vendor\urllib3\response.py", line 443, in _error_catcher raise ReadTimeoutError(self._pool, None, "Read timed out.") pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out |
21 crc8 OP 虽然,最终,都会成功。但成功之前那一坨坨,真的没办法去掉吗?不是说 python 是优雅的吗? Downloading Django-4.2.11-py3-none-any.whl (8.0 MB) ---------------------------------------- 8.0/8.0 MB 74.0 kB/s eta 0:00:00 Installing collected packages: django Attempting uninstall: django Found existing installation: Django 5.1.3 Uninstalling Django-5.1.3: Successfully uninstalled Django-5.1.3 Successfully installed django-4.2.11 |
22 renmu 2024-11-13 16:53:09 +08:00 via Android 报错不是很明显吗,你读取超时了 |
25 leconio 2024-11-13 16:55:25 +08:00 via iPhone ^ ^ ^ ^ ^ ^ ^ ^是一坨坨的象形吗 |
27 crc8 OP @iorilu 我没手动设置任何源最后也会成功,很明显是网络问题,问题是 python 直接优雅地说出最后一句就行,不用抛出中间那满屏的一坨坨。根本看了也是白看。反正我是不会看的,只看最后! |
28 jjx 2024-11-13 17:02:46 +08:00 你不喜欢就不用好了 没有必要质疑别人喜欢用 这不是没事找事吗 |
29 yingxiangyu 2024-11-13 17:03:13 +08:00 @crc8 #27 排查问题的时候你就知道打印这么多的用处了 |
30 chingyat 2024-11-13 17:03:41 +08:00 因 python 看起来简单,再加上很多人大吹特吹。 殊不知 Python 的语法比 C 语言更复杂。 |
31 herozzm 2024-11-13 17:04:40 +08:00 来的快,然后一堆教程是 python 的,尤其是爬虫,加上最近的 AI 大热都用的 python 来做接口 个人觉得 python 真的是一坨 |
33 lisxour 2024-11-13 17:10:32 +08:00 我就不喜欢这一坨,但是没办法,很多人家写的就是 python ,而且有的库还是专门适配 python 的,难不成还再重构适配到另一个语言啊,被迫使用 |
34 maxwellz 2024-11-13 17:12:04 +08:00 一把嗦的乐趣 |
35 dalaoshu25 2024-11-13 17:12:33 +08:00 不用编译,比 bash 强,比 Perl 看着顺眼。 |
36 billlee 2024-11-13 17:12:39 +08:00 用 C++ 吧,不会有一坨错误,只会一句话告诉你内存不能为 read. |
37 linghutf 2024-11-13 17:12:42 +08:00 via Android 因为可以快速干完活,至于维护,那就不是这帮人考虑的了 |
38 iorilu 2024-11-13 17:12:43 +08:00 这种更对开发者友好阿 你难道希望出错了, 就一句话, system error, 反正自己 debug 看到底哪里有问题? 再说了 , python 所谓得友好简单都是对开发者而言 对终端用户, 其实 python 没任何优势, 反而都是劣势, 因为 python 得发布编译是非常烂得, 因为官方从来没考虑这些 |
39 < href="/member/miaotaizi" class="dark">miaotaizi 2024-11-13 17:14:07 +08:00 写着玩: 可以 做项目: 不行! |
40 crocoBaby 2024-11-13 17:14:26 +08:00 身为合格的软件工程师,不应该纠结编程语言 |
41 AV1 2024-11-13 17:16:45 +08:00 python 简单,至少刚学的时候,看起来挺简单,不用接触什么指针、动态内存分配之类。 代码可读性高,至少代码量不多的时候,看起来很干净,没有大括号之类的视觉干扰。 易于理解和维护,大部分 python 脚本都是写完就用、用完就弃的东西,根本不需要考虑未来的理解和维护。 生态丰富,跟其他语言(比如 C )生态容易融合,无脑调包就行,没什么不是 import 不能解决的,如果有,就 pip install 。 |
42 BeautifulSoap 2024-11-13 17:19:51 +08:00 @xvrzhao 你说得对,给我看看阁下写的 node 脚本可好? |
44 crc8 OP @mayli 我是终端用户,我看最后有 443 、https 、timeout ,基本就是国内网络问题,无科学方法的情况反复尝试几下也会成功。但那一堆错误真的吓人。 |
45 fds 2024-11-13 17:32:17 +08:00 我这边是因为 python 自动支持任意精度的整数处理,算大数比较方便。至于错误提示,见仁见智吧,主要国外很少遇到这种问题,所以人家也不会把这个错误拦截后包装成好看的样子。 |
46 imbigbao 2024-11-13 17:37:15 +08:00 我也觉得 Python 写起来难受,一些新手写的 CURD 代码比 PHP 恶心多了 |
47 prime2015 2024-11-13 17:48:34 +08:00 工作用 java ,自己搞点东西用 python |
49 Exxfire 2024-11-13 17:49:06 +08:00 路径配置好点是不是就好很多呢,感觉不好看是你的路径造成的。 |
50 zzmark06 2024-11-13 17:52:50 +08:00 建议写 c 只会 panic |
51 dV9zZM1wROuBT16X 2024-11-13 17:52:57 +08:00 主要是跟 python 相关的生态发展的比较好,慢慢延伸到其他领域了,大概的猜测如下: 1. linux 默认脚本语言,不知道是不是用起来像 better shell 1. IT 运维很喜欢用,很多运维工具都是 python 写的 2. 游戏行业内喜欢用来作胶水,用来调用 c/c++/java ,可以零开销?现在被 lua 替代? 3. 国外大学老师、科研人员特别喜欢,可能写法上更贴近数学表达? PS. 它的版本管理真的很乱 |
52 Yadomin 2024-11-13 17:59:05 +08:00 via Android 菜就多练 |
53 hefish 2024-11-13 18:00:28 +08:00 人菜瘾大。 哈哈哈。。。。 |
54 CtT66PVR1bW7b2z 2024-11-13 18:03:50 +08:00 你学了多久 python ?你这报的错误明显是网络错误,你看不懂反而怪 python 。另外我没学过其他编程语言,然后随便下载个项目也出错,是不是也可以这样吐槽那个编程语言 |
55 JustBecause 2024-11-13 18:06:40 +08:00 生态不错,非常适合作为非程序员的第一个编程语言 |
56 JoryJoestar 2024-11-13 18:08:07 +08:00 语言没有好坏之分,时代正在进步,而 python 显然时属于这个时代的佼佼者,你不喜欢用,只是说明你还没领悟其中的奥妙之处 |
57 inhzus 2024-11-13 18:10:24 +08:00 用 C++ 吧,十行代码可以有一万行报错(没夸张) |
58 importmeta 2024-11-13 18:10:44 +08:00 首先它的 from import 语句我看着就喜欢不起来, 引入多了很难看, 非得搞特殊把 from 放前面 |
59 simple2025 2024-11-13 18:11:50 +08:00 这报错还好吧,反正 python 大部分的错误栈都可以很轻易的进行调试 |
60 xuxian4321 2024-11-13 18:17:13 +08:00 优点:简单、上手快,资源多,开发迅速,适合快速开发原型。缺点:代码不严谨,不适合大项目,性能差点。 |
61 luodichen 2024-11-13 18:18:31 +08:00 原来你的“错误一坨坨”甚至都不是指用 Python 开发过程中遇到的报错,而只是 pip install 。 而且从你举的例子看,问题的症结就在最后一行,在 console 一眼就能看出来,不用去关心一坨坨的时候,不去看就行了。 当你遇到难题搅尽脑汁的时候,会发现详细的 stack strace 是多么美好,甚至还嫌它打得不够多。 |
62 exploreexe 2024-11-13 18:23:43 +08:00 我喜欢 python 是真的优雅,比起其他的语言罗里吧嗦一大堆,特别是 OC... python 上手是真爽 |
63 simple2025 2024-11-13 18:54:45 +08:00 @luodichen 代码逻辑出错的时候,结果不符合预期的时候,就会怀念 stacktrace 了. |
64 sgld 2024-11-13 19:22:04 +08:00 via Android 爱用不用。又不影响他的地位。Python 核心开发就那么点人,没什么好挑三拣四的,给 Python 捐过钱还是咋。 越发觉得,高天视频里面骂的好啊!!! |
65 tankren 2024-11-13 19:35:27 +08:00 环境好实现 好学 易读 轮子多 做点小工具难度低 |
66 iorilu 2024-11-13 19:36:55 +08:00 还不是看技术 你要有水平, 拿记事本写 c, 出问题用 gdb 调试, 只要能把项目完成, 保证没人敢说二话 |
67 COW 2024-11-13 19:38:27 +08:00 via Android 提示错误多并不一定是坏事 |
68 bronyakaka 2024-11-13 19:40:49 +08:00 你可以用 go ,让你知道什么才是真正的错误一坨坨,写到生理性反胃 |
69 hertzry 2024-11-13 19:45:23 +08:00 via iPhone Python 的报错从后往前看。 |
70 adoal 2024-11-13 19:46:26 +08:00 你可能需要的是别人按你的需求写个 GUI 把你要的操作包装起来。 但是对具体的业务功能写 GUI 来包装,是不太有趣的事。如果不是花钱买服务的华,除非正好别人跟你做一样的事,又正好有这个兴趣又有这个能力。 |
71 mark2025 2024-11-13 19:47:34 +08:00 @BeautifulSoap 用 TS 写脚本然后(使用 tsx )直接运行 .ts 文件,在可维护性上面 py 是比不了的 |
72 Sawyerhou 2024-11-13 19:48:24 +08:00 via Android 哪门需要报错报的很有美感,你发出来让兄弟们开开眼。 |
74 LZYMichael 2024-11-13 20:11:10 +08:00 Python 比较适合作为非科班人员的第一门编程语言,是进入编程世界的一条简单路径。 |
75 SekiBetu 2024-11-13 20:14:51 +08:00 网络相关的脚本不用 python 写用什么写 |
76 EndlessMemory 2024-11-13 20:15:44 +08:00 代码量少 |
77 liaojl 2024-11-13 20:29:17 +08:00 via iPhone 错误一坨坨倒没什么,我想不明白的是为什么会有人喜欢面向游标卡尺编程。 |
79 scipelaina 2024-11-13 20:37:36 +08:00 菜就多练。 |
80 zeusho871 2024-11-13 20:50:07 +08:00 换个源就解决的事。。。你要是喷它性能慢,喷它动态语言火葬场我也陪你骂,pip 错误这哪里叫问题。。。 |
81 azertim 2024-11-13 20:57:40 +08:00 md ,Python 就是安全行业的福音好吧,虽然说有 go 但是大部分时间还得是 Python ,现在的 Python 版本管理工具也很多啊,担心啥啊。 |
82 python35 2024-11-13 21:01:47 +08:00 大学的时候我 java 写的贼 6 ,安卓,网站后台一把梭; 现在靠 python 吃饭,怎么说呢,现在让我写一个网站后台我肯定用 python 写, `效率无所谓,主要是写的快`。。。 就算是 python 代码简洁,实现相同的逻辑需要的代码量少,天天写还是快给我写吐了 |
83 ManjusakaL 2024-11-13 21:01:54 +08:00 > 一会 Python2 ,一会 Python3 ,接下来应该还会有 Python4 哪来的 Python 4 传言。。。 |
84 yqs112358 2024-11-13 21:37:37 +08:00 python 其实最大的优势是在它的生态,大到科学计算 AI 开发,小到日常小工具编写,各种现成拿来的包特别多,用起来很方便,所以它才能走到今天的位置。倒不是说大家真的有多“喜欢”它,而是因为它还算简单好用,生态完善,没有太严重的雷点,所以大家都愿意去用用。 |
85 felixcode 2024-11-13 21:40:14 +08:00 via Android 学不会的东西就说不够优雅好了 |
86 yqs112358 2024-11-13 21:41:52 +08:00 至于你提的问题。。给人一种莫名其妙的感觉,我的建议是先深入学会几门语言再出来发表自己的评价 |
87 XIVN1987 2024-11-13 21:42:50 +08:00 python 适合打杂,, 因为库多,有啥需求百度一下然后 pip 、import 就行了。。 |
88 BridgeCham 2024-11-13 21:48:14 +08:00 好像那个男人又回来了 |
89 bytesfold 2024-11-13 21:56:43 +08:00 你可以 patch 一下 traceback 的堆栈信息,不显示就没了。 |
90 TimPeake 2024-11-13 22:29:04 +08:00 打起来,打起来.jpg |
91 James369 2024-11-13 22:50:24 +08:00 唯一无法忍受的是它的函数注释,写在函数内部... |
92 akira 2024-11-13 23:55:42 +08:00 用某个开发语言,都是为了解决某个特定问题的,只要他能解决问题,别的都不是问题啊。。 |
93 limbo0 2024-11-14 01:32:39 +08:00 Python 当初的定位介于 Shell 和 C 之间 |
95 duanzhanling 2024-11-14 07:34:39 +08:00 看个人喜好吧,我就喜欢 golang ,一个二进制文件 |
96 cnt2ex 2024-11-14 07:44:26 +08:00 由于各种灵活性(动态类型、方法参数等)带来的方便,从而让程序员更加专注于完成解决任务本身而花更少的时间在对抗编程语言的问题上。虽然这也会导致各种 bug ,但写起来就是方便。 用 opencv 实现同样的功能,用 python 实现起来就是比 c++实现起来方便。不需要花时间考虑设计输入输出参数的类型、个数,错误处理什么的遇到了再说。很快就能实现一个原型。 |
97 arischow 2024-11-14 08:08:39 +08:00 via iPhone 地图炮?菜狗。 |
98 guanhui07 2024-11-14 08:58:20 +08:00 via iPhone 人生苦短 |
99 wycstar 2024-11-14 09:01:21 +08:00 因为能做完比做的好更重要。 |
100 chengkai1853 2024-11-14 09:01:25 +08:00 因为库很丰富 |