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

2024 年 11 月 13 日
 crc8

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

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

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

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

弃!

23622 次点击
所在节点    Python
157 条回复
xgdgsc
2024 年 11 月 14 日
库多而已,爱不起来又必须用的话就在你喜欢的语言里调,比如在 Julia 用 pythoncall.jl ,在 cpp 里用 pybind11 ,一般是个语言都可以调
itskingname
2024 年 11 月 14 日
Python 报的错误信息会比 Java 多? Java 的日志你翻页翻 3 屏幕都看不到真正错误的位置。
ounxnpz
2024 年 11 月 14 日
假设有一个 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
2024 年 11 月 14 日
假设有一个 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
2024 年 11 月 14 日
写自动化小脚本是真的快
DIO
2024 年 11 月 14 日
python 其实是调用入口,稍微核心一点的逻辑和实现都要去底层了。调库调参侠自然很喜欢。
业务代码应该是没人主力用吧。。。

工具只有适合不适合,没有喜好
Leviathann
2024 年 11 月 14 日
@ounxnpz
幽默
我直接 map.containsValue() 你又如何应对
edisonwong
2024 年 11 月 14 日
写脚本好使,大型项目不好使。我 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
2024 年 11 月 14 日
@edisonwong 补上
前端 node ,版本管理不太好。稍微换一下 node 版本、组件升级之类了,很多都跑不了
相比 go mod 管的就挺好,当然有一些异类的库,比如 etcd ,需要手动 gomod 里 replace ,据说是因为 etcd 作者反 go mod ( doge )
ounxnpz
2024 年 11 月 14 日
你针对的是这样的结构
{
"k": v
}
cold777SY
2024 年 11 月 14 日
@sgld 我也看高天, 确实说的对, 开源了不代表就得当用户的孙子
qq78660651
2024 年 11 月 14 日
为什么那么多人用,因为库多,功能实现快;
为什么库多,因为用的人多;
Plumbiu
2024 年 11 月 14 日
@edisonwong 这种大概率没锁依赖版本,前面全是^开头的
Sawyerhou
2024 年 11 月 14 日
@Leviathann #147 比较代码量要在相同的算法逻辑下,

总不能,题目:求 1-100 的和
你:print(5050)
user1284
2024 年 11 月 15 日
不是,因地制宜啊,哪个方便用哪个啊,还能被语言给限制了吗
rushpu
2024 年 11 月 15 日
语言之争,日经贴
xu2goyuchen
2024 年 11 月 19 日
因为一个 Pandas ,python 就无敌了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/1089258

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX