欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Python3快速入門(五)——Python3函數(shù)-創(chuàng)新互聯(lián)

Python3快速入門(五)——Python3函數(shù)

一、函數(shù)定義

1、函數(shù)定義

Python 定義函數(shù)使用 def 關(guān)鍵字,一般格式如下:

創(chuàng)新互聯(lián)是專業(yè)的雷山網(wǎng)站建設(shè)公司,雷山接單;提供成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行雷山網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!
def function_name(parameter_list):
    pass

默認(rèn)情況下,參數(shù)值和參數(shù)名稱按函數(shù)聲明中定義的順序進(jìn)行匹配。
函數(shù)代碼塊以?def?關(guān)鍵詞開頭,后接函數(shù)標(biāo)識符名稱和圓括號?()。
任何傳入?yún)?shù)和自變量必須放在圓括號中間,圓括號之間可以用于定義參數(shù)。
函數(shù)的第一行語句可以選擇性地使用文檔字符串描述函數(shù)說明。
函數(shù)內(nèi)容以冒號起始,并且進(jìn)行縮進(jìn)。
函數(shù)的定義示例如下:

def add(x, y):
    result = x + y
    return result

2、函數(shù)的返回值

函數(shù)使用return [表達(dá)式]?結(jié)束函數(shù),返回一個或多個值給調(diào)用方。不帶表達(dá)式的return相當(dāng)于返回 None。

def get_fruits():
    apple = "Apple"
    banana = "Banana"
    orange = "Orange"
    return apple, banana, orange

a,b,c = get_fruits()
print(a, b, c)

二、函數(shù)調(diào)用

1、函數(shù)調(diào)用

函數(shù)定義只給了函數(shù)一個名稱,指定了函數(shù)里包含的參數(shù)和代碼塊結(jié)構(gòu)。
函數(shù)調(diào)用直接使用定義的函數(shù)名稱以及傳遞相應(yīng)的參數(shù)進(jìn)行調(diào)用。

2、函數(shù)調(diào)用的遞歸限制

Python默認(rèn)設(shè)置了函數(shù)的大遞歸調(diào)用次數(shù),開發(fā)者可以直接進(jìn)行設(shè)置。設(shè)置方法如下:

#!/usr/bin/python3

import sys

sys.setrecursionlimit(100) # 設(shè)置大遞歸次數(shù)為100

三、函數(shù)參數(shù)

1、必須參數(shù)

必須參數(shù)是函數(shù)調(diào)用時必須傳遞的參數(shù)。

#!/usr/bin/python3

def add(x, y):
    result = x + y
    return result

add(3, 2)

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

關(guān)鍵字參數(shù)用于函數(shù)調(diào)用時,使用形式參數(shù)關(guān)鍵字將實際參數(shù)賦值給函數(shù)的相應(yīng)形式參數(shù),函數(shù)調(diào)用過程中傳遞實際參數(shù)順序可以與形式參數(shù)順序不匹配,但所有的必須參數(shù)必須被賦值。

#!/usr/bin/python3

def add(x, y):
    result = x + y
    return result

add(y=2, x=3)

上述代碼中,add函數(shù)的調(diào)用傳遞的實際參數(shù)通過指定關(guān)鍵字參數(shù)實際指定相應(yīng)的形式參數(shù),不必按照形式參數(shù)順序匹配,但必須參數(shù)都必須被傳遞。

3、默認(rèn)參數(shù)

函數(shù)在定義過程中可以為指定參數(shù)默認(rèn)的值,并且必須參數(shù)必須放在默認(rèn)參數(shù)的左側(cè)。

#!/usr/bin/python3

def print_student(name, gender="男", age=28):
    print(name)
    print(gender)
    print(age)

print_student("Bauer", "男", 30)
print_student("Lee")
print_student("Lisa","女")

print_student(age=30, name="Bob")

函數(shù)調(diào)用時,可以使用關(guān)鍵字參數(shù)對形式參數(shù)進(jìn)行賦值,默認(rèn)參數(shù)可以缺省,但必須參數(shù)必須被賦值,必須參數(shù)可以使用關(guān)鍵字參數(shù)賦值。如果必須參數(shù)不使用關(guān)鍵字參數(shù),則必須參數(shù)必須嚴(yán)格按照函數(shù)定義的順序傳遞,其默認(rèn)參數(shù)可以使用關(guān)鍵字參數(shù)選擇性賦值,沒有使用關(guān)鍵字參數(shù)傳遞的默認(rèn)參數(shù)將使用默認(rèn)值。

4、可變參數(shù)

