python中函式有兩種,一種是內建函式,一種是自定義函式。這裡不曉得有沒有大牛知道為什麼內建函式可以直接呼叫,沒見在**定義了。另外一種是自定義函式,函式的定義方式如下,關鍵字def後面跟空格,再跟函式名,引數,函式體,函式名的命名可以使用posix命名或者小駝峰命名,函式定義了,但是不會自發執行函式體中的內容,只有在程式中顯示的呼叫了函式才會執行函式體中的內容。
定義函式
def func(params): #必須帶:並且:後面必須為**塊,切**塊不能為空
pass
呼叫函式
func(needparams) #呼叫函式直接用函式的方法名即可,且當引數不是收集引數時,實參必填
函式中引數的作用域
對於全域性變數,函式可以自行呼叫,但是函式內部的變數則只能在內部使用,除非定義成全域性變數,globals()和locals()為 兩個內建函式,呼叫他們會返回全域性引數的字典和區域性引數的字典。對於變數,沒有做特殊定義,只能區域性變數在區域性和 其內部呼叫,總之是只能從裡面訪問外面不能從外面訪問裡面。例外:函式內部的變數可以用global宣告成全域性變數
函式中的引數:
·普通引數:就是一般的引數,可以根據位置來傳參也可以通過關鍵字來傳參
def commonargs(name,age):pass
commonargs('zhangsan',20) or commonargs(name = 'lisi' ,20)
·預設引數:也叫關鍵字引數,在定義函式時候給引數乙個預設的值,所以這個引數可以傳參也可不傳參,
def defaultargs(name,age = 18):pass
defaultargs('zhangsan') or defaultargs('zhangsan',age = 20)
·收集引數:在不確定有多少個傳入引數的時候可以使用收集引數,收集引數又分普通收集引數和關鍵字收集引數
def collectioncargs(*args):pass #普通收集引數 def collectiondargs(**args):pass #關鍵字收集引數
collectioncargs() orcollectioncargs('1',1)collectiondargs() orcollectiondargs(name ='1',age=2)
對於引數,用的最多的是混合使用,混合使用引數,一定是普通引數在前面,預設引數(關鍵字引數)在後面,當普通收集引數後面有普通引數時,給這個 普通引數傳值一定要用關鍵字傳值,
def egargs(name,age,*args,hobby,***='man',**othargs,like = 'dodo'):pass
在這個函式中,前面都是普通引數,從***引數後面都是關鍵字引數,順序不能錯,且給在收集引數後面的引數傳值時一定要用關鍵字傳值
egargs('張三',18,1,2,'33',hobby='jump',height='180',like='toto')
遞迴函式:函式的自我呼叫,優點:**邏輯清晰,更貼近邏輯 。缺點:消耗效能,
設計原型:柱子a,柱子b,柱子c ,碟子 n(不確定的正整數)
把n個碟子從a -> c ,對於這樣的問題,看起來很複雜,其實需要我們一層層的揭開就好理解了,就像高中數學,我們從一般推理出特殊,假定只有2個盤子,我們的做法是 a->b, a->c, b->c, 那麼如果有三個盤子呢? 我們做法其實也三步 1:把a上的兩個盤子移到b上,2:把a上的最後乙個盤子移到c上,3:把b上的兩個盤子移到c上,
那麼現在假定有n個 def gamenuo(n,a,b,c): 要把n個盤子從a移動到c借助b
1:把n-1個盤子從a移動到b借助c gamenuo(n-1,a,c,b)
2:把a上的乙個盤子移動到c上
3:把b上的n-1個盤子移動到c上借助a gamenuo(n-1,b,a,c) ,至此盤子移動完畢,隨著n的減少,當n = 2時就按照已有的程式執行,這就是遞迴,根據特殊情況推出一般情況
def gamenuo(n,a,b,c):
if n == 1 :
print(a,'->',c)
gamenuo(n-1,a,c,b)
pring(a,'->',c)
gamenuo(n-1,b,a,c)
Python 學習基礎篇 函式
函式是一段特定功能的,被封裝的,可重用的程式 段。給這段程式乙個名稱,然後就可以在其他程式的任何地方通過這個名稱任意地執行這個斷碼塊。1 方式一 乙個變數已在函式外部定義,若要在函式內部進行複製的話,在函式內部使用global關鍵字進行定義。usr python defsum global x pr...
函式(一) python基礎篇
函式是對某一特定功能的 塊的封裝 語法 def 函式名 形參列表 函式說明文件 函式體 說明 def python定義函式的關鍵字 固定寫法 函式名 自定義命名 識別符號,不要關鍵字 要求 所有的字母都小寫,多個單詞之間用下劃線隔開 不能用系統提供的函式名 類名 見名知義 固定寫法 形參列表 格式 ...
python基礎篇 python基礎篇(三)
使用者輸入 bb 歡迎來到中國資訊網,您的支援是我們的動力!bb n請輸入您的名字 aa input bb 此處可先定義變數,也可將要展示的內容直接輸入在裡面 print 歡迎您 aa 輸出歡迎來到中國資訊網,您的支援是我們的動力!請輸入您的名字 張三 輸入 張三 歡迎您 張三!結果 注意1 sub...