Python 函數程式設計的基礎知識介紹

PHPz
發布: 2023-04-11 22:49:08
轉載
1567 人瀏覽過

Python 函數程式設計的基礎知識介紹

函數基礎

掌握自訂函數的基本語法規格和呼叫方法及掌握函數的各種參數的使用及呼叫規則。

1、Python函數

  • 函數( Function )是組織好的,可重複使用的,用來實現單一, 或相關聯功能的程式碼片段。
  • 函數能提高應用的模組性 ,和程式碼的重複使用率。
  • 我們已經接觸過Python提供的許多內建函數 ,例如print()。
  • 但你也可以自己建立函數,這被叫做使用者自訂函數。

2、自訂一個函數基本規則

你可以定義一個由自己想要功能的函數,以下是簡單的規則:

  1. #函數程式碼區塊以def關鍵字開頭,後接函數識別碼名稱和圓括號( )。
  2. 任何傳入參數和自變數必須放在圓括號 中間。圓括號之間可以用來定義參數。
  3. 函數的第一 -行語句可以選擇性地使用文件字串一 -用於存放函數說明。
  4. 函數內容以冒 號起始,並且縮排。
  5. returm [表達式]結束函數,選擇性地傳回一個值給呼叫方。
  6. 不含表達式的return相當於回傳 None。

3、自訂一個函數語法

定義函數的語法:

def 函数标识名称(参数列表):
“函数_文档字符串,对函数进行说明"
函数体
return [表达式]
登入後複製

預設情況下,參數值和參數名稱是按函數宣告中定義的順序匹配起來的。

4、函數的呼叫

定義一個函數只給了函數-一個名稱,指定了函數裡包含的參數,和程式碼區塊結構。

這個函數的基本結構完成以後,你可以透過另-個函數呼叫執行,也可以直接從Python提示字元執行。

如下實例呼叫了printme ( )函數:

Python 函數程式設計的基礎知識介紹

#呼叫後輸出的結果為:

Python 函數程式設計的基礎知識介紹

4、return關鍵字

  • return語句[表達式]退出函數,選擇性地向呼叫方傳回一一個表達式。
  • 不含參數值的return語句傳回None。
  • 之前的範例都沒有示範如何回傳數值,下例告訴你怎麼做:

Python 函數程式設計的基礎知識介紹

5、參數的傳遞

在python中,型別屬於物件,變數是沒有型別的:

a=[1,2,3]
a="Runoob"
登入後複製

以上程式碼中,[1,2,3] 是List型別,"Runoob」 是String型別,而變數a是沒有類型,它只是一個對象的引用(-一個指針) , 可以是List類型對象,也可以指向String類型對象。

Python函數的參數傳遞

  • 不可變類型 :在程式程式設計中的值傳遞,如整數、字串、元組。如fun(a), 傳遞的只是a的值,沒有影響a物件本身。例如在fun( a)內部修改a的值,只是修改另一個複製的對象,不會影響a本身。我們經常稱之為值傳遞。
  • 可變類型:類似程式中的引用傳遞(址傳遞),如列表,字典。如fun(la),則是將la真正的傳過去,修改後fun外部的la也會受影響。

python中-切都是物件,嚴格意義我們不能說值傳遞還是引用傳遞,我們應該說傳不可變物件和傳輸可變物件。

6、參數

以下是呼叫函數時可使用的正式參數類型:

  • 必備參數。
  • 關鍵字參數。
  • 預設參數。
  • 不定長參數。

必備參數

必備參數須以正確的順序傳入函數。呼叫時的數量必須和聲明時的一樣。

範例:

ch06-demo01-args-necessary.py
登入後複製

呼叫greeting()函數,你必須傳入一個參數,不然會出現語法錯誤:

Python 函數程式設計的基礎知識介紹

關鍵字參數

關鍵字參數和函數呼叫關係緊密,函數呼叫使用關鍵字參數來決定傳入的參數值。

使用關鍵字參 數允許函數呼叫時參數的順序與宣告時不一致,因為Python解釋器能夠用參數名稱匹配參數值。

範例:

ch06-demo02-keyword.py
登入後複製

以下實例在函數printinfo()呼叫時使用參數名稱:

Python 函數程式設計的基礎知識介紹

缺省参数

调用函数时,缺省参数的值如果没有传入,则被认为是默认值。

示例:

ch06-demo03-args-default.py
登入後複製

打印默认的age,如果age没有被传入:

Python 函數程式設計的基礎知識介紹

Python 函數程式設計的基礎知識介紹

注意:缺省值必须放在最后一个参数。

不定长参数*args

可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数。

适用于当参数个数不确定或根据调用情况其参数个数会动态变化的情况。

基本语法如下:

def函数名称(formal args, *args ):
“函数_文档字符串"
函数体
retum [表达式]
登入後複製

加了星号(* )的变量名会存放所有未命名的变量参数。选择不多传参数也可,可变长参数的类型为元组。

补充: **kw

**两个型号代表接受的是一个可变长度的 字典类型的参数。

因此,改参数必须以k-v值结构出现。

def函数名称(formal _args, **kw ):
“函数_文档字符串”
函数体
retum [表达式
登入後複製

加了星号(** )的变量名会存放所有未命名的变量参数。选择不多传参数也可,可变长参数的类型为字典。

总结: *argv和**kw的区别

两个参数必须为函数定义中参数列表中的排名最后的参数。

*argv代表该参数位置可以放任意个数的数据,最终都会转换成元组数据类型在函数体内处理。

**kw代表该参数位置可以放k=v格式的数据,最终都会转换成字典类型数据安函数体内处理。

以上是Python 函數程式設計的基礎知識介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:51cto.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板