问答详情
源自:4-4 Python之for循环

为什么python对于代码规范这么严苛?sum=sum+x不缩进结果是三答案,缩进就是一个答案

L=[78,12,3]
sum=0.0
for x in L:	
    sum=sum+x
print(sum/3)


提问者:慕移动8517387 2021-04-01 18:47

个回答

  • 阿呦喂
    2021-04-29 20:50:44

    python中的缩进起到了区别不同功能模块的作用,就像c中的{}和;一样,for循环中的缩进就说明了这条语句是受for控制的,相关运算需要满足for循环的条件,如果没有缩进,就不受for控制,这里sum=sum+x如果没有缩进,那x就变成了没有定义的变量,就会报错,

    L=[78,12,3]
    sum=0.0
    for x in L:     
    sum=sum+x
    print(sum/3)
    运行报错:
    IndentationError: expected an indented block

    不会出现三个结果啊,缩进了,x就会依次被赋予L中的值并于sum相加(实际就是78+12+3)为93,而print语句不在for模块中,就会输出最后的sum/3的值也就是31。

    L=[78,12,3]
    sum=0.0
    for x in L:     
        sum=sum+x
    print(sum/3)
    运行结果:
    31

    用缩进来区分不同的功能模块,比用{}和;要更简单一点,这也是python的一大特点吧。

  • sponge1204807
    2021-04-13 23:14:55

    sum=0
    for a in L:
          sum = sum+a
    print(sum/les(L))

  • 路飞123456789
    2021-04-01 20:51:29

    你好,我没太懂你的意思。

    L=[78,12,3]
    sum=0.0
    for x in L:
    sum=sum+x
    print(sum/3)

    这个不缩进的话,sum=sum+x就在for循环外面去了,定义的局部变量x就不生效了,使用解释都不能通过,咋就有三个答案了...

    我是主攻Java的,因为选修选了Python,所以来看看Python的,相比Java,Python已经语法已经很松了,比如这里的缩减,在Java中就必须用{}包裹,缩减的话,那sum就是个累加的操作,遍历L中的各个数相加,假如你在缩进后的sum下打印sum,会发现也会有三个值的。