1、函數定義
赤城網站制作公司哪家好,找創新互聯!從網頁設計、網站建設、微信開發、APP開發、響應式網站開發等網站項目制作,到程序開發,運營維護。創新互聯于2013年創立到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選創新互聯。
①使用def關鍵字定義函數
②
def 函數名(參數1.參數2.參數3...):
"""文檔字符串,docstring,用來說明函數的作用"""
#函數體
return 表達式
注釋的作用:說明函數是做什么的,函數有什么功能。
③遇到冒號要縮進,冒號后面所有的縮進的代碼塊構成了函數體,描述了函數是做什么的,即函數的功能是什么。Python函數的本質與數學中的函數的本質是一致的。
2、函數調用
①函數必須先定義,才能調用,否則會報錯。
②無參數時函數的調用:函數名(),有參數時函數的調用:函數名(參數1.參數2.……)
③不要在定義函數的時候在函數體里面調用本身,否則會出不來,陷入循環調用。
④函數需要調用函數體才會被執行,單純的只是定義函數是不會被執行的。
⑤Debug工具中Step into進入到調用的函數里,Step Into My Code進入到調用的模塊里函數。
Python 函數定義以及參數傳遞
1.函數定義
#形如def func(args...):
doSomething123
以關鍵字def 開頭,后面是函數名和參數下面是函數處理過程。
舉例:
def add( a, b ):
return a+b12
參數可以設定默認值,如:
def add( a, b=10 ): #注意:默認值參數只會運算一次
return a+b12
默認值參數只會運算一次是什么意思?
def func( a, b=[] ): #b的默認值指向一個空的列表,每次不帶默認值都會指向這塊內存
b.append(a) return b
print(func(1))#向默認的空列表里加入元素1 ,默認列表里已經是[1]print(func(2))#向默認的列表里加入元素2,默認列表里已經是[1,2]print(func(3,[]))#向b指向的空列表里加入元素1 ,默認列表里還是[1,2]print(func(4))#向默認的列表里加入元素4,默認列表里已經是[1,2,4]'''
結果:
[1]
[1, 2]
[3]
[1, 2, 4]
'''12345678910111213141516
這下明白為什么默認參數只計算一次了吧,函數參數不傳遞時默認值總是指向固定的內存空間,就是第一次計算的空間。
2.參數傳遞
def func(a, b):
print('a=%d, b=%d' % (a,b) )12
在使用函數時可以如下方式,結果都是相同的
func(10,20) #不使用參數名,需要按參數順序傳遞func(a=10,b=20) #使用參數名可以不按順序傳遞func(b=20,a=10)#結果:a=10, b=20a=10, b=20a=10, b=201234567
如果函數定義形式如下方式:
def func(*args): #這種定義會把傳遞的參數包成元組
print(args,type(args))
func(10,20)#結果:#(10, 20) class 'tuple'1234567
舉一個和上述過程相反的例子:
def func(a,b):
print('a=%d, b=%d' % (a,b) )
a = (10, 20)
func(*a) #在調用函數使用`*`則會把元組解包成單個變量按順序傳入函數#結果:a=10, b=20123456
總結:*號在定義函數參數時,傳入函數的參數會轉換成元組,如果 *號在調用時則會把元組解包成單個元素。
另一種定義:
def func(**kw):#使用**定義參數會把傳入參數包裝成字典dict
print(kw, type(kw) )
func(a=10,b=20)#這種函數在使用時必須指定參數值,使用key=value這種形式#結果:{'b': 20, 'a': 10} class 'dict'12345
相反的例子:
def func(a,b):
print('a=%d, b=%d' % (a,b) )
d = {'a':10, 'b':20 }
func(**d) #在調用時使用**會把字典解包成變量傳入函數。12345
def func(*args, **kw):#這種形式的定義代表可以接受任意類型的參數
print(args,kw )12
總結:**號在定義函數參數時,傳入函數的參數會轉換成字典,如果 **號在調用時則會把字典解包成單個元素。
lambda表達式
lambda表達式就是一種簡單的函數
形如 f = lambda 參數1,參數2: 返回的計算值
例如:
add = lambda x,y: x+y
print(add(1,2))'''
結果:3
'''12345
python系統提供了下面常用的函數:
1. 數學庫模塊(math)提供了很多數學運算函數;
2.復數模塊(cmath)提供了用于復數運算的函數;
3.隨機數模塊(random)提供了用來生成隨機數的函數;
4.時間(time)和日歷(calendar)模塊提供了能處理日期和時間的函數。
注意:在調用系統函數之前,先要使用import 語句導入 相應的模塊
該語句將模塊中定義的函數代碼復制到自己的程 序中,然后就可以訪問模塊中的任何函數,其方 法是在函數名前面加上“模塊名.”。
希望能幫到你。