現在來看括號做什麼用:它用來傳遞參數(argument)!
不,卡特,計算機非常聽話,它們永遠也不會爭論1。在編程中,參數這個詞是指你交給函數的一條信息。我們把這稱為:你向函數傳遞參數。
1argument 也有「爭論」的意思,卡特顯然是把這裡的 argument 理解為「爭論」了。——編者注
假設你希望對你的所有家庭成員使用這個地址打印函數。所有人的地址都是一樣的,但是每一次人名會有所不同。不能在函數中把人名硬編碼寫成 Warren Sande,你可以建立一個變量。調用函數時將這個變量傳遞到函數。
要說明這是如何工作的,最容易的方法就是舉例子。在代碼清單 13-2 中,我修改了地址打印函數,要使用一個對應人名的參數。參數是有名字的,就像其他變量一樣。我把這個變量命名為 myName
。
函數運行時,變量 myName
會填入調用函數時為它傳入的任何參數。調用函數時,我們把參數放在括號裡,通過這種方式將參數傳入函數。
因此,在代碼清單 13-2 中,參數 myName
賦值為 Carter Sande。
代碼清單 13-2 向函數傳遞參數
運行代碼,你會得到期望的結果:
>>> ===================== RESTART =====================>>>Carter Sande123 Main StreetOttawa, Ontario, CanadaK2M 2E9
這看上去與第一個程序(沒有使用參數)得到的輸出完全相同。不過,我們每次可以用不同方式打印地址,比如:
printMyAddress("Carter Sande")printMyAddress("Warren Sande")printMyAddress("Kyra Sande")printMyAddress("Patricia Sande")
現在每次調用函數時輸出都不同。人名會變,因為我們每次都向函數傳入了不同的人名。
>>> ============================ RESTART ============================>>>Carter Sande123 Main StreetOttawa, Ontario, CanadaK2M 2E9Warren Sande123 Main StreetOttawa, Ontario, CanadaK2M 2E9Kyra Sande123 Main StreetOttawa, Ontario, CanadaK2M 2E9Patricia Sande123 Main StreetOttawa, Ontario, CanadaK2M 2E9
注意,我們向函數傳入什麼值,函數中就會使用什麼值,並作為地址的人名部分打印出來。
如果每次函數運行時有多個信息不同,就需要多個參數。下面就來討論這個問題。