More Related Content Similar to Ptyhon 教學 003 函數 (20) Ptyhon 教學 003 函數2. Python 函數
# Python 函數語法
def 函數名稱(傳入參數):
內縮敘述句
內縮敘述句
內縮敘述句
內縮敘述句
return n (用 return 結束函數,與傳回值)
4. 同名函數
# Python 不支援 function overload
# 若有兩個以上相同名稱的 function
# 最後一個會覆蓋前者的定義
def sum(a, b):
return a + b
def sum(a, b, c):
return a + b + c
#print(sum(10, 20))
# TypeError: sum() missing 1 required positional argument: 'c'
8. 函數和物件資源(二)
# 觀察以下的執行情況
#print(appendTo(10, [1, 2, 3]))
# 沒有傳入 arr 陣列時,會怎樣?
# 會建立一個 arr 物件
# 這個物件會一直都在
#print(appendTo(10))
#print(appendTo(20, [4, 5, 6]))
# 加到 appendto(10) 所建立的物件中
#print(appendTo(20))
# 加到 appendto(10) 所建立的物件中
#print(appendTo(30))
#print(appendTo(40))
9. 不定個數的參數,使用 * (一)
# 函數接受不定個數的參數
# 利用 * 將所有的參數,收集到一個 tuple(唯讀 List)中
def sum_many_item(*numbers):
print(type(numbers))
print(numbers)
total = 0
for number in numbers:
total += number
return total
11. 不定個數的參數,使用 **
# 函數接受不定個數的參數
# 型態不相同,名稱也有其意義
# 利用 * 將所有的參數,收集到一個 dict(key-value)中
# dict 格式 {"key1" : "value1", "key2" : 10, "key3" : "word1"}
def use_dict_argu(**dict):
print(type(dict))
print(dict)
for dict_key in dict.keys():
print(dict[dict_key])
#use_dict_argu(ABC = 10, DFE = 20, DFG = "12345")
12. 巢狀函數 - 以選擇排序法為例(一)
# 巢狀函數
# 以選擇排序法為例
def selection(number):
# def 中的 def
# 找出未排序中最小值
def min(m, j):
if j == len(number):
return m
elif number[j] < number[m]:
return min(j, j + 1)
else:
return min(m, j + 1)
13. 巢狀函數 - 以選擇排序法為例(二)
# 排序迴圈
for i in range(0, len(number)):
# 找出較小者
m = min(i, i + 1)
if i != m:
# 進行交換
number[i], number[m] = number[m], number[i]
#主程式執行方式
number = [1, 5, 2, 3, 9, 7]
selection(number)
print(number)
14. 函數遞迴 練習題
1. 費式數列(Fibonacci)的定義如下:
F(0) = 0
F(1) = 1
F(n) = F(n-1) + F(n-2)
利用遞迴呼叫,求得以下費式函數的值
F(10) = ?
F(20) = ?
F(50) = ?
參考網址:
https://openhome.cc/Gossip/AlgorithmGossip/FibonacciNumber.htm