亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么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下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號