欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中如何自定義函數

 更新時間:2023年01月04日 09:43:50   作者:棉猴  
這篇文章主要介紹了Python中如何自定義函數,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Python自定義函數

在Python編程中,可以使用已經定義好的函數,也可以自定義函數實現某些特殊的功能。

自定義函數的語法

在Python中,自定義函數的語法如下所示

def 函數名(參數):
 
  函數體

其中,def是關鍵字;之后跟的是函數名,通過函數名來調用該函數;函數名之后是一個圓括號,圓括號內部是函數的參數,通過參數可以將數據傳遞到函數內部;函數體是函數實現的功能。

需要注意的是(1)在圓括號之后有冒號(2)函數體要有縮進。

自定義函數的實現

圖1的代碼中代碼自定義了一個名為func的函數。

圖1 自定義函數func

其中,該自定義函數的函數名是func,i是func的參數。func()函數的功能是打印出從0到i-1的數字,i的值由外部傳遞到函數內部。

自定義函數的調用

通過圖2中的代碼調用自定義函數func()。

圖2 調用func()函數

其中,func()函數的參數設置為3,此時輸出的是0-2的數字;修改func()的參數值,如圖3所示。

圖3 修改func()函數的參數值

此時輸出的是0-4的數字。

Python自定義函數基礎概念

函數定義語法

def 函數名(形參列表):

語句塊

函數定義語句(def 語句) 的完整語法:

[@裝飾器1] [@裝飾器2] [...]

def 函數名([位置形參], [*元組形參], [命名關鍵字形參], [**字典形參]):

'''文檔字符串'''

語句塊

注: [] 中括號代表其內部可以省略

函數文檔字符串

函數內第一次未被賦值給任何變量的字符串是此函數的文檔字符串。

說明:

1. 文檔字符串通常用來說明本函數的功能和使用方法

2. 在交互模式下輸入: help(函數名) 可以查看函數的'文檔字符串'

3. 函數的文檔字符串綁定在函數的 __doc__ 屬性上

函數定義規(guī)則

1. 函數的名字就是語句塊的名稱 

2. 函數名的命名規(guī)則與變量名相同(函數名必須是標識符) 

3. 函數名是一個變量(不要輕易對其賦值)

4. 函數有自己的名字空間,在函數外部不可以訪問函數內部的變量,在函數內可以訪問函數外部的變量,但不能修改此變量。

5. 函數如果不需要傳入參數,形參列表可以為空

6. 語句塊部分,內容不能為空,如果為空需要填充pass 

形參定義方式

形參:函數調用時,接收調用時傳遞的數據

【1】位置形參

【2】關鍵字形參

【3】缺省參數

def 函數名(形參名=默認實參1, 形參名2=默認實參2, ...):

pass

缺省參數必須自右至左依次存在,如果一個參數是缺省參數,則其右側的所有參數都必須是缺省參數。

【4】*args

星號元組形參,收集多余的位置傳參

def 函數名(*元組形參名):

pass

【5】**kwargs

雙星號字典形參,收集多余的關鍵字傳參

def 函數名(**字典形參名):

pass

【6】不定長形參

星號元組形參,雙星號字典形參

可以接受任意的位置傳參和關鍵字傳參

def fun(*args,**kwargs):

pass

位置形參,缺省參數,星號元組形參,雙星號字典形參可以混合使用.

函數形參自左至右的順序為:

  • 位置形參
  • 星號元組形參
  • 命名關鍵字形參
  • 雙星號字典形參

函數調用

函數名(實參)

注:

1. 函數調用是一個表達式

2. 如果函數內部沒有return語句,函數調用完畢后返回None對象

3. 如果函數需要返回其它的對象需要用到 return 語句

4.函數名是一個變量,綁定的是函數對象

函數調用時參數的傳遞形式

【1】位置傳參

實參和形參的位置對應,將實參數據傳遞給函數形參。

實參和形參按位置一一對應。

實參個數和形參個數必須一致。

【2】序列傳參

位置傳參的一種。

用 * 將序列拆解后按位置進行傳遞的傳參方式

【3】關鍵字傳參

按形參的名稱將實參數據傳遞給形參。

實參和形參按形參名稱匹配。

【4】字典關鍵字傳參

實參為字典,將字典用 '**' 拆解后再進行關鍵字傳參的傳參方式。

字典的鍵名必須和形參一致,切數量相同。

字典的鍵必須為字符串。

全局變量與局部變量

