Python入門之函式呼叫(二)

Rich Dad發表於2020-09-27

時間煮雨
@R星校長

第2關:函式正確呼叫 - 得到想要的結果

定義函式與呼叫函式的順序

在定義了函式之後,就可以呼叫該函式了。但是在 Python 中我們要注意一個關鍵點,就是Python不允許前向引用,即在函式定義之前,不允許呼叫該函式。例如:

print plus(1,2)
def plus(a,b):
    return a+b

執行結果為:

NameError: name 'plus' is not defined

從報錯結果可以看出,名字為plus的函式還沒進行定義(雖然我們是在後面進行了定義)。所以當我們在呼叫函式時,一定要確定在呼叫之前進行了函式定義。

正確使用引數

我們要在呼叫函式時,需要正確呼叫函式的名稱和引數,例如我們定義了一個加法函式:

def plus(a,b):
    return a+b

我們在呼叫plus()函式時,如果傳入的引數型別不對,會報TypeError錯誤。而且有時我們傳入的引數型別不是規定型別的話,就算呼叫函式執行結果沒有報錯,也會產生邏輯錯誤。例如:

# 定義plus函式,作用是求兩個正整數之和
def plus(a,b):
    return a+b
# 呼叫plus函式,引數型別為'1','2'
print(plus('1','2'))

輸出結果:

12

雖然上述例子的程式執行結果沒有報錯,但是結果卻與我們的預期不符,因為我們的本意是呼叫plus()函式實現兩個整數的加法。但是如果我們傳入的是字串型別的數值時,結果就是兩個字串的拼接。所以這個例子告訴我們一定要注意傳入引數的型別。

當我們傳入正常型別的引數時,傳入的引數個數不一致時,也會報TypeError錯誤。例如:

# 定義plus函式,作用是求兩個正整數之和
def plus(a,b):
    return a+b
# 呼叫plus函式,引數為1,2,3
print(plus(1,2,3))

報錯:

TypeError: plus() takes 2 positional arguments but 3 were given

報錯原因顯示,因為plus()函式允許有且僅有2個引數,但是卻在呼叫時傳入了3個引數,所以程式報錯。

保持對事業的努力,事業比幻想中的金錢要現實得多。這是必須牢記的原則。

在這裡插入圖片描述

在這裡插入圖片描述

相關文章