Python學習小結---函數

函數

函數是帶名字的代碼塊,用於完成具體的工做。函數就是爲了簡化工做,用於執行特定任務的代碼序列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
相關文章
相關標籤/搜索