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

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

不太理解print square_of_sum([-5, 0, 5, 15, 25]) 這個為什么不是打印出LIST了?

def square_of_sum(L):

? ? sum = 0

? ? for x in L:

? ? ? ? sum = sum + x*x

? ? return sum

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

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

?最后的print里的數列為什么不是打印出來,而是對前面square_of_sum(L)定義了?最后的輸出結果是sum的值,可是并沒有寫print sum,為什么會輸出sum值了?感覺對這節里的這兩個邏輯不是很清楚。

我分別試驗過def square_of_sum(L):
? ?square_of_sum([1, 2, 3, 4, 5])
? ?sum = 0
? ?for x in L:
? ? ? ?sum = sum + x*x
? ?return sum
print sum

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

都無法成功輸出結果,不知道我為什么錯了


正在回答

3 回答

def是表示自定義一個函數,square_of_sum()是函數名,L是調用這個函數要用到的參數(形式參數),這個函數中的return sum表示函數執行完后返回sum。沒有寫print sum而最后輸出的是sum 的值是因為print square_of_sum([1, 2, 3, 4, 5])這類語句用print調用了square_of_sum()這個函數,square_of_sum()返回一個sum值給調用它的print,square_of_sum()的結果是sum,print square_of_sum()的結果就是print sum。

至于你后面無法輸出正確的結果是因為你把函數定義和函數調用混在一起使用。

def square_of_sum(L):

? ? sum = 0

? ? for x in L:

? ? ? ? sum = sum + x*x

? ? return sum

這是一個規范的自定義函數,調用它時只需把形式參數L換成實際參數(如:[1,2,3,4,5])就可以了。像square_of_sum([1, 2, 3, 4, 5])就是正確的調用方式,但你不可以在編寫這個函數的時候再把這個調用語句加在里面(除非你寫的是遞歸函數),還有一個就是你最后調用的時候不可以寫成print square_of_sum,而要寫成print square_of_sum(),括號里面寫你要傳入的參數。

希望這些能夠對你有所幫助。

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

慕粉1648481082 提問者

非常感謝!
2017-02-04 回復 有任何疑惑可以回復我~
#2

qq_奮斗_101

那 sum = 0 跟 print square_of_sum()最后打印的這個函數是什么關系呢?
2017-06-07 回復 有任何疑惑可以回復我~
#3

qq_奮斗_101

新手這節課感覺好難理解 請大神熱心解答下跪謝!
2017-06-07 回復 有任何疑惑可以回復我~

執行函數相當于獲取函數的返回值,你的返回值就是計算的SUM結果,如果想做成list見下方代碼:

def square_of_sum(L):

? ? sum = []

? ? for x in L:

? ? ? ? s=x*x

? ? ? ? sum.append(s)

? ? return sum

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

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


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

唔,這個涉及到函數咯,之前如果寫過一點c之類的可以更好的理解。

print里的square_of_sum() 在之前被def聲明為一個函數。這時遇到函數調用square_of_sum(L),就會把L傳進去函數體執行完任務,然后再被return返回回來。畫個流程圖給你看一下:

好吧,慕課的傳圖渣渣,,,傳不上來。

在c語言里 一個函數的返回值是有類型的,python里是自動的,所以c比較能讓你理解這個過程。比如int function(int a)就是表明函數function接受一個整數值,并在函數體里把這個值賦給了a,所以你調用這個函數的時候,就比如funtion(10),10就進入那個函數被賦給了a,然后通過處理運算被return語句返回回來。

即是調用函數的過程就像對著一個機器,你輸入一個數字(或者其他什么東西),他返回一個數(或者啥啥的)。

print?square_of_sum([10])) ----》調用函數square_of_sum() 把[10]傳給L-----》運算,return返回一個值sum-------》print sum

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

舉報

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

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

進入課程

不太理解print square_of_sum([-5, 0, 5, 15, 25]) 這個為什么不是打印出LIST了?

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

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

幫助反饋 APP下載

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

公眾號

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