可變參數(shù)通過使用*修飾形式參數(shù)定義可變參數(shù)。
函數(shù)定義時,可以定義可變參數(shù),在函數(shù)調(diào)用時傳遞可變的多個實際參數(shù)。

#!/usr/bin/python3

def add(*args):
    result = 0;
    for x in args:
        result += x
    return result

c = add(1, 2, 3, 4)
print(c)
c = add(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
print(c)
tup1 = 1, 2, 3, 4
c = add(*tup1) # 傳入序列
print(c)
list1 = [1, 2, 3]
c = add(*list1)
print(c)

對應(yīng)定義了可變參數(shù)的的函數(shù),如果需要傳入序列作為實際參數(shù),需要在序列前加*
如果函數(shù)定義時有可變參數(shù)和默認(rèn)參數(shù),函數(shù)調(diào)用時可以使用關(guān)鍵字參數(shù)用于指定默認(rèn)參數(shù)。

#!/usr/bin/python3

def add(x, *args, y=100):
    result = x + y;
    for i in args:
        result += i
    return result

c = add(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) # 155
print(c)
c = add(1, 2, 3, 4, 5, 6, 7, 8, 9, y=10) # 55
print(c)

Python中,如果函數(shù)定義時可變參數(shù)放在默認(rèn)參數(shù)的左側(cè),則默認(rèn)參數(shù)需要使用關(guān)鍵字參數(shù)顯式指定。

5、關(guān)鍵字可變參數(shù)

關(guān)鍵字可變參數(shù)通過使用**修飾形式參數(shù)定義,關(guān)鍵字可變參數(shù)為字典類型,關(guān)鍵字可變參數(shù)屬于可選參數(shù)。

#!/usr/bin/python3

def average_score(**args):
    result = 0;
    for key, value in args.items():
        result += value
        print(key + ": ", value)
    result = result / len(args)
    print("Average score is ", result)
    return result

book = {"Bauer": 90, "Bob": 100, "Lisa": 70, "Lee": 100}
average_score(**book)
average_score(Bauer=100, Lisa=70, Lee=100)

函數(shù)調(diào)用時,關(guān)鍵字可變參數(shù)可以傳遞多個鍵值對,頁可以直接傳遞dictionary類型變量,此時需要使用**修飾字典變量。

四、匿名函數(shù)

python 使用 lambda表達(dá)式來創(chuàng)建匿名函數(shù),函數(shù)定義如下:
lambda [arg1 [,arg2,.....argn]]:expression
Lambda表達(dá)式定義的匿名函數(shù)的函數(shù)體不是一個代碼塊,因此,僅能在lambda表達(dá)式中封裝有限的邏輯。
Lambda表達(dá)式擁有自己的命名空間,且不能訪問自有參數(shù)列表外或全局命名空間里的參數(shù)。
雖然lambda函數(shù)看起來只能寫一行,卻不等同于C或C++的內(nèi)聯(lián)函數(shù),后者的目的是調(diào)用小函數(shù)時不占用棧內(nèi)存從而增加運行效率。

#!/usr/bin/python3
# -*- coding:utf-8 -*-

sum = lambda arg1, arg2: arg1 + arg2;

# 調(diào)用sum函數(shù)
print(sum(10, 20))
print(sum(20, 20))

五、變量作用域

程序的所有的變量并不是在任何位置都可以訪問的,訪問權(quán)限決定于變量是在哪里賦值的。變量的作用域決定了在哪一部分程序可以訪問哪個特定的變量名稱。
定義在函數(shù)內(nèi)部的變量擁有局部作用域,定義在函數(shù)外的擁有全局作用域,代碼塊內(nèi)部局部變量會覆蓋全局變量,在局部作用域內(nèi)修改全局變量的值時,需要使用global關(guān)鍵字對相應(yīng)全局變量進(jìn)行聲明,表明本作用域內(nèi)使用的是全局變量。
局部變量只能在其被聲明的函數(shù)內(nèi)部訪問,而全局變量可以在整個程序范圍內(nèi)訪問。調(diào)用函數(shù)時,所有在函數(shù)內(nèi)聲明的變量名稱都將被加入到作用域中。

#!/usr/bin/python3
# -*- coding:utf-8 -*-

base = 100

def sum(*args):
    global base
    base = 0
    result = 0;
    for i in args:
        result += i
    return result + base;

c = sum(1,2,3,4,5,6,7,8,9,10)
print(c) # 55
print(base) # 0

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

標(biāo)題名稱:Python3快速入門(五)——Python3函數(shù)-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://chinadenli.net/article42/cdpshc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、網(wǎng)站策劃、企業(yè)網(wǎng)站制作標(biāo)簽優(yōu)化、響應(yīng)式網(wǎng)站、網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)