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

来源:4-4 Python之for循环

慕移动8517387

2021-04-01 18:47

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


写回答 关注

3回答

  • 阿呦喂
    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的一大特点吧。

    qq_Iam... 回复幕布斯809...

    你这个是把print(sum/5)这一行缩进了 这样print(sum/5)这一语句就包含在了for循环中 相当于每循环一次打印一次 依次输出了 1/5 3/5 6/5 10/5 15/5 这就是你为什么输出了五个数

    2021-06-28 21:15:03

    共 2 条回复 >

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

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

    慕无忌614...

    请问les是啥意思?

    2021-06-15 00:55:52

    共 1 条回复 >

  • 路飞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,会发现也会有三个值的。

    weixin...

    小白 看不到 sum=sum+x 这一行 是啥意思啊 为啥 =sum+x

    2021-07-29 23:39:58

    共 1 条回复 >

Python3 入门教程(新版)

python3入门教程,让你快速入门并能编写简单的Python程序

154172 学习 · 1075 问题

查看课程

相似问题