黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

Python篇:函數(shù)

系統(tǒng) 2179 0

函數(shù)

  • 概念
  • 函數(shù)創(chuàng)建和調(diào)用
    • 空函數(shù)
    • 函數(shù)的定義與調(diào)用
    • 查看函數(shù)文檔
    • 函數(shù)返回值
    • 函數(shù)的優(yōu)勢
  • 變量作用域
    • 局部變量
    • 全局變量
      • global
  • 函數(shù)參數(shù)傳遞
    • 形參與實參
    • 參數(shù)檢查
    • 默認參數(shù)
    • 可變參數(shù)
      • 拆包
    • 關(guān)鍵字參數(shù)
    • 參數(shù)組合
  • 匿名函數(shù)
    • 應(yīng)用
  • 遞歸函數(shù)
    • 概念
    • 求階乘
    • 漢諾塔

概念

如果在開發(fā)程序時,需要某塊代碼多次,但是為了提高編寫的效率以及代碼的重用,所以把具有獨立功能的代碼塊組織為一個小模塊,這就是函數(shù).

函數(shù)創(chuàng)建和調(diào)用

空函數(shù)

定義一個什么事也不做的空函數(shù),可以用 pass 語句;
pass 可以用來作為占位符,還沒想好怎么寫函數(shù)的代碼,就可以先放一個 pass ,讓代碼能運行起來

函數(shù)的定義與調(diào)用

Python篇:函數(shù)_第1張圖片

查看函數(shù)文檔

用三引號引起來的內(nèi)容為函數(shù)的幫助文檔
Python篇:函數(shù)_第2張圖片

函數(shù)返回值

所謂“返回值”,就是程序中函數(shù)完成一件事情后,最后給調(diào)用者的結(jié)果.
沒有返回值,默認返回None
Python篇:函數(shù)_第3張圖片

函數(shù)的優(yōu)勢

從理論上說,不用函數(shù),也能夠編程,我們在前面已經(jīng)寫了程序,就沒有寫函數(shù),當(dāng)然,用python的內(nèi)建函數(shù)姑且不算了。現(xiàn)在之所以使用函數(shù),主要是:

  1. 降低編程的難度(分而治之的思想)
  2. 代碼重用。避免了重復(fù)勞動,提供了工作效率。

變量作用域

局部變量

  • 局部變量,就是在函數(shù)內(nèi)部定義的變量
  • 不同的函數(shù),可以定義相同的名字的局部變量,但是各用個的不會產(chǎn)生影響
  • 局部變量的作用,為了臨時保存數(shù)據(jù)需要在函數(shù)中定義變量來進行存儲,這就是它的作用

全局變量

  • 在函數(shù)外邊定義的變量叫做全局變量
  • 全局變量能夠在所有的函數(shù)中進行訪問
  • 如果在函數(shù)中修改全局變量,那么就需要使用global進行聲明,否則出錯
  • 如果全局變量的名字和局部變量的名字相同,那么使用的是局部變量的
  • 小技巧: 強龍不壓地頭蛇(就近原則)

global

global的本質(zhì)是聲明可以修改全局變量的指向, 即變量可以指向新的數(shù)據(jù)。
1). 不可變類型的全局變量: 指向的數(shù)據(jù)不能修改, 不使用global時無法修改全局變量。
2). 可變類型的全局變量: 指向的數(shù)據(jù)可以修改, 不使用global時可以修改全局變量。

函數(shù)參數(shù)傳遞

形參與實參

  • 定義時小括號中的參數(shù),用來接收參數(shù)用的,稱為 “形參”
  • 調(diào)用時小括號中的參數(shù),用來傳遞給函數(shù)用的,稱為 “實參”

參數(shù)檢查

調(diào)用函數(shù)時,如果參數(shù)個數(shù)不對,Python 解釋器會自動檢查出來,并拋出 TypeError;

  • 如果參數(shù)類型不對,Python 解釋器就無法幫我們檢查。
  • 數(shù)據(jù)類型檢查可以用內(nèi)置函數(shù) isinstance 實現(xiàn)

默認參數(shù)

默認參數(shù)可以降低調(diào)用函數(shù)的難度。
默認參數(shù)注意事項:
有多個參數(shù)時,變化大放前面,變化小的放后面;
必選參數(shù)在前,默認參數(shù)在后
默認函數(shù)容易出錯點 :
試一試:先定義一個函數(shù),傳入一個 list,添加一個 END 再返回.
eg:
Python篇:函數(shù)_第4張圖片

可變參數(shù)

可變參數(shù)就是傳入的參數(shù)個數(shù)是可變的,可以是 1 個、2 個到任意個,還可以是 0 個。*args

拆包

如果已經(jīng)有一個 list 或者 tuple,要調(diào)用一個可變參數(shù)怎么辦?
1). Python 允許你在 list 或 tuple 前面加一個 * 號;
2). 把 list 或 tuple 的元素變成可變參數(shù)傳進去;
eg:

            
              largs = [1,2,3]
func(largs[0],largs[1],largs[2])
func(*largs)

            
          

關(guān)鍵字參數(shù)

  • 關(guān)鍵字參數(shù)允許傳入 0 個或任意個含參數(shù)名的參數(shù);
  • 這些關(guān)鍵字參數(shù)在函數(shù)內(nèi)部自動組裝為一個 dict;
  • 關(guān)鍵字參數(shù)用**kwargs;

參數(shù)組合

  • 參數(shù)組合是指可以必選參數(shù)、 默認參數(shù)、 可變參數(shù)和關(guān)鍵字參數(shù)一起使用。
  • 參數(shù)定義的順序必須是:必選參數(shù)、 默認參數(shù)、可變參數(shù)和關(guān)鍵字參數(shù)。

匿名函數(shù)

匿名函數(shù)指一類無須定義標識符的函數(shù)或子程序。Python用lambda語法定義匿名函數(shù),只需用表達式而無需申明。(省略了用def聲明函數(shù)的標準步驟)
在這里插入圖片描述
lambda函數(shù)的語法只包含一個語句,如下:

            
              lambda arg1[, arg2,...argn]: expression

            
          

lambda函數(shù)能接收任何數(shù)量的參數(shù)但只能返回一個表達式的值

應(yīng)用

函數(shù)作為參數(shù)傳遞:
Python篇:函數(shù)_第5張圖片
作為內(nèi)置函數(shù)的參數(shù):
Python篇:函數(shù)_第6張圖片
Python篇:函數(shù)_第7張圖片

遞歸函數(shù)

概念

一個函數(shù)在內(nèi)部調(diào)用自己本身,這個函數(shù)就是遞歸函數(shù)。

求階乘

Python篇:函數(shù)_第8張圖片

漢諾塔

            
              def test(n, a, b, c):
    if n == 1:
        print(a, '--->', c)
        return
    else:
        test(n - 1, a, c, b)  # 先將n-1個從a移到b
        test(1, a, b, c)  # 再將最后一個從a移到c
        test(n - 1, b, a, c)  # 再將n-1個從b移到c


test(3, 'A', 'B', 'C')

            
          

Python篇:函數(shù)_第9張圖片


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論