我正在格式化我的代码,这些代码将包含在报告的附录中,因此尊重80个字符行不仅仅是PEP8的狂热,因为如果行太长则会继续超过纸张的宽度。
通常,使用PEP8建议和一些逻辑打破长行,事情很简单,但我遇到了这90个字符的长行,缩进了3次:
valleys.append(data.index(min(data[frontieres[f*2+1]:frontieres[f*2+2]])))
如果可能的话,如何在不更改变量名称的情况下打破它?
答案 0 :(得分:5)
我不喜欢我建议你的想法,因为好的做法是将这一行改写成更具可读性的东西。但是,如果你需要更好地将现有代码格式化为科学报告,那么你有我的建议:
valleys.append(
data.index(
min(
data[frontieres[f*2+1]:frontieres[f*2+2]]
)))
Python允许在括号之间拆分行而不需要任何额外的技巧。
更正确的方法是:
valleys.append(
data.index(
min(
data[frontieres[f*2+1]:frontieres[f*2+2]]
)
)
)
事实上,您也可以通过这种方式拆分索引。
答案 1 :(得分:3)
有两种方法可以打破界限。
使用\
:
您可以将它插入(甚至在变量之间)并从那里取下它:
valleys.append(data.index(min(data[frontieres[f*2+1]\
:frontieres[f*2+2]])))
与(
打破:
任何函数都可以在另一行上接受参数
valleys.append(data.index(min(
data[frontieres[f*2+1]:frontieres[f*2+2]]
)))
为了便于阅读,我更喜欢后者。
答案 2 :(得分:2)
只需使用变量:
some_data = data[frontieres[f*2+1]:frontieres[f*2+2]]
min_some_data = min(some_data)
data_index = data.index(min_some_datan)
valleys.append(data_index)
答案 3 :(得分:1)
data_range = data[frontieres[f*2+1]:frontieres[f*2+2]]
data_min = min(data_range)
index_min = data.index(data_min)
valleys.append(index_min)
显然,您可以内联任何引入变量。