#-*- coding:UTF-8 -*- # python中定義一個函數要使用def語句,依次寫出函數名、括號、括號中的參數和冒號:,而後在縮進塊中寫函數體, # 函數的返回值用return返回 def my_abs(x): if x>=0: return x else: return -x #若是沒有return語句,函數執行完畢也會返回結果,結果爲None # return None 能夠簡寫爲return # 定義一個什麼都不作的空函數,能夠用pass語句 def nop(): pass # 調用函數時,若是參數個數不對,python解釋器會自動檢查出來,跑出TypeError # my_abs(1,2) # TypeError: my_abs() takes exactly 1 argument (2 given) #若是參數類型不對,Python解釋器沒法幫咱們檢查。 # my_abs('A') #內置函數 abs會檢查出參數錯誤 abs('A') # TypeError: bad operand type for abs(): 'str' # 修改一下my_abs的定義,對參數類型作檢查,只容許整數和浮點數類型的參數,數據類型檢查能夠用內置函數instance實現: def my_abs(x): if not isinstance(x,(int,float)): raise TypeError("bad operand type") if x>=0: return x else: return -x my_abs('A') # TypeError: bad operand type # 返回多個值 import math def move(x,y,step,angle=0): nx=x+step*math.cos(angle) ny=y=step*math.sin(angle) return nx,ny x,y=move(100,100,60,math.pi/6) print x,y #同時得到返回值151.961524227 30.0 #其實這只是一種假象,返回的是單一直 r=move(100,100,60,math.pi/6) print r # (151.96152422706632, 29.999999999999996) #返回值原來是一個tuple