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

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

定義函數嵌套sun()

定義函數嵌套函數,感覺邏輯上沒錯,但是為什么答案是15和40而不是平方和。

def square_of_sum(L):

? ? for x in L:

? ? ? ? x=x*x

? ? return sum(L)

print square_of_sum([1, 2, 3, 4, 5])

print square_of_sum([-5, 0, 5, 15, 25])


正在回答

3 回答

def?square_of_sum(L):
????for?x?in?L:
????????x=x*x
????return?sum(L)
????
print?square_of_sum([1,?2,?3,?4,?5])
print?square_of_sum([-5,?0,?5,?15,?25])

這個邏輯很簡單,題主仔細看的話,很快就能明白,我分步驟來講下,這個函數的調用過程:

  1. 調用square_of_sum([1, 2, 3, 4, 5])

  2. 執行?

for?x?in?L:
????x=x*x

????在這一步,只是簡單的做了一個列表循環,并沒有改變列表L ,也就是[1,2,3,4,5]中的值。 這就涉及到 Python for 循環的原理了,在上面這個典型的for循環中,所做的只是,依次從列表中提出一個值,賦值給變量x, 改變x的值,并不能改變列表本人的值。

?3. 執行 sum([1,2,3,4,5]), 所以函數最終返回的只是 原列表的 和。

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

歷練后的飛翔 提問者

謝謝,我懂了。請問我怎樣才能重新賦值列表呢?
2016-03-25 回復 有任何疑惑可以回復我~
#2

清波 回復 歷練后的飛翔 提問者

答復中沒有代碼格式,我下面回答
2016-03-25 回復 有任何疑惑可以回復我~

Sorry, 被問題誤導了, 看了下課程, 是返回列表的平方和, 而不是改變列表后再求和。 所以代碼如下:

def?square_of_sum(L):
????sum=0
????for?i?in?L:
????????sum+=i**2
????return?sum


1 回復 有任何疑惑可以回復我~
def?square_of_sum(L):
????for?index,value?in?enumerate(L):
????????L[index]=value**2
????return?sum(L)
def?square_of_sum(L):
????for?index?in?range(len(L)):
????????L[index]=L[index]**2
????return?sum(L)


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
初識Python
  • 參與學習       758398    人
  • 解答問題       8967    個

學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序

進入課程

定義函數嵌套sun()

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

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

公眾號

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