【1】全局變量

① 定義在函數外部,模塊內部的變量稱為全局變量

② 全局變量所有函數都可以直接訪問(但函數內不能將其直接賦值)

【2】局部變量

① 定義在函數內部的變量稱為局部變量(函數的形參也是局部變量)

② 局部變量只能在函數內部使用

③ 局部變量在函數調用時才能夠被創(chuàng)建,在函數調用之后會自動銷毀

函數的功能性

① 一個函數可以作為另一個函數調用時的實參,傳遞給此函數

def f1():
    print("f1被調用")

def f2():
    print("f2被調用")

def fx(fn):
    print(fn)
    fn()  # 此時這是調用什么呢?

fx(f1)
fx(f2)
#結果
<function f1 at 0x7f7a52ed6f28>
f1被調用
<function f2 at 0x7f7a51757c80>
f2被調用

#---------------------
def goodbye(L):
    for x in L:
        print("再見:", x)

def hello(L):
    for x in L:
        print("你好:", x)

def operator(fn, L):
    fn(L)

operator(hello, ['Tom', 'Jerry', 'Spike'])

#結果
你好: Tom
你好: Jerry
你好: Spike

② 一個函數可以作為另一個函數的返回值 

def fx():
    return max

fn = fx()
print(fn([1, 3, 5, 7]))

#結果
7

③ 函數可以嵌套

函數式編程

用一系列函數解決問題。

優(yōu)點:

【1】用每一個函數完成細小的功能,一系列函數的任意組合可以完成大問題 

【2】函數僅接受輸入并產生輸入,不包含任何能影響輸出的內部狀態(tài)

要求:

def 語句創(chuàng)建的函數最好不要訪問局部作用域以外的變量,這樣可以保證返回結果的唯一性(可重入性)

函數的 可重入性(結果唯一性)

如果一個函數的輸入參數一定,則返回結果必須一定的函數稱為可重入函數 

【1】 可重入函數,傳入參數一定.結果必然一定 

def myadd(x, y):?

return x + y?

【2】不可重入函數: 

y = 200?

def myadd2(x):?

return x + y?

print(myadd2(10)) # 210?

y = 300?

print(myadd2(10)) # 310?

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Python中包的用法及安裝

    Python中包的用法及安裝

    在本篇文章里小編給大家整理的是關于Python中一些包的基本用處和安裝方法,需要的朋友們可以學習參考下。
    2020-02-02
  • Python學習之名字,作用域,名字空間(下)

    Python學習之名字,作用域,名字空間(下)

    這篇文章主要介紹了Python學習之名字,作用域,名字空間,緊接上一篇文章內容展開全文,需要的小伙伴可以參考一下,希望對你的學習有所幫助
    2022-05-05
  • 使用Python爬取小姐姐圖片(beautifulsoup法)

    使用Python爬取小姐姐圖片(beautifulsoup法)

    這篇文章主要介紹了Python爬取小姐姐圖片(beautifulsoup法),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • Python實現批量采集商品數據的示例詳解

    Python實現批量采集商品數據的示例詳解

    這篇文章主要為大家詳細介紹了如何利用Python實現批量采集商品的數據,文中的示例代碼講解詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • python讀取中文txt文本的方法

    python讀取中文txt文本的方法

    下面小編就為大家分享一篇python讀取中文txt文本的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Django中的CACHE_BACKEND參數和站點級Cache設置

    Django中的CACHE_BACKEND參數和站點級Cache設置

    這篇文章主要介紹了Django中的CACHE_BACKEND參數和站點級Cache設置,Python是最具人氣的Python web框架,需要的朋友可以參考下
    2015-07-07
  • python爬蟲之requests庫的使用詳解

    python爬蟲之requests庫的使用詳解

    這篇文章主要為大家介紹了python爬蟲之requests庫的使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • pycharm 2018 激活碼及破解補丁激活方式

    pycharm 2018 激活碼及破解補丁激活方式

    這篇文章主要介紹了pycharm 2018 激活碼及破解補丁激活方式,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • Django如何實現網站注冊用戶郵箱驗證功能

    Django如何實現網站注冊用戶郵箱驗證功能

    這篇文章主要介紹了Django如何實現網站注冊用戶郵箱驗證功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • Python如何使用ConfigParser讀取配置文件

    Python如何使用ConfigParser讀取配置文件

    這篇文章主要介紹了Python如何使用ConfigParser讀取配置文件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11

最新評論