沒有return的函式,不足大丈夫。不是真函式。
不寫doc的函式,就像沒有性格的人類。
def
test
():"哈哈哈"
#說明文件
return
0print test.__doc__ #兩個下劃線,列印說明文件
引數的種類:位置引數(定義幾個必須填幾個),可選引數(預先設定預設值)。
def
test1
( a,b,c=4 ):
#位置引數a,b;可選引數c
return a,b,c #返回的是元組形式
print test1(1,2)
引數的值是區域性變數(作用域)
引數只在函式內部有用。在函式裡面需要修改全域性變數,用global定義全域性變數,再進行操作。(不推薦使用)
如何修改引數:最好使用返回值來修改引數值。
引數中**
代表字典,*
代表元組
引數匹配總結
位置匹配 func(name)
關鍵字匹配 func(key = value)
收集匹配(*
、**
) 一般:*kargs
:元組;**kwargs
:字典
元組收集func(name,arg1,arg2)
字典收集func(name,key1=value1,key1=value2)
引數匹配順序
位置匹配的引數—>關鍵字匹配的引數–>匹配的元組引數—>匹配的關鍵字引數
def
dicttest
(**kr):
return kr
print test(a = 4,c = 3,d = 6,g = 8) #列印出字典
deftupletest
(*z):
return z
print test1(1,3,1,4,[1,3,4]) #列印出元組
defmixtest
(*z,**kr):
return z,kr
print test2(1,2,3,[1,2,3],a=4,b=9)
defadd(*num):
#多個引數相加之和
d = 0
for i in num:
d += i
return d
print add(1,2,3,4,5)
print add(1,2,3)
print add(2,4,6,8,1,2,3,4,12312,12314,123,123,123)
別管那麼多複雜的,先直接把功能實現了。
抽象成函式:命名規範,偽**,引數預設值。
將函式變得更健壯,讓它可以跑很多地方,你永遠知道你的方法會返回什麼(異常處理,條件判斷)
測試:assert斷言;對函式的返回進行乙個值和型別的測試;單元測試
規範的命名方法:下劃線命名線get_doc
駝峰命名法getdoc
lambda沒有名稱,儲存的也不是**塊,而是表示式,它被用作執行很小的功能,不能在裡面使用條件語句。(可以當做乙個簡單的函式但是沒有函式名)
d = lambda x:x+1
if x > 0
else
'error'
#這個lambda表示式等價於下面的函式
defadd1
(x):
if x > 0:
return x+1
return
'error'
print d(2)
print d(-2)
g = lambda x:[(x,i) for i in xrange(0,10)] #lambda可以使用列表推導式
print g(10)
t = [1,2,3,4,5]
g = filter(lambda x:x>3, t)
遞迴就是呼叫自身
def
func1
(i):
if i<100:
return i + func1(i+1)
return i
print func1(0) #從0累加到99
python函式實驗 Python中的函式
一 定義 1 def函式名 引數 2 3 4 函式體5 6 返回值 函式的定義主要有如下要點 def 表示函式的關鍵字 函式名 函式的名稱,日後根據函式名呼叫函式,用引號標記即可 函式體 函式中進行一系列的邏輯計算,如 傳送郵件 計算出 11,22,38,888,2 中的最大數等.引數 為函式體提供...
python中的lo函式 Python 函式
函式 內建函式 print input len type print hello world 函式 引數 定義函式 def greet name print name 早上好 return 第一行def的意思是定義 define greet是 函式名 自己取的 再搭配乙個括號和冒號,括號裡面的nam...
Python中的函式
你可以定義乙個由自己想要功能的函式,以下是簡單的規則 任何傳入引數和自變數必須放在圓括號中間。圓括號之間可以用於定義引數。函式的第一行語句可以選擇性地使用文件字串 用於存放函式說明。函式內容以冒號起始,並且縮排。return expression 結束函 數,選擇性地返回乙個值給呼叫方。不帶表示式的...