我有以下代码:
for i in range(0,numClass):
if breaks[i] == 0:
classStart = 0
else:
classStart = dataList.index(breaks[i])
classStart += 1
classEnd = dataList.index(breaks[i+1])
classList = dataList[classStart:classEnd+1]
classMean = sum(classList)/len(classList)
print classMean
preSDCM = 0.0
for j in range(0,len(classList)):
sqDev2 = (classList[j] - classMean)**2
preSDCM += sqDev2
SDCM += preSDCM
return (SDAM - SDCM)/SDAM
我想把这段代码转换成VB.NET。
但我不确定if-elseif语句的结尾在哪里。 它是否在“classStart+=1”之后结束?
我觉得在Python中很难看到for next循环的结尾。
代码取自http://danieljlewis.org/files/2010/06/Jenks.pdf
谢谢你。
是的。Python使用缩进来标记块。这里的
if
和for
都结束了。在Python中,缩进的块在哪里结束,也就是块将在哪里结束。例如,考虑一个更简单的代码:
现在,当您运行这段代码(确保从单独的模块运行,而不是从交互提示运行)时,它将打印“Jhon”五次(注意,Python将完全按照指定的方式处理对象,甚至不必尝试将变量
myName
的值转换为数字进行乘法),就这样。这是因为if块中的代码块只被执行。注意,如果else
关键字放在if语句下面的任何地方,或者如果您混合使用了制表符和空格,Python将引发一个错误。现在,在你的代码中
看,
for
的代码块的缩进从哪里开始?一个制表符,所以,在for
语句之后缩进一个制表符的所有内容都将在for块中。很明显,if
语句在for
语句中,所以它在for
语句中。现在,让我们转到下一行,classStart = 0
——这是从for
语句缩进的两个制表符,从if
语句缩进的一个制表符;所以它在for块中的if
语句和中。下一行,有一个else
关键字缩进了for
语句中的一个制表符,但没有缩进两个制表符,所以它在for
语句中,而在if
语句中,没有。如果您以前使用过其他语言编写代码,请考虑使用这样的大括号:
简单的区别在于,不需要为表达式插入括号,除非您希望强制使用运算符优先级规则,并且不需要这些大括号,而是将它们平均缩进。
相关问题 更多 >
编程相关推荐