def add_end1(L=[]): L.append('end') return L def add_end2(L=None): L.append('end') return L >>>add_end1() ['end'] >>>add_end1() ['end','end'] >>>add_end2() ['end'] >>>add_end2() ['end']
def calc(*number): sum=0 for n in number: sum+=n*n return sum ##這樣既能夠把列表和元組傳進去,也能夠手動輸入多個不肯定數目的參數
##兩者通常都用於字典中 def person1(name,age,**kw): print() ##可變參數後面的命名關鍵字參數不須要*分隔符 def person2(name,age,*args,city,job): print() ##命名關鍵字參數的傳入必需要傳入參數的名字 def person3(name,age,*,city,job): print()
2.1 函數返回多個值其實是返回一個元組python
2.2 input()函數默認接受爲字符串類型,須要使用強制轉換函數app
2.3 range()函數返回的是一個整數可迭代對象,並非真正意義上的列表類型。默認必須參數爲stop。range(start,stop,step),左開右閉函數
2.4 不返回值的函數稱爲過程code
2.5 定義函數時,因爲不像C語言那樣對參數類型的定義有嚴格限制,因此若是有必要,須要對參數類型寫語句作一個檢查,防止出錯時編譯器不能提供準確的定位。對象
def my_abs(x): if not isinstance(x,(int,float)): ##類型檢查語句 raise TypeError('bad operand type') if(x>0): return x else: return -x