python學習之路 五:函數式編程

來源:互聯網
上載者:User

標籤:rgs   實參   reg   color   調用函數   維護   span   運算式   函數   

本節重點

  • 掌握函數的作用、文法

  • 掌握範圍、全域變數與局部變數知識

 

 一.函數編程基礎知識

1.基本定義

    函數是指將一組語句的集合通過一個名字(函數名)封裝起來,要想執行這個函數,只需要調用函數名即可。

2.特性

    ?(1)減少重複代碼

    ?(2)使程式變得可擴充

    ?(3)使程式變得易維護

3.文法定義

def sayhi():  # 函數名    print("Hello,i‘m nobody!")
 二.函數參數

1.形參變數

    只有在被調用時才分配記憶體單元,在調用結束時,即可釋放所分配的記憶體單元。因此,形參只在函數內部有效。函數調用結束返回主調用函數後則不能再使用該形參變數。

def stu_register(name,age,course,country)    pass

2.實參

    可以是常量、變數、運算式、函數等,無論實參是何種類型的量,在進行函數調用時,它們都必須有確定的值,以便把這些值傳給形參。因此應預先用賦值,輸入等方法使參數獲得確定值。

stu_register(‘宋江‘,30,‘電腦‘,‘CN‘)

3.預設參數

?    ?定義函數形參時,可以給形參一個預設值,這種參數就叫預設參數。規定預設參數必須在位置參數之後。

def stu_register(name,age,course,country="CN")    pass

4.關鍵參數

    ?正常情況下,給函數傳參數要按順序,不想按順序就可以使用關鍵參數,只需指定參數名即可(指定了參數名的實參就是關鍵參數),但記住一個要求就是,關鍵參數必須放在位置參數(一位置順序確定對應關係的參數)之後。

stu_register(‘宋江‘,30,country=‘CN‘,course=‘電腦‘)

5.非固定參數

    ?若你的函數在定義時不確定使用者相傳多少個參數,就可以使用非固定參數。

def stu_register(name,age,*args):  # *args以元組形式傳入    pass
def stu_register(name,age,*args,**kwargs):  # *kwargs以字典形式傳入    pass
 三.傳回值

    ?函數外部的代碼要想擷取函數的執行結構,就可以在函數裡使用return語句把結果返回。

def stu_register(name,age,course=‘PY‘,country=‘CN‘):    # 註冊代碼    if 註冊成功:        return True    else:        return False

    ?返回多個值時可以使用元群組類型

def stu_register(name,age,course=‘PY‘,country=‘CN‘):    # 註冊代碼    if 註冊成功:        return (True,s_id)    else:        return (False,失敗資訊)
 四.全域與局部變數
  • 在函數中定義的變數稱為局部變數,在程式的一開始定義的變數稱為全域變數。

  • 全域變數範圍是整個程式,局部變數範圍是定義該變數的函數。

  • 當全域變數與局部變數同名時,在定義局部變數的函數內,局部變數起作用;在其他地方全域變數起作用。

    範圍

            程式設計概念,通常來說,一段程式碼中所用到的名字並不總是有效 /可用的,而限定這個名字可用性的代    ?    ?碼?範圍就是這個名字的範圍。

 

 五.嵌套函數

    函數定義在另一個函數體內,就叫嵌套函數。

name = ‘Alex‘def change_name():    name = ‘Alex2‘    def change_name2():        name = ‘Alex3‘        print("第三層列印",name)    change_name2()  # 調用內層函數    print("第二層列印",name)change_name()print("最外層列印",name)
 六.匿名函數

?    ?匿名函數就是不需要顯示的指定函數名

calc = lambda x,y:x**y
 七.高階函數

    ?變數可以執行函數,函數的參數能接受變數,name一個函數就可以接受另一個函數作為參數,這種函數就稱之為高階函數。

    ?只需滿足一下任意一個條件,即時高階函數

  • 接受一個或多個函數作為輸入

  • return 返回另一個函數

def add(x,y,f):    return f(x) + f(y)res = add(3,-6,abs)print(res())

 

python學習之路 五:函數式編程

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.