基本
函數/函式/hâm-sit (function) 是一種起做 Python 裡蓋重要 ê 乜件。伊和 while 圈圈 (while loop) 和 for 圈圈 (for loop) 相sia̋ng,都是重複利用寫過 ê code。毋過,while 佮 for 攏是連紲運行,一直到條件判段式成做 False,抑是 List 用佮貼底,才會得通做捌項代誌。你若是佇咧無仝所在欲使用,就無法度囉。函式就是共一段 code,號一咧名,不管時想欲使用,就叫伊的名。按呢生你就有真大 ê 自由度來使用伊。咱來看例:
def fahrenheit(T_in_celsius): """ returns the temperature in degrees Fahrenheit """ return (T_in_celsius * 9 / 5) + 32 c1 = fahrenheit(13) c2 = fahrenheit(27.3) + 5 for t in (22.6, 25.8, 27.3, 29.8):print(t, ": ", fahrenheit(t))
函式咱愛先共伊定義: 用關鍵字 def 𤆬頭,號一个予人一看就知意思 ê 名,閣紲落去用月眉號 ()來共參數包--起來,落尾才綴一咧大句點 : 完成宣告。函式的體 (body),就攏愛向正爿勼,來共函式想欲做 ê 代誌寫予好。
佇頂仔 ê 例,函式名號做 fahrenheit, 這是溫度 ê 單位 Hua-sit (華語:華式,Fahrenheit)。伊的參數是 T_in_celsius ,咱一看名就知這是另一 ê 溫度 ê 單位 Se-sit (華語:攝式,Celsius)。咱一看就知影,伊是共 Se-sit 轉做 Hua-sit ê 函式。內底 """ 是註解: 彼是予人看ê,電腦無佇看彼。咱先莫插伊。
你會當看著,fahrenheit 會使囥佇任何所在:會當囥數字型態 ê 所在,就會當囥伊。因為伊會擲出來的值,嘛是數字型態。這予咱真大ê自由,程式嘛加真屧貼,媠氣。
程式 ê 參數,無限定偌濟。若有濟 ê 參數,愛用逗點(華語:逗號,,)共 in 分開,像 func(para1, para2, para3)。若是完全無參數,就莫寫,像按呢 func()。
無定著愛寫的參數(Optional Parameters)
咱嘛會用得予函式參數一咧預設值(ū-siat-ta̍t),按呢生,咱就會使共捷捷用的值,成做預設值,看下跤 ê 例?def Hello(name="everybody"): """ Greets a person """ print("Hello " + name + "!") Hello("Peter") Hello()
name="everybody" ,name是參數,"everybody" 是預設值。咱若知人名,就添入參數位,若無,放予空空,伊就用 "everybody" 共伊印--出來。
毋過,有時咱有幾落 ê 無定著愛寫的參數,拄好上尾彼咧愛寫:
def sum(start=1, end=10): c = start s = 0 while (c < end): s = s + c c = c + 1 return s伊是會使對 start 開始,疊加到 end 進前一咧整數。sum(2, 11) 就是 1 + 2 + 3 + ... + 10,答案是 54。咱若想欲對 1 開始加,start 會使免寫,毋過 sum(11),sum 毋知 11 是 start 抑是 end,所以咱愛共伊講:
sum(end=11)伊就知 start 用預設值,答案是 55,這號做 關鍵字參數 (keyword parameters)
說明字串
咱看著函式裡頭一逝是字串。毋過,伊孤一ê佇遐,無囥入去參數,無啥乜作用。咱會使共伊當做註解。伊的目的是欲予人知影這个函式的作用,佮有啥乜愛注意。佇每一咧函式前阿寫註解,是一咧真好的習慣。咱嘛會使共這个說明字串印出來:
def Hello(name="everybody"): """ Greets a person """ print("Hello " + name + "!") print("The docstring of the function Hello: " + Hello.__doc__)
伊會印:
The docstring of the function Hello: Greets a person
擲轉來濟濟的值
函式擲轉來值,普通是一咧。咱嘛會使一擺等幾落ê。def arithmetic(a,b):
""" It give the result of four basic arithmetic operation """
return a+b, a-b, a*b, a/b
all_4 = arithmetic(100, 33)
add, sub, mul, div = arithmetic(100, 33)
print(all_4)
print(add, sub, mul, div)
print(all_4[0], all_4[1], all_4[2], all_4[3])
運行ê結果:你若用一个變數起乘伊,伊就是一咧 Tha-poh (Tuple)。Tha-poh 是 Lists 的親情,嘛是一種資料型態,是一種有順序ê物件 (Sequential),嘛會使用索引(index) 來提伊的值。(133, 67, 3300, 3.0303030303030303)133 67 3300 3.0303030303030303
這的文章的例,是對 Python3 Tutorial 提--來ê,若有興趣欲閣學閣較深咧,會使去看原文。
沒有留言:
張貼留言