性夜影院午夜看片,无码精品久久一区二区三区,婷婷成人丁香五月综合激情,校园春色 qvod,性调教室高h学校

自學(xué)Python教程【第六十五節(jié)】函數(shù)的參數(shù)傳遞(1)

同學(xué)們,歡迎大家來(lái)到自學(xué)Python教程教室,上一講我們分享了 Python 里一個(gè)我非常喜歡的特性--列表綜合(List Comprehension)。所謂列表綜合,就是通過(guò)一個(gè)已有的列表生成一個(gè)新的列表的相關(guān)知識(shí),這節(jié)我們向大家分享函數(shù)的參數(shù)傳遞的相關(guān)內(nèi)容。與以往不同的是本篇我們面向有一點(diǎn)點(diǎn) Python 基礎(chǔ)的讀者,零基礎(chǔ)的看不懂也沒(méi)關(guān)系,慢慢來(lái)!

本節(jié)課關(guān)鍵字:Python函數(shù),參數(shù),默認(rèn)值

先說(shuō)下上次課最后留的那題,我自己的解法:

print ';'.join([str(i) for i in range(1,101) if i % 2 == 0 and i % 3 == 0 and i % 5 == 0])

另外,關(guān)于上次說(shuō)的 List Comprehension,我在文中稱之為“列表綜合”,這是引自《簡(jiǎn)明 Python 教程》的翻譯。也有同學(xué)表示叫做“列表解析”或“列表表達(dá)式”。都是一個(gè)意思,其實(shí)在寫這課之前,我從來(lái)都不去“叫”它,只知道這么用而已。

我們?cè)?jīng)講過(guò) Python 中函數(shù)的參數(shù)傳遞(見第19課)。最基本的方式是:

定義

def func(arg1, arg2): 
print arg1, arg2

調(diào)用

func(3, 7)

我們把函數(shù)定義時(shí)的參數(shù)名(arg1、arg2)稱為形參,調(diào)用時(shí)提供的參數(shù)(3、7)稱為實(shí)參。

這種方式是根據(jù)調(diào)用時(shí)提供參數(shù)的位置進(jìn)行匹配,要求實(shí)參與行參的數(shù)量相等,默認(rèn)按位置匹配參數(shù)。調(diào)用時(shí),少參數(shù)或者多參數(shù)都會(huì)引起錯(cuò)誤。這是最常用的一種函數(shù)定義方式。

在調(diào)用時(shí),也可以根據(jù)形參的名稱指定實(shí)參。如:

func(arg2=3, arg1=7)

但同樣,必須提供所有的參數(shù)??纯春蚮unc(3, 7)的運(yùn)行結(jié)果有什么不同。

Python 語(yǔ)言還提供了其他一些更靈活的參數(shù)傳遞方式,如:

func2(a=1, b=2, c=3) 
func3(*args)

func4(**kargs)

今天我們先說(shuō)說(shuō)func2這種方式。

這種方式可以理解為,在一般函數(shù)定義的基礎(chǔ)上,增加了參數(shù)的默認(rèn)值。這樣定義的函數(shù)可以和原來(lái)一樣使用,而當(dāng)你沒(méi)有提供足夠的參數(shù)時(shí),會(huì)用默認(rèn)值作為參數(shù)的值。

例如:

定義

def func(arg1=1, arg2=2, arg3=3): 
print arg1, arg2, arg3

調(diào)用

func(2, 3, 4) 
func(5, 6)
func(7)

輸出為

2 3 4 
5 6 3
7 2 3

提供的參數(shù)會(huì)按順序先匹配前面位置的參數(shù),后面未匹配到的參數(shù)使用默認(rèn)值。

也可以指定其中的部分參數(shù),如:

func(arg2=8) 
func(arg3=9, arg1=10)

輸出為

1 8 3 

10 2 9

或者混合起來(lái)用:

func(11, arg3=12)

輸出為

11 2 12

但要注意,沒(méi)有指定參數(shù)名的參數(shù)必須在所有指定參數(shù)名的參數(shù)前面,且參數(shù)不能重復(fù)。以下的調(diào)用都是錯(cuò)誤的:

func(arg1=13, 14) 
func(15, arg1=16)

定義參數(shù)默認(rèn)值的函數(shù)可以在調(diào)用時(shí)更加簡(jiǎn)潔。大量 Python 模塊中的方法都運(yùn)用了這一方式,讓使用者在調(diào)用時(shí)可以提供盡可能少的參數(shù)。

接下來(lái)的幾次課,我會(huì)繼續(xù)介紹其他的參數(shù)傳遞方式。

恭喜您在Python自學(xué)的道路上又堅(jiān)持了一天,今天我們開始了Python中函數(shù)的參數(shù)傳遞(1),下節(jié)課我們將分享更多Python中函數(shù)的參數(shù)傳遞的相關(guān)內(nèi)容,敬請(qǐng)關(guān)注 !

好啦,今天的分享到這里就結(jié)束了,希望大家能夠持續(xù)關(guān)注馬哥教育官網(wǎng),每天都會(huì)有大量的優(yōu)質(zhì)內(nèi)容與大家分享!

聲明:文章來(lái)源于網(wǎng)絡(luò),侵刪!

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國(guó)內(nèi)好評(píng)如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓(xùn)機(jī)構(gòu)!