两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

我們在調(diào)用函數(shù)的時候,主函數(shù)和調(diào)用函數(shù)之間總是離不開數(shù)據(jù)的傳遞,有了數(shù)據(jù)的傳遞,也就是參數(shù)的傳遞。參數(shù)的作用是用來傳遞數(shù)據(jù)給函數(shù)使用。

打個比方來說,我們買來了一個榨汁機,當我們加入蘋果的時候會出來蘋果汁,加入西瓜的時候會出來西瓜汁,參數(shù)就起到這樣一個作用,參數(shù)通過主函數(shù)傳遞到被調(diào)用函數(shù),然后被調(diào)用函數(shù)會返回給我們一個結(jié)果。

下面我們來學(xué)習(xí)參數(shù)的傳遞。

1. 形式參數(shù)和實際參數(shù)

要學(xué)習(xí)函數(shù)的參數(shù)傳遞,我們首先要了解什么是形式參數(shù)和實際參數(shù)。我們繼續(xù)拿上面的例子來說,我們在榨汁機中有一個容器來裝水果,我們將水果放在這個容器里,然后榨汁器開始運轉(zhuǎn),形式參數(shù)和實際參數(shù)也類似這樣的關(guān)系。

形式參數(shù)為我們定義函數(shù)的時候再括號中定義的參數(shù),我們在函數(shù)的內(nèi)部會使用這個參數(shù)進行代碼的編寫,而實際參數(shù)為函數(shù)調(diào)用的時候傳進來的參數(shù),函數(shù)返回的結(jié)果是根據(jù)這個實際參數(shù)來代替形式參數(shù)。

看下面的例子:

>>> A = 30
>>> def get_salary(days):
...     salary  = days * 300
...     print(salary)
...
>>> get_salary(A)
9000

在這上面這個例子中,函數(shù)在創(chuàng)建的時候使用的參數(shù)days為形式參數(shù),在我們調(diào)用函數(shù)的時候,A即為實際參數(shù),實際要帶入到函數(shù)中使用的參數(shù)。

2. 位置參數(shù)

我們在創(chuàng)建函數(shù)的時候可以在括號中定義多個形式參數(shù),我們在調(diào)用的時候,參數(shù)的數(shù)量和位置需要和創(chuàng)建的保持一致。

       1) 參數(shù)的數(shù)量不一致

如果我們創(chuàng)建的函數(shù)中有2個形式參數(shù),而我們調(diào)用的時候只使用了1個實際參數(shù),會是什么樣的結(jié)果呢,看下面的例子。

>>> def get_message(address,number):
...     print(address,number)
...
>>> get_message('蘇州')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: get_message() missing 1 required positional argument: 'number'

我們可以發(fā)現(xiàn)當實際參數(shù)的數(shù)量不等于形式參數(shù)的數(shù)量時候,會拋出異常,具體的意思為缺少一個必要位置的參數(shù)number。

       2) 參數(shù)的位置不一致

當參數(shù)的位置不一致的時候會導(dǎo)致出現(xiàn)兩種錯誤,一種是直接報錯,因為我們在傳參的時候會根據(jù)參數(shù)的性質(zhì)而定義不同的類型,因此數(shù)據(jù)類型的錯誤會拋出異常。

另外一種錯誤是傳入的參數(shù)的數(shù)據(jù)類型是對的,但是位置是錯的,這樣會出現(xiàn)錯誤的輸出結(jié)果。

3. 關(guān)鍵字參數(shù)

為了提高程序的可讀性,在函數(shù)調(diào)用的時候還可以使用關(guān)鍵字參數(shù)調(diào)用。

我們通過計算容器的體積來了解關(guān)鍵字參數(shù)。

>>> def volume(length,width,height):
...     volume = length * width * height
...     print('體積為:',volume)
...
>>> volume(length=20,width=30,height=3)
體積為: 1800

使用關(guān)鍵字參數(shù)可以省去定義變量的過程,直接在函數(shù)調(diào)用的時候給參數(shù)進行賦值,然后傳遞到函數(shù)當中,最后返回結(jié)果。在這種傳遞方式中,參數(shù)位置的不同是不影響輸出結(jié)果的。

4. 參數(shù)默認值

當我們定義一個函數(shù)的時候,可以給函數(shù)的參數(shù)定義一個初始值,這樣在我們調(diào)用函數(shù)的時候如果沒有給出實際參數(shù),那么函數(shù)會使用默認參數(shù)。

看下面的例子:

>>> def volume(length=100,width=100,height=10):
...     volume = length * width * height
...     print(volume)
...
>>> volume()#不給出實際參數(shù)的時候會使用默認參數(shù)100000
>>> volume(10,10,10)#給出實際參數(shù)會傳遞實際參數(shù)給出輸出結(jié)果
1000

通過上面的例子,如果我們在創(chuàng)建函數(shù)的時候已經(jīng)給出了默認值,那么我們在使用函數(shù)的時候如果不給出實際參數(shù)則會自動使用默認參數(shù)。

5. 可變參數(shù)

在Python中函數(shù)的參數(shù)個數(shù)是可以變化的,也就是說參數(shù)的數(shù)量可以是不確定的,這種參數(shù)被稱為可變參數(shù)。可變參數(shù)分為兩種,一種是參數(shù)前加*,這種方式的可變參數(shù)在傳遞的時候是以元組的形式傳遞,一種是參數(shù)前加**,這種方式的可變參數(shù)在傳遞的時候以字典的形式傳遞,我們主要介紹一下第一種方式。

看下面的例子:

>>> def add_number(*number):
...     add_num = 0
...     for i in number:
...             add_num += i
...     print(add_num)
...
>>> add_number(1,2,3,4,5)
15

使用可變參數(shù)的時候,這些參數(shù)會被存放在一個元組中傳遞到函數(shù)里,因此我們要使用這些參數(shù)的時候可以使用遍歷或者索引值進行使用。

函數(shù)的參數(shù)傳遞大致就是這些,想要學(xué)好函數(shù),一定要掌握好參數(shù)的傳遞,參數(shù)的正確傳遞在函數(shù)的使用過程中至關(guān)重要。


點贊(1)

C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點擊了解:

一點編程也不會寫的:零基礎(chǔ)C語言學(xué)練課程

解決困擾你多年的C語言疑難雜癥特性的C語言進階課程

從零到寫出一個爬蟲的Python編程課程

只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

藍橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程

手把手講解近五年真題的藍橋杯輔導(dǎo)課程

Dotcpp在線編譯      (登錄可減少運行等待時間)