import math
資料型別檢查:
isinstance(x,(int,float)) #判斷x的型別是否為int或float型別
#定義函式:格式def (引數): 注意函式體要縮排
#返回用return,如果函式沒有返回執行完成自動返回return none
def (x,y,z,...):
pass
#函式體,為了保持函式完整性可以用pass
#空函式
def empty():
pass
#pass語句什麼也不做,可以用作佔位符,保持函式完整性
#python中可以返回多個值,例如遊戲中的座標等,其實返回的是乙個元組
#解ax*x + bx + c = 0函式
def quadratic(a,b,c):
x1 = b*b-4*a*c
if x1 == 0:
x2 = 0
elif x1 < 0:
return
else:
x2 = math.sqrt(x1)
x3 = (x2 - b)/(2*a)
x4 = -(x2 + b)/(2*a)
return (x3,x4)
#函式引數,必選引數,預設引數,可變引數,關鍵字引數,命名關鍵字引數,組合引數
#必選引數:
def sum(x,y): #x和y為必選引數,呼叫必須是sum(param1,param2)
pass
#預設引數:必選引數在前,預設引數在後,用預設引數可以降低呼叫函式的難度
#預設引數有乙個坑,為了不出錯。 切記!!!!預設引數必須為不可變物件!!!
def sum(x,y,z=0): #z=0為預設引數,呼叫sum(1,2)時z=0 或者 sum(1,2,3)時z=3
pass
#可變引數:注:引數為tuple和list的區別是前面加乙個*
#可變引數允許傳入0或者任意引數,呼叫的時候組裝成乙個tuple
def sum(x,y,*kw): # *kw為可變引數 , sum(1,2,3,4,5)
pass
#關鍵字引數
#關鍵字引數允許傳入0或者任意含引數名的引數,呼叫的時候組裝為乙個dict 注意與可變引數的區別
def sum(x,y,**kw): # **kw為關鍵字引數
pass
#命名關鍵字引數
#和關鍵字引數不同的是,命名關鍵字引數的引數名字只能是*後面限定的 注意python2.x中不支援
def sum(x,y,*,z,p): # *後面的引數為命名關鍵字引數
pass
#組合引數:注意引數順序
def(x,y,z=0,*kw,*,p,q,**kw,):
pass
#切記:雖然組合很多,但是不要同時使用太多組合,否則函式介面的可理解性很差
#遞迴函式:乙個函式在內部呼叫自己本身
def fact(n):
if n==1:
return 1
return n * fact(n-1)
#遞迴函式如果遞迴太大會出現棧溢位,通過尾遞迴優化
def fact(n):
return fact1(n,1)
def fact1(n,product):
if n == 1:
return product
return fact1(n-1,n*product)
python學習(二) 函式
在python中,定義乙個函式要使用def語句,依次寫出函式名 括號 括號中的引數和冒號 然後,在縮排塊中編寫函式體,函式的返回值用return語句返回。如果沒有return語句,函式執行完畢後也會返回結果,只是結果為none return none可以簡寫為return。如果想定義乙個什麼事也不做...
python初步學習 python函式 二
python是支援多種范型的語言,可以進行所謂函式式程式設計,其突出體現在有這麼幾個函式 filter map reduce lambda yield g lambda x,y x y x y,並返回結果 g 3,4 7 lambda x x 2 4 返回4的平方 16lambda函式的使用方法 冒...
Python學習筆記(二) 函式
呼叫函式 abs max min hex 整數轉換成十六進製制 資料型別轉換 int float str bool 定義函式 定義乙個函式要使用 def語句,依次寫出函式名 括號 括號中的引數和冒號 然後,在縮排塊中編寫函式體,函式的返回值用 return 語句返回。def my abs x if ...