python编程如何让for循环自动编排格式

m
microsat
楼主 (北美华人网)
c语言里面 无论是几个for,if互相嵌入。 只要有{} 都能自动编排。
请问python如何实现这一点呢? 比如
for x in X: for y in Y: if True: .... .... ....
如果原程序的indent被破坏了,如何能快速自动编排好呢?
好有一个问题。一个pdf里面的python程序,当跨页时,如何能快速读懂,这是哪一层的for循环结束,if语句结束? 另外,拷贝到jupyter里面(很多拷贝时,会自动删除每行前面的空格),怎么避免indent不对这个错误提示?
python的设计者,为何要用这种indent方式来管理for和if这些这么重要的语句呢? 这是python的优点,还是缺点?
h
heydaymint
大哥您可真是孜孜不倦啊,stackoverflow和chatgpt are your better friends
N
Nemesis0412
真把华人当十万个为什么了
g
gokgs
真把华人当十万个为什么了
Nemesis0412 发表于 2024-09-02 18:10

哈哈, 青蛙马工, 可以理解。
indentation 没办法, python 的垃圾语言就这样。
loop 嵌套多了, 或者是行数多了, 就要多些几个函数。 一个函数不易太长。
m
microsat
gokgs 发表于 2024-09-02 18:13
哈哈, 青蛙马工, 可以理解。
indentation 没办法, python 的垃圾语言就这样。
loop 嵌套多了, 或者是行数多了, 就要多些几个函数。 一个函数不易太长。

那么请问,python的设计者,至少是世界顶级编程高手。 为何他们要这么设计呢?
而且,他们设计之前,已经有无数的语言(c,c++, c#, java, fortran, basic, pascal, matlab, R, SAS, SPSS)可以参考,没有一个语言是用indentation来实现这个的。 为何他们要逆天而行呢?
g
gokgs
那么请问,python的设计者,至少是世界顶级编程高手。 为何他们要这么设计呢?
而且,他们设计之前,已经有无数的语言(c,c++, c#, java, fortran, basic, pascal, matlab, R, SAS, SPSS)可以参考,没有一个语言是用indentation来实现这个的。 为何他们要逆天而行呢?
microsat 发表于 2024-09-02 18:27

牛人都觉得自己很牛, Musk 的 特斯拉 隐形把手 估计害惨了不少人。
福奇还说 戴口罩没用呢, 不要迷信牛人。
s
songxm99
因为其它语言用括号之后,为了阅读方便还是要保持indentation。 Python就让indentation同时兼任这两方面的功能。
m
microsat
gokgs 发表于 2024-09-02 18:33
牛人都觉得自己很牛, Musk 的 特斯拉 隐形把手 估计害惨了不少人。
福奇还说 戴口罩没用呢, 不要迷信牛人。

这个华人网,会自动删除每行开头的空白符号。 所以在华人网贴python code是个灾难。 没人能读懂华人网贴的python code。
pdf里的pythonc 代码,如果翻页,也是个巨大的灾难。根本读不懂。
m
microsat
songxm99 发表于 2024-09-02 18:37
因为其它语言用括号之后,为了阅读方便还是要保持indentation。 Python就让indentation同时兼任这两方面的功能。

但是其他的语言是indentation + bracket,两个都有。 因为只要有bracket,推导出indentation非常容易。
但是只有indentation,却推出indentation + bracket不容易。 需要indentation的每一步都很小心。
m
microsat
Nemesis0412 发表于 2024-09-02 18:10
真把华人当十万个为什么了

华人码工其实已经被印度码工替代,和印度CEO控管了。其命运前景堪忧。
要改变这一切,不能闭关。
f
flowingsue
不是自动的吗? 随便一个编辑器不都可以吗?为啥还有人问这个?
m
microsat
songxm99 发表于 2024-09-02 18:37
因为其它语言用括号之后,为了阅读方便还是要保持indentation。 Python就让indentation同时兼任这两方面的功能。

虽然只有bracket的语言 阅读起来不方便, 但是现在的IDE都能自动格式化,只要有bracket。
也就是说,只要语言是bracket-based。那么它就具备indentation + bracket。

g
gokgs
不是自动的吗? 随便一个编辑器不都可以吗?为啥还有人问这个?
flowingsue 发表于 2024-09-02 18:46

因为你显然不懂 python 阿。 哈哈
python 是非常奇葩的垃圾语言, 现在越来越流行了, 没办法。
m
microsat
gokgs 发表于 2024-09-02 18:54
因为你显然不懂 python 阿。 哈哈
python 是非常奇葩的垃圾语言, 现在越来越流行了, 没办法。

在python的内核里,再加回{ 和}来控制for和if 容易吗?
python拿这个{和}做什么特殊的事情去了?
如果容易,应该建议python改回用{和}控制循环和条件语句。
g
gokgs
microsat 发表于 2024-09-02 18:59
在python的内核里,再加回{ 和}来控制for和if 容易吗?
python拿这个{和}做什么特殊的事情去了?
如果容易,应该建议python改回用{和}控制循环和条件语句。

这个当然很容易, 语法改动是非常简单的事情。
但是牛人喜欢标新立异阿。
i
ismajia
Python的这种缩进语法,是我看到的最傻叉的方式。copy的时候,稍微出点问题,就完全错了
p
pxapx
lz要是想聊天了可以找chatgpt