Python 函式定義 呼叫 迭代器 生成器 遞迴和推導式
1 函式定義
- 什麼是函式
- 函式定義, 函式名, 函式體以及函式的調⽤用
- 函式的返回值
- 函式的引數
函式: 對程式碼塊和功能的封裝和定義,這⾥裡里的函式名的命名規則和使⽤用和變數量基本⼀一樣
def 函式名():
函式體 #函式體: 就是函式被執⾏行行之後要執⾏行行的程式碼
函式的調⽤用: 使⽤用函式名可以調⽤用函式, 寫法: 函式名(), 這個時候函式的函式體會被執⾏
def apple(): print("你好") print("中國") apple() 結果如下: 你好 中國
執行效果如下
執行結果怎麼來描述和獲得呢? 這個就涉及到函式的返回值的問題.
函式的返回
執⾏行行完函式之後. 我們可以使⽤用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="早安") 結果如下: 中國 早安 你好
- 傳參 給函式傳遞資訊的時候將實際引數交給形式引數的過程被稱為傳參.
如果我們需要給⼀一個函式傳參, ⽽而引數⼜又是不確定的. 或者我給⼀一個 函式傳很多引數, 我的形參就要寫很多.可以考慮使⽤用動態引數. 形參的第三種: 動態引數