1. 程式人生 > >Python 函式定義 呼叫 迭代器 生成器 遞迴和推導式

Python 函式定義 呼叫 迭代器 生成器 遞迴和推導式

1 函式定義

  • 什麼是函式
  • 函式定義, 函式名, 函式體以及函式的調⽤用
  • 函式的返回值
  • 函式的引數

函式: 對程式碼塊和功能的封裝和定義,這⾥裡里的函式名的命名規則和使⽤用和變數量基本⼀一樣

def 函式名():   

      函式體              #函式體: 就是函式被執⾏行行之後要執⾏行行的程式碼

函式的調⽤用: 使⽤用函式名可以調⽤用函式, 寫法: 函式名(), 這個時候函式的函式體會被執⾏


def apple():
    print("你好")
    print("中國")
apple()

結果如下:
你好
中國

執行效果如下

                                                 

1
執行結果怎麼來描述和獲得呢? 這個就涉及到函式的返回值的問題.

函式的返回

執⾏行行完函式之後. 我們可以使⽤用return來返回結果.

  • 函式中遇到return, 此函式結束, 不再繼續執⾏
  • 給函式的調⽤用者⼀一個訪問結果

總結:

  • 如果return什什麼都不寫 或者 ⼲乾脆不寫return .那麼返回的就是None
  • 如果return後⾯面寫了了⼀一個值. 則調⽤用者可以接收⼀一個結果
  • 如果return後⾯面寫了了多個結果, 則調⽤用者可以接收⼀一個tuple, 調⽤用者可以直接解構成 多個變數

def apple():
    print("你好")
    print
("中國") return "晚安" # 返回一個結果,返回的將是字串 print("早安") # 上方有return 將不執行 changan = apple() print(changan) print(type(changan)) print("---------完美分割線-----------") def apple1(): print("你好") print("中國") return "晚安","早安" #返回多個結果,由於是逗號分割,結果將為元組 changan1 = apple1() print(changan1) print(type(changan1)) 結果如下: 你好 中國 晚安 <class 'str'> ---------完美分割線----------- 你好 中國 ('晚安', '早安') <class 'tuple'>

函式的引數  

引數, 函式在調⽤用的時候指定具體的一個變數量的值. 就是引數. 

語法:

def 函式名(引數列表):   

       函式體

使用如下所示,呼叫apple時,引數 "中國"傳遞進入程式碼塊.

def apple(chat):
    print("你好", chat)  # 可以用逗號,
    print("你好" + chat)  # 可以用+


apple("中國")

結果如下

你好 中國
你好中國

關於引數: 

  • 形參 寫在函式宣告的位置的變數量叫形參.  形式上的⼀一個完整. 表⽰示這個函式需要xxx

            1.位置引數  按照位置來賦值, 到⽬目前為⽌止, 我們編寫的函式都是這種

def apple(a, b, c):
    print(a)  # 對"你好"
    print(b)  # 對"中國"
    print(c)  # 對"早安"


apple("你好", "中國", "早安")

            2.預設引數  在函式宣告的時候, 就可以給出函式引數的預設值. 在調⽤用的時候可以 給出具體的值, 也可以不給值, 使⽤用預設值. 預設引數必須在位置引數之後.

def apple(a, b, c="臺灣"):
    print(c)  # 可以用逗號,
    print(b)  # 可以用+
    print(a)  # 可以用+

apple("你好", b="中國")
print("------------")
apple("你好", b="中國", c="上海")

結果如下:
臺灣
中國
你好
------------
上海
中國
你好

            3.動態傳參,分為兩種,動態接受位置引數*任意引數名 和動態接受關鍵字引數*args






  • 實參 在函式調⽤用的時候給函式傳遞的值. 叫實參, 實際執⾏行行的時候給函式傳遞的資訊. 表⽰示給函式 xxx

            1.位置引數   函式呼叫時,按順序歸為apple("你好","中國","早安")

def apple(a, b, c):
    print(a)  # 對"你好"
    print(b)  # 對"中國"
    print(c)  # 對"早安"


apple("你好", "中國", "早安")

結果如下:
你好
中國
早安

            2.關鍵字引數   函式呼叫時,將部分或全部引數指定好,我們不需要記住每個參 數的位置. 只要記住每個引數的名字就可以了了

def apple(a, b, c):
    print(c)  # 對"早安"
    print(b)  # 對"中國"
    print(a)  # 對"你好"


apple(a="你好", b="中國", c="早安")
結果如下:
早安
中國
你好

            3.混合引數(位置引數與關鍵字引數混合),在調⽤用函式的時候即可以給出位置引數, 也可 以指定關鍵字引數. 要求位置引數必須在 關鍵字引數前面.

def apple(a, b, c):
    print(c)  # 可以用逗號,
    print(b)  # 可以用+
    print(a)  # 可以用+


apple("你好", c="中國", b="早安")
結果如下:
中國
早安
你好
  • 傳參 給函式傳遞資訊的時候將實際引數交給形式引數的過程被稱為傳參.

如果我們需要給⼀一個函式傳參, ⽽而引數⼜又是不確定的. 或者我給⼀一個 函式傳很多引數, 我的形參就要寫很多.可以考慮使⽤用動態引數.  形參的第三種: 動態引數