python中函數的定義與調用

在前面的學習中,其實咱們已經接觸到了一些函數,好比:

type() 函數能返回數據的類型python

len() 函數能返回數據的長度函數

print() 函數能在控制檯將內容輸出出來學習

range() 函數能生成整數數列spa

這些函數都是python的內置函數,咱們能夠直接調用,後面咱們將會接觸到更多的python的內置函數。經過觀察,咱們不難發現,函數有如下兩個特色:blog

  • 能夠具體完成某個功能
  • 能夠重複使用

1、python中函數的定義

除了python 內置函數外,咱們還能夠根據需求自定義函數,函數的定義有如下規則:內存

  • 使用關鍵字def 來向python發出信號,標識你要定義一個函數;
  • def 後跟具體的函數名稱,注意,自定義函數的名稱最好不要跟內置函數名稱發生衝突;
  • 函數名稱後跟一對圓括號,圓括號內存放調用該函數時須要傳入的參數;
  • 在函數體內,咱們可使用 一對 三引號 來定義文檔字符串,這就至關因而給函數加了一段註釋,說明該函數的具體做用;
  • 函數通常以return 結束,用來返回值方便調用,若是沒有return語句,則默認返回None;
  • 函數遇到return就會終止,即return後面的代碼將不會被執行。

一、函數的語法:作用域

 舉一個比較簡單的例子:文檔

 二、函數的調用

2、函數中的參數

一、形式參數和實際參數

  • 形式參數:函數定義時候的參數
  • 實際參數:函數調用時候的參數

二、函數的位置參數

  • 位置參數:形式參數和實際參數要一一按照順序對應,很少很多,位置同樣。

 關於函數的參數傳遞,咱們須要注意以下幾點:字符串

  • 調用函數傳遞的參數個數必定要和函數定義的參數個數一致,不然會報錯;
  • 注意函數體裏面參數的類型,要輸入正確的參數類型,不然會報錯。

三、函數的默認參數

  • 在函數定義的時候,給形式參數一個默認值,即爲默認參數;
  • 在函數定義時,若是有默認值,在調用時若是傳入了實際參數,那麼默認參數不會生效,若是沒有傳入實際參數,默認參數會生效。

 四、位置參數與默認參數

一個函數有的時候不只有位置參數,還會有默認參數,若是這兩種參數同時存在的時候,就必定要把默認參數放在位置參數的後面,不然會報錯!!變量

 五、關鍵字參數

  • 做用:是相對於位置參數講的,能夠提升函數調用時候的可讀性,更加容易理解實際參數的意義;
  • 關鍵字的名字===形式參數;
  • 關鍵字參數區別位置參數,能夠不按照順序進行調用,能夠交換順序;
  • 關鍵字參數也要放到位置參數的後面。

六、不定長參數

不定長參數包括位置不定長參數和關鍵字不定長參數:

  • *args:位置不定長參數;
  • *kwargs:關鍵字不定長參數

 (1)位置不定長參數:*args

  • *args:在函數內部的表現形式:names是一個元組
  • *args:能夠接收從函數調用的時候多餘的位置參數
  • *args:加在其餘位置參數的後面

(2)關鍵字不定長參數:*kwargs

上面咱們講了不定長位置參數,這一節咱們來掌握下帶有關鍵字的不定長參數。它與普通的不定長參數的區別就是帶有關鍵字,且必須指定關鍵字,不然識別不了。

 3、局部變量和全局變量

一、定義

  • 局部變量是在函數內部聲明的變量,只能在該函數調用它,若是試圖在超出範圍的地方調用,程序就會報錯;
  • 全局變量是在整個整個py文件中定義的變量,全局範圍內均可以訪問。

二、局部變量和全局變量須要注意的幾個點

  • 全局做用域能獲取局部變量嗎??? 不能!!!
  • 全局做用域能修改局部變量嗎??不能!!!
  • 局部做用域能獲取全局變量嗎??能!!!  
  • 局部變量能修改全局變量嗎??不能!!!

 三、局部做用域修改全局變量的方法

  • global 關鍵字是聲明全局變量的關鍵字

 返回的結果是:27

相關文章
相關標籤/搜索