为了账号安全,请及时绑定邮箱和手机立即绑定

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

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


正在回答

3 回答

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的一大特点吧。

1 回复 有任何疑惑可以回复我~
#1

幕布斯8094299

>>> L=[1,2,3,4,5] >>> sum=0 >>> for i in L: sum=sum+i print(sum/5) 0.2 0.6 1.2 2.0 3.0 为什么我的结果是这个,我就想打印出最后一个
2021-06-21 回复 有任何疑惑可以回复我~
#2

qq_Iamovercome_0 回复 幕布斯8094299

你这个是把print(sum/5)这一行缩进了 这样print(sum/5)这一语句就包含在了for循环中 相当于每循环一次打印一次 依次输出了 1/5 3/5 6/5 10/5 15/5 这就是你为什么输出了五个数
2021-06-28 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

慕无忌6143968

请问les是啥意思?
2021-06-15 回复 有任何疑惑可以回复我~

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

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

0 回复 有任何疑惑可以回复我~
#1

weixin_慕哥7517181

小白 看不到 sum=sum+x 这一行 是啥意思啊 为啥 =sum+x
2021-07-29 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信