[Python初學者] 7種 Functions 函數用法
Python Data Types 資料類型 – Functions 函數
No. |
Functions 函數用法 |
註 |
1 | 定義函數 | 利用 def 定義 my_function ( ) : |
2 | 指定參數(arguments) | 在 my_function () 小括號內的指定參數可以是一個或多個 1) 定義 my_function () 中的小括號內指定參數 argument 2) 定義 my_function () 中的小括號內多個指定參數 3) 當不知道有幾個指定參數時,在指定參數前加上一個星號 * ,再使用位置 [ ] 表示將帶入的參數位置 4) 當固定 key 等於 value(key = value),則不需要有位置資訊 5) 當不知道有幾個指定參數時,在指定參數前加上兩個星號 ** ,再使用 key = value 表示將帶入的參數的 key |
3 | 默認參數值 Default | 定義 my_function () 的默認參數值時小括號內的 指定參數 Area 等於 ” ” (表示於雙引號內) |
4 | 將列表作為參數呈現 | 使用迴圈 for…in |
5 | 回傳數值 | 使用 return |
6 | 當函數定義為空白時 | 函數定義不能為空白,但基於某種原因而需一個不帶任何內容的函數定義,請放入pass,以避免出錯 |
7 | 遞迴 Recursion | 需有 1) 自我呼喚、2) 終止條件 |
1. 定義函數:利用 def 定義 my_function ( ) :
def my_function():
print("Hello from cute Oceane")
my_function()
Hello from cute Oceane
# 用 def 定義 my_function ( ) : 我的函數(my_function 需加小括號和冒號),再 print 出小括號內的字: Hello from cute Oceane,結果 my_function ( ) 則得到小括弧號的字:Hello from cute Oceane。
my_function() 即代表以下兩種動作加起來:
1) def 定義 my_function (): 我的函數
2) print 出小括弧內的字
2. 指定參數(arguments):在 my_function () 小括號內的指定參數可以是一個或多個。
1) 定義 my_function () 中的小括號內指定參數 argument
def my_function(argument):
print(argument + " Oceane")
my_function("cute")
my_function("adorable")
my_function("joyful")
cute Oceane
adorable Oceane
joyful Oceane
# Print 結果時呈現 1) 指定參數 argument 加上 2) 固定參數 ” Oceane “(表示於雙引號內),
結果會顯示:指定參數(隨參數改變而改變) + 固定參數 Oceane。
例如:
my_function ( ” cute ” ):則呈現 cute + Oceane = cute Oceane
my_function ( ” adorable ” ):則呈現 adorable + Oceane = adorable Oceane
my_function ( ” joyful ” ):則呈現 joyful + Oceane = joyful Oceane
定義 my_function () 中的小括號內多個指定參數
2)當有兩個指定參數時:
def my_function(argument1, argument2):
print(argument1 + " " + argument2)
my_function("Cute", "Oceane")
Cute Oceane
# 如定義兩個 指定參數 argument1 和 argument2,Print 結果時呈現 1) 指定參數 argument1 加上 2) 固定參數 ” ” (表示於雙引號內)再加上 3) 指定參數 argument2
結果會顯示:指定參數(隨參數改變而改變) + 固定參數 ” “(空格) + 指定參數。
例如:
my_function ( ” Cute ” , ” Oceane “):則呈現 Cute + 空格 + Oceane = Cute Oceane
當不知道有幾個指定參數時,在指定參數前加上一個星號 * ,再使用位置 [ ] 表示將帶入的參數位置:
3)def my_function(*babies):
print("The cutest baby is " + babies [2])
my_function("Nathalie", "Emma", "Oceane", "Mia", "Linda")
The cutest baby is Oceane
# 當不知道有幾個指定參數,定義 my_function () 時,小括號內的 指定參數 babies 需加上星號 * ,
Print 結果時呈現 1) 固定參數 ” ” (表示於雙引號內)再加上 2) 位於位置 2 的指定參數 babies [ 2 ]
結果會顯示:固定參數 ” The cutest baby is “ + 位置 2 的指定參數 babies [ 2 ]。
例如:
my_function ( “Nathalie”, “Emma”, “Oceane“, “Mia”, “Linda”)(位置依序為:位置0,位置1,位置2,位置3,位置4):則呈現 固定參數 ” The cutest baby is “ + 位置 2 的指定參數 Oceane,結果為: The cutest baby is Oceane。
當固定 key 等於 value(key = value),則不需要有位置資訊:
4)def my_function(baby2, baby1, baby3):
print("The cutest baby is " + baby1)
my_function(baby1 = "Oceane", baby3 = "Mia", baby2 = "Emma")
The cutest baby is Oceane
# 如固定
key = value 為:
baby1 = Oceane
baby2 = Emma
baby3 = Mia
其擺放的位置則無固定。
結果為:固定參數 ” The cutest baby is “ + baby2 = ” Oceane ” = The cutest baby is Oceane。
當不知道有幾個指定參數時,在指定參數前加上兩個星號 ** ,再使用 key = value 表示將帶入的參數的 key:
5)def my_function(**babies):
print("The cutest baby is " + babies ["arg3"])
my_function(arg1 = "Nathalie", arg2 = "Emma", arg3 = "Oceane", arg4 = "Mia", arg5 = "Linda")
The cutest baby is Oceane
# 當不知道有幾個指定參數,定義 my_function () 時,小括號內的 指定參數 babies 需加上兩個星號 ** ,
Print 結果時呈現 1) 固定參數 ” ” (表示於雙引號內)再加上 2) 將帶入參數的 key 至 指定參數 babies [ “ key ” ]
再固定
key = value 為:
arg1 = Nathalie
arg2 = Emma
arg3 = Oceane
arg4 = Mia
arg5 = Linda
結果會顯示:固定參數 ” The cutest baby is “ + 指定參數 babies [ “ arg3 ” ],結果為 The cutest baby is Oceane。
3. 默認參數值 Default Parameter Value:
() 的默認參數值時小括號內的 指定參數 Area 等於 ” ” (表示於雙引號內)
定義 my_functiondef my_function(Area = "Taiwan"):
print("Oceane is from " + Area)
my_function("France")
my_function("Asia")
my_function()
my_function("Europe")
Oceane is from France
Oceane is from Asia
Oceane is from Taiwan
Oceane is from Europe
# 定義 my_function () 的默認參數值時,小括號內的 指定參數 Area 等於 “Taiwan” (表示於雙引號內) 。
Print 固定參數 “Oceane is from ” + 指定參數 Area 結果為:
1. 假如出現 my_function(“France“),則結果為: Oceane is from France。
2. 假如出現 my_function(“Asia“),則結果為: Oceane is from Asia。
3. 假如出現 my_function(),括號中為空白,則結果會使用默認參數值為: Oceane is from Taiwan。
4. 假如出現 my_function(“Europe“),則結果為: Oceane is from Europe。
4. 將列表作為參數呈現:使用迴圈 for…in
def my_function(fruit):
for x in fruit:
print(x)
deliciousfruits = ["peach", "guava", "strawberry"]
my_function(deliciousfruits)
peach
guava
strawberry
# 定義 my_function(fruit),利用迴圈 for… in ,則可將 x 中的字一一帶入 fruit 再 print 出來。當 deliciousfruits 等於 “peach“,”guava“,”strawberry“,分別帶入 my_function(deliciousfruits),則 print 出來的結果分別為: peach、guava、strawberry。
5. 回傳數值:使用 return
def my_function(x):
return 5 * x
print(my_function(2))
print(my_function(4))
print(my_function(6))
10
20
30
#定義 my_function(x),再使用 return 回傳 5 乘以 x 的結果。
當 print (my_function(2)) 時,則 return 回 5 乘以 2 ,得到結果為 10。
當 print (my_function(4)) 時,則 return 回 5 乘以 4 ,得到結果為 20。
當 print (my_function(6)) 時,則 return 回 5 乘以 6 ,得到結果為 30。
又或者
def my_function(x):
return 100 / x
print(my_function(2))
print(my_function(5))
print(my_function(10))
50.0
20.0
10.0
#定義 my_function(x),再使用 return 回傳 100 除以 x 的結果。
當 print (my_function(2)) 時,則 return 回 100 除以 2 ,得到結果為 50.0。
當 print (my_function(4)) 時,則 return 回 100 除以 5 ,得到結果為 20.0。
當 print (my_function(6)) 時,則 return 回 100 除以 10 ,得到結果為 10.0。
當函數定義為空白時:
6.pass,以避免出錯。
函數定義不能為空白,但基於某種原因而需一個不帶任何內容的函數定義,請放入def myfunction():
pass
# 在其他程式語言會使用 continue
遞迴 Recursion:需有 1) 自我呼喚、2) 終止條件
7.遞迴的概念即是將一個龐大的問題,切割成小問題,讓問題變得比較好解決。
def recursion(k):
if(k > 0):
result = k + recursion(k - 1)
print(k)
else:
result = 0
return result
print("\n\nRecursion Example Results")
recursion(6)
Recursion Example Results
1
3
6
10
15
21
[Out] 21
1) 自我呼喚:如 recursion ( k ) 等於 k + recursion ( k – 1 )。但假如沒有停止條件的話,則會無限輪迴。
2) 終止條件:k 小於 或 等於 0,結果為 0。
遞迴的條件:#定義 recursion(k),假如 k 等於 6(k > 0),想得到結果:k 加上 recursion (k – 1),則 recursion(6),即 k = 6:結果為 k + recursion ( k – 1 ) = 6 + recursion (5)。
以此類推,結果為
recursion(6)
= 6 + recursion (5)
= 6 + 5 + recursion (4)
= 6 + 5 + 4 + recursion (3)
= 6 + 5 + 4 + 3 + recursion (2)
= 6 + 5 + 4 + 3 + 2 + recursion (1)
所以需要知道recursion(6),則需要知道recursion (5)、recursion (4)、recursion (3)、recursion (2)、recursion (1) 的結果。因此 recursion (1) 的結果會先被計算出來,再依次計算出recursion (2)、recursion (3)、recursion (4)、recursion (5) 的結果。
如:
recursion (1) 的結果為:1( 1 + 0 = 1 )
recursion (2) 的結果為:3( 2 + 1 = 3 )
recursion (3) 的結果為:6( 3 + 3 = 6 )
recursion (4) 的結果為:10( 4 + 6 = 10 )
recursion (5) 的結果為:15( 5 + 10 = 15 )
recursion (6) 的結果為:21( 6 + 15 = 21 )
則結果為 21。