首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python: if-endif-语句在哪里结束?

Python: if-endif-语句在哪里结束?
EN

Stack Overflow用户
提问于 2013-10-17 14:57:05
回答 4查看 118.5K关注 0票数 16

我有以下代码:

代码语言:javascript
运行
复制
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。

但我不知道如果-否则-声明的结尾。它会在"classStart += 1“之后结束吗?

我觉得在Python中也很难看到for-next循环的结尾。

代码摘自http://danieljlewis.org/files/2010/06/Jenks.pdf

谢谢。

EN

Stack Overflow用户

发布于 2013-10-17 15:32:21

在Python中,缩进块结束,这正是您的块的结束位置。因此,例如,考虑更简单的代码:

代码语言:javascript
运行
复制
myName = 'Jhon'
if myName == 'Jhon':
   print(myName * 5)
else:
   print('Hello')

现在,当您运行这段代码时(确保它是从单独的模块运行,而不是从交互式提示符中运行),它将打印“myName”五次(注意Python将按照指定的方式对待对象,它甚至不会费心地将变量else的值转换为一个数字进行乘法),这是因为if块内的代码块仅被执行。请注意,如果else关键字放置在if语句的下方,或者如果您混合了制表符和空格的使用,Python会引发一个错误。

现在,在你的代码中

代码语言:javascript
运行
复制
for i in range(0,numClass):
    if breaks[i] == 0:
       classStart = 0
    else:
       classStart = dataList.index(breaks[i])
       classStart += 1

看,for代码块的缩进是从哪里开始的?一个选项卡,因此,在for语句之后缩进的所有选项卡都在for块的内部。显然,if语句在for语句中,所以它在for语句中。现在,让我们转到下一行,classStart = 0 --这是从for语句缩进的两个选项卡和来自if语句的一个选项卡;所以它在if语句和for块中。下一行,else关键字从for语句缩进一个选项卡,而不是两个选项卡,因此它位于for语句中,而不是if语句中。

如果您以前使用过另一种语言编写代码,那么可以考虑使用这样的花括号:

代码语言:javascript
运行
复制
for i in range(0,numClass)
{
    if breaks[i] == 0
        {
        classStart = 0
        }
    else
        {
        classStart = dataList.index(breaks[i])
        classStart += 1
        }
}

简单的区别是,您不需要为表达式添加括号,除非,您希望强制执行运算符优先规则,并且不需要那些大括号,相反,只需将它们同样缩进。

票数 10
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19430190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档