python---函式引數、變數

ldzsl發表於2021-09-09

·函式的引數
··引數
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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章