函式分類:
是否存在返回值
|-- 有返回值的函式
使用return關鍵字返回結果
函式遇到return關鍵字,則立刻返回
|-- 無返回值的函式
是否存在引數
|-- 有參函式
引數的個數,根據情況任意
引數的型別,是任意型別
|-- 無參函式
函式定義者
|-- 系統函式
由官方定義的函式
print、input、type
|-- 第三方定義
需要安裝這些模組,才能使用
pip install 模組名稱
pip(python install package)
|-- 自定義函式
我們寫的函式
注意:(函式、變數……)命名時一定要注意,和系統的全域性函式不要衝突!!
全域性變數和區域性變數:
全域性變數:
直接定義在py(模組)檔案中的變數
區域性(本地)變數:
定義在函式內部的變數叫做區域性變數
因此只能在函式內部使用,訪問在外間訪問到!!!
注意:全域性變數在函式直接訪問,可以正常訪問,如果要在函式內部修改全域性變數,python不讓修改的
如果要一定強制改呢?提前宣告 這個函式需要修改某個全域性變數
在函式的第一行,global關鍵字宣告需要修改全域性變數
函式呼叫的本質
函式本質就是乙個物件
壓棧(push):將函式從堆記憶體中放到棧中執行
彈棧(pop):函式執行完成後出棧記憶體
函式本質就是乙個物件,引數的型別,是任意型別
函式引數:
預設值引數:
就是說,如果函式的引數,在大多數情況下,值是固定的乙個值,此時可以使用預設值引數
這個時候,如果不傳該引數,值就取預設的,如果傳遞了,則按照傳遞的算。
注意:預設值引數,一定要寫在普通引數之後
可變引數:
在python,如果乙個函式中引數可能有很多(這些引數,也可以沒有),建議將這種引數設定為可變引數
引數名稱(習慣性args)
注意:可變引數預設是以元組封裝所有引數
命名(關鍵字)引數:
函式遞迴:
1、什麼是遞迴
以**論英雄
有兩個條件:
1、函式自身呼叫自身
2、一定要有終止條件!!(否則是乙個死迴圈)
注意:python中,不允許遞迴超過1000次,當然如果一定要調整,可以使用如下**:
import sys
# 獲取遞迴限制次數
sys.getrecursionlimit()
# 重新設定遞迴限制次數
sys.setrecursionlimit(10000)
Python函式入門
def f1 a,b,c 0,args,kw a,b 必選引數 c 預設引數 arg 可變引數 kw 關鍵字引數 print a a,b b,c c,args args,kw kw def f2 a,b,c 0,d,kw a,b 必選引數 c 預設引數 d 命名關鍵字引數 kw 關鍵字引數 prin...
python入門2 函式
函式格式 def sub x,y return x y print sub 3,2 控制台輸出1 關鍵字引數,位置引數 def test x y z 10 print x,y z test 1,2,3 控制台輸出1,2,3 test 1,2 控制台輸出1,2,10 test x 1,z 3,y 2 ...
python 快速入門函式
def func print hello world return hello world a func print a hello world hello world def func args a,b,c print a,b,c func args 10,20,helloworld 10 20 ...