函數是帶名字的代碼塊,用於完成具體的工做。函數就是爲了簡化工做,用於執行特定任務的代碼序列python
簡單的函數函數
實例:測試
def greet_user(): #def是一個關鍵字,代表你要定義一個函數,這裏的函數不須要任何信息就能夠執行 """顯示簡單的問候語""" #這是文檔字符串的註釋,通常用於函數的文檔 print("Hello!") #函數須要作得工做,就是打印這一行代碼 #當咱們執行代碼塊中的代碼是,只須要: greet_user() #-->Hello!
傳遞參數
有時候,函數須要一些信息而後作一些工做,若是咱們要傳入信息,以即可以是函數處理時能夠這麼作:code
def greet_user(username): """顯示簡單的問候語""" print("Hello, "+username.title+"!") #這裏並無處理,直接就使得函數輸出了 greet_user("jhon") #-->Hello, Jhon!
形參和實參:不少時候,咱們會搞混這兩個概念,如今咱們看看這兩個詞,從字面意思來看。形參:有形無實,從代碼來說這就是一個沒有賦值的變量,不表明任何一個數或字符等類型。實參有具體實意的變量,也就是被賦值過了,表明了一個類型,例如:i=5,這樣i就是表明了5文檔
所以,咱們來看函數greet_user(username),函數名括號中username是忽然出現的,在未使用毫無實際的意義,咱們叫它形參,greet_user("jhon")這裏"jhon"是一個字符串,帶有數據類型,是一個有實際意義的參數,咱們叫他實參,調用函數時,實參的值會被形參儲存,在函數中形參就有了實參的值,能夠直接對形參進行操做,進而改變實參,或者獲得須要實參才能計算的到的數據。(形參改變了,實參不必定會改變,取決於它的類型,是列表時,形參變了實參也會變,可是是數字字符時,實參就不會變)字符串
形參的各類形式
(1)多個形參get
函數能夠傳入多個實參,可是每次使用時必須有對應的實參 ```python
def greet_user(username,age,word):it
"""顯示簡單的問候語""" print("Hello, "+username.title+"!") print("I'm "+age+" year old!") print(word) #這裏並無處理,直接就使得函數輸出了 greet_user("jhon",18,"I'm fine") #-->Hello, Jhon! #-->I'm 18 year old! #-->I'm fine #"jhon"-儲存->username字符串 #18-存儲->age數字 #"I'm fine"-儲存->word字符串
當形參的數量大於一個時,務必要注意你想傳入的實參與其一一對應,不然會出現不可預知的問題
(2)關鍵字實參class
def greet_user(username,age,word): print("Hello, "+username.title+"!") print("I'm "+age+" year old!") print(word) greet_user(username="jhon",word="I'm fine",age=18) #-->Hello, Jhon! #-->I'm 18 year old! #-->I'm fine
見上面的代碼,咱們看見實參的位置並不與形參相對應,這就是關鍵字實參的好處了,關鍵字實參可讓你在調用時不用考慮形參的位置
(3)默認值變量
def greet_user(username,word,age=18): print("Hello, "+username.title+"!") print("I'm "+age+" year old!") print(word) greet_user(username="jhon",word="I'm fine") #-->Hello, Jhon! #-->I'm 18 year old! #-->I'm fine
以上,發如今定義函數是多了一行age=18,直接就給這個形參賦值了,這樣來講就能夠不須要另外實參來賦值,固然咱們也能夠傳入覆蓋這個默認值
(4)等效函數調用 ```python def des_pet(pet_name,anim_type="dog"): pass#一個沒有實際意義的代碼,用於測試 des_pet('willie') des_pet(pet_name='willie') des_pet('harry','hamster') des_pet(pet_name="harry",anim_type="hamster") des_pet(anim_type="hamster",pet_name="harry") #以上對代碼的調用都是能夠的 ```
返回值
函數在執行了代碼序列以後,能夠返回值,這個值能夠是數字,字符,列表,元組,字典,能不能傳函數有待測驗,js能夠
def get_num(a,b): return a+b num=get_num(10,20) print(num) #-->30