第一個(gè)問(wèn)題:
sum 的初始化賦值,不能放到 for 下面, 因?yàn)榉胚M(jìn)去的話,每次循環(huán)都會(huì)給 sum 重新賦值成0, 則不能求 列表的平方和了。
最后兩句 是調(diào)用了 square_of_sum() 函數(shù),并且打印其結(jié)果。
第二個(gè)問(wèn)題:
關(guān)于 Python 函數(shù)的 參數(shù)的問(wèn)題, 其實(shí)和大多數(shù)語(yǔ)言的參數(shù)差不多, 有很多種,我就不展開(kāi)詳細(xì)講了, 只說(shuō)最常見(jiàn)的兩種, 其他的可以找專門的文章看。
def?fn(a,b=3):
????print?a
????print?b
????
fn(2,3)
##?輸出
2
3
##?解釋,上面這個(gè)函數(shù)有兩個(gè)參數(shù),?其中第一個(gè)?a?就是?位置參數(shù),?而第二個(gè)b=3?則是?關(guān)鍵字參數(shù),?這兩種參數(shù)的
##?區(qū)別一,就是?如上面所寫,一個(gè)只有參數(shù)名,另外一個(gè)則是?"參數(shù)名=值"。
##?區(qū)別二,?位置參數(shù)不可以省略,?關(guān)鍵字參數(shù)可以省略,如下
fn(4)
##?輸出
4
3
##?最后關(guān)于你的疑問(wèn),?為什么位置參數(shù)賦值了,?還可以在?調(diào)用的時(shí)候賦其他的值,?這個(gè)情況可以想象成,?函數(shù)定義
##?時(shí)的賦值?是個(gè)默認(rèn)值,如果我們?調(diào)用傳參的時(shí)候不給關(guān)鍵字參數(shù)?傳參,則調(diào)用默認(rèn);傳參,則調(diào)用傳的值。?
##?最后的問(wèn)題,?只有一個(gè)默認(rèn)參數(shù)(關(guān)鍵字參數(shù))是可以的。
##?關(guān)鍵字參數(shù)的調(diào)用傳參?是可以直接傳值,而不是必須寫成?"參數(shù)名=值"?格式,如下:
fn(7,8)
##?輸出
7
8????##這個(gè)就是關(guān)鍵字參數(shù)