python 定義函數


#-*- 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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM