python---函式引數、變數
·函式的引數
··引數
1、形式引數:parameter--形式引數
建立函式時,小括號內的引數
2、實際引數:argument--實參
函式呼叫時,小括號內傳遞進去的引數
··函式文件
1、直接書寫字串
2、用#標記單行的註釋
3、可以用print(‘內容’)直接輸出內容
#-- coding: utf-8 --
#這個函式求兩個數值之和
def add(num1,num2):
'把num1和num2 的和進行返回'#這行字串是一個註釋
print ('求兩個值的和')
return num1+num2
print add(1,2)
函式文件的讀取:
1、函式名.doc 兩個下劃線 屬性名 doc裡面儲存文字與註釋
int.doc
2.help(函式名)
help(str)
··關鍵字引數
定義了關鍵字的引數
1、位置引數:
直接給引數(和位置有關--一一對應)
2、關鍵字引數
def myFunction(num1,num2): print num1,num2 myFunction(num2='world',num1='hello') 1、位置引數與關鍵字引數混用的時候,位置引數必須在關鍵字 引數的前面 def myFunction(a,b,c): print a,b,c myFunction(a='hello','world','python') 返回錯誤 2、不要給同一個形參多次賦值 def myFunction(a,b,c): print a,b,c myFunction(a='hello',b='world',b='python') 返回錯誤
···預設引數
是定義了預設值的引數 def myFunction(a='hello',b='world'): print a,b myFunction('hhe','dsb') 返回hehe das1、預設引數與位置引數混用的時候,位置引數必須在預設引數之前,位置引數要前面放 def myFunction(a='hello',b='world'): print a,b myFunction(,'dsb') 返回錯誤 2、預設引數只能在函式定義階段賦值一次(僅僅一次) def myFunction(a='hello',b='world'): print a,b myFunction() 關鍵字引數在函式呼叫時候定義,預設引數在函式定義的時候賦值。
····可變長引數(收集引數)
1、在引數前面加上*
將所有引數打包元祖,進行輸出
def fun(*a): print a fun('hehe','hello')
2、在引數上面加**
將所有引數打包成字典
·······命名關鍵字引數
可變長引數後面的引數應該使用命名關鍵字引數
def fun(*a,b): print a fun('hehe','hello',b='world') def fun(b,*a): print a fun('hehe','hello','world')
1、可變長引數必須在位置引數後
print函式的引數就是可變長引數,輸出元祖
API文件如何檢視 help 或者F1
函式和過程
函式 function
過程 procedure
python 只有函式 ,沒有過程
····返回值
即便沒有在函式中寫return語句,函式也會返回一個結果,這個結果為None,為空資料型別。如果要返回多個值,可以直接書寫,多個值之間用逗號隔開,返回值為一個元祖。···函式變數的作用域變數有作用域(變數的可見性)
1、區域性變數:local variable
1、定義在函式內部的變數 2、先賦值,後使用 3、作用範圍從定義開始到包含程式碼塊結束
2、全域性變數 global variable
1、定義在函式的外部 2、先賦值後使用 3、作用範圍:整個檔案,可以被多個函式呼叫 4、如果區域性變數與全域性變數發生衝突,以區域性變數為準 def fun1(para1): print para1 def fun2(para1): print para1 a=10 def fun3(para1): a=20 print para1 fun1(a) fun2(a) fun3(a)
在函式內部訪問全域性變數的時候,在函式內部建立一個相同的區域性變數,原來區域性變數不變
a=10
def fun3():
a=20
print a
fun3()
print a
3、global 全域性變數
a=10 def fun3(): global a a=20 print a fun3() print a 結果返回兩個20 定義全域性變數(如果在函式中修改global定義的變數,全域性變數跟著改變)
·內嵌函式
定義在函式內部的函式:內嵌函式(內部函式)
內部函式的整個作用域,都在外部函式之內(從定義開始到包含它的程式碼塊結束)
1、外部函式的區域性變數與內部函式的區域性變數發生命名衝突,以內部函式的區域性變數優先 2.外部函式不能訪問內部函式的區域性變數 3.在內部函式中訪問外部函式的區域性變數時,不能進行a+=1,這樣的操作,原因就是a+1中的區域性變數a沒有賦值。
#lambda表示式
python 允許使用lambda表示式建立匿名函式
···匿名函式
沒有函式名的函式:
lambda表示式:
1、關鍵字:lambda
2、建立形式:lambda函式的引數:函式的實現
3、lambda語句構建了一個函式物件,返回一個函式物件的資訊,只需要賦值
fun=lambda a:a+1 print fun(3)
4、如果傳入多個引數
fun=lambda a,b,c:a+b+c print fun(2,3,4,)··作用 1、只需要使用一次,更加精簡,不要單獨建立函式2、簡化程式碼,提高程式碼的可讀性
函式的巢狀與遞迴
··函式的巢狀:在一個函式中呼叫其他函式
解一元二次方程
ax^2+bx+c=0 x=frac{-bpm{sqrt{b^2-4ac}}}{2a} def jieFangCheng(a,b,c):#先判斷方程有沒有解 if qiuJie(a,b,c):#判斷qiuJie()返回的真還是假 #繼續解方程求出所有的解 delta = b*b-4*a*c x1=(-b+delta**0.5)/2*a x2=(-b-delta**0.5)/2*a print x1,x2 else: print '無解' def qiuJie(a,b,c): delta=b*b-4*a*c if delta>=0: return True else: return False jieFangCheng(1,1,1) jieFangCheng(1,1,-1)
··遞迴
遞迴:自己呼叫自己
def factorial(n): if n==1: return 1 return n*factorial(n-1) print(factorial(4))
注意:防止無窮遞迴 與迴圈不同
漢諾塔
def han(a,b,c,n): if n==1: print a+'---'+b else: han(a,c,b,(n-1)) print a+'----'+b han(c,b,a,(n-1)) han('A','B','C',3)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2325/viewspace-2804797/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python函式變長引數Python函式
- Go函式接收可變引數Go函式
- PHP 函式可變數量的引數列表PHP函式變數
- 函式引數 引數定義函式型別函式型別
- 遞迴函式,可變引數列表遞迴函式
- 函式呼叫引數變數傳值的問題函式變數
- golang學習之路之函式可變引數Golang函式
- Javascript函式引數求值——Thunk函式JavaScript函式
- 函式基礎和函式引數函式
- 函式、引數、解構函式
- 函式引數詳解函式
- Day10 函式基礎+函式三種定義形式 + 函式的返回值、物件和引數 + 可變長引數函式物件
- 3.3.2 函式的預設引數和佔位引數 函式過載函式
- Swift 呼叫 Objective-C 的可變引數函式SwiftObject函式
- TypeScript 函式可選引數和預設引數TypeScript函式
- Python函式/動態引數/關鍵字引數Python函式
- Python函式引數總結Python函式
- JavaScript函式傳遞引數JavaScript函式
- 函式的引數傳遞函式
- 陣列作為函式引數陣列函式
- 程式中的函式引數函式
- 函式中引數傳值函式
- ES6函式引數函式
- 自己實現一個簡單可變引數函式函式
- php函式之如何用預設引數和可變長度引數方式傳遞?PHP函式
- 函式外與函式內的變數函式變數
- C++行內函數、函式過載與函式預設引數C++函數函式
- 『無為則無心』Python函式 — 29、Python變數和引數傳遞Python函式變數
- python---函式定義Python函式
- python---之sorted函式Python函式
- Javascript 函式和變數提升JavaScript函式變數
- Python函式的位置引數、關鍵字引數精講Python函式
- 函式的動態引數 及函式巢狀函式巢狀
- 第 8 節:函式-函式定義和引數函式
- 對 “C語言指標變數作為函式引數” 的個人理解C語言指標變數函式
- setInterval 回撥函式傳引數函式
- 函式的關鍵字引數函式
- 函式作為引數傳遞函式