Python 教學
函數
陳信宏
eosinchen@gmail.com
相關程式碼,置於:
https://github.com/eosinchen/PythonCode
Python 函數
# Python 函數語法
def 函數名稱(傳入參數):
內縮敘述句
內縮敘述句
內縮敘述句
內縮敘述句
return n (用 return 結束函數,與傳回值)
用輾轉相除法求最大公約數
# 用輾轉相除法求最大公約數
def gcd(m, n):
if (n == 0):
return m
else:
return gcd(n, m % n)
同名函數
# 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'
同名函數與預設參數值
# 函數中,可以預設參數的值
# 即可用來解決參數個數不同的重載問題
def sum(a, b, c = 0):
return a + b + c
#此時執行以下呼叫就沒有錯誤
print(sum(10, 20))
關鍵字參數
# 在呼叫函式時,並不一定要依參數宣告順序來傳入參數
# 可以指定參數名稱來設定其引數值,稱之為關鍵字參數
def sum(a, b, c = 0):
return a + b + c
print(sum(c = 50, a = 45, b = 63))
函數和物件資源(一)
# 函數和物件資源
def appendTo(element, arr = []):
print("In Function => " ,end="")
print(arr)
arr.append(element)
return arr
#arr 是一個陣列,也是一個物件
函數和物件資源(二)
# 觀察以下的執行情況
#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))
不定個數的參數,使用 * (一)
# 函數接受不定個數的參數
# 利用 * 將所有的參數,收集到一個 tuple(唯讀 List)中
def sum_many_item(*numbers):
print(type(numbers))
print(numbers)
total = 0
for number in numbers:
total += number
return total
不定個數的參數,使用 * (二)
#print(sum_many_item(10, 20))
#print(sum_many_item(10, 20, 30))
#print(sum_many_item(10, 20, 30, 100))
不定個數的參數,使用 **
# 函數接受不定個數的參數
# 型態不相同,名稱也有其意義
# 利用 * 將所有的參數,收集到一個 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")
巢狀函數 - 以選擇排序法為例(一)
# 巢狀函數
# 以選擇排序法為例
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)
巢狀函數 - 以選擇排序法為例(二)
# 排序迴圈
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)
函數遞迴 練習題
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

More Related Content

PDF
Python speed up with numba
PPT
Ch6 函式
PDF
Ppt 120-126
PDF
C python 原始碼解析 投影片
PDF
Appendix B 教學
PDF
Appendix B
PDF
Ppt 136-140
PDF
Ppt 120-126
Python speed up with numba
Ch6 函式
Ppt 120-126
C python 原始碼解析 投影片
Appendix B 教學
Appendix B
Ppt 136-140
Ppt 120-126

What's hot (20)

DOC
中心教员Java面试题1
PPT
Ch1 c++總複習
PDF
竞赛中C++语言拾遗
ODP
Ihome inaction 篇外篇之fp介绍
PPTX
Intro to C++ Basic
PDF
Ppt 138-142
PDF
Ppt 78-100
PDF
Taylor example
PDF
Ppt 1-25
PDF
OOP in C - Virtual Function (Chinese Version)
PDF
Python變數與資料運算
PDF
Ch12 範例
PDF
Ppt 127-135
PDF
Ch 5
PPTX
Introduction to Basic Haskell Components (In Chinese)
PPT
C程式-函式與巨集
PDF
Ch8 教學
PDF
Python 迴圈作業
PDF
系統程式 -- 第 3 章
PPTX
Wasm text
中心教员Java面试题1
Ch1 c++總複習
竞赛中C++语言拾遗
Ihome inaction 篇外篇之fp介绍
Intro to C++ Basic
Ppt 138-142
Ppt 78-100
Taylor example
Ppt 1-25
OOP in C - Virtual Function (Chinese Version)
Python變數與資料運算
Ch12 範例
Ppt 127-135
Ch 5
Introduction to Basic Haskell Components (In Chinese)
C程式-函式與巨集
Ch8 教學
Python 迴圈作業
系統程式 -- 第 3 章
Wasm text
Ad

Similar to Ptyhon 教學 003 函數 (20)

PDF
Ch9 教學
PPTX
ncuma_函式.pptx
PDF
PDF
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
PDF
Ch 8
PPTX
函數微分_範例.pptx
PPTX
ncuma_函數微分計算.pptx
PPT
Coding guideline
PDF
PDF
Ch10 教學
PPTX
ncuma_Taylor 多項式.pptx
PPTX
Ecma script edition5-小试
PDF
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫
PPT
第4章函数
PPT
C#语言的演化
PDF
Python基本資料運算
PPTX
ES5 introduction
PPT
第7章预编译命令
PPT
页游开发中的 Python 组件与模式
PPT
第3章算法与控制语句
Ch9 教學
ncuma_函式.pptx
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
Ch 8
函數微分_範例.pptx
ncuma_函數微分計算.pptx
Coding guideline
Ch10 教學
ncuma_Taylor 多項式.pptx
Ecma script edition5-小试
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫
第4章函数
C#语言的演化
Python基本資料運算
ES5 introduction
第7章预编译命令
页游开发中的 Python 组件与模式
第3章算法与控制语句
Ad

More from 信宏 陳 (20)

PPTX
資訊管理專題研討_資管人的職場方向與能力修練_20210310.pptx
PDF
React Native App設計與開發專題研習課程 006
PDF
React Native App 設計與開發專題研習課程 005
PDF
React Native App 設計與開發專題研習課程 004
PDF
React Native App 設計與開發專題研習課程 003
PDF
React Native App 設計與開發專題研習課程 002
PDF
React Native App 設計與開發專題研習課程 001
PDF
Ptyhon 教學 002 程式流程控制(while-for)
PDF
Ptyhon 教學 001 程式流程控制(if-elif-else)
PPTX
就職 創業 即戰力_20161214
PDF
那些 App 的兩三事 關於設計、開發、行銷的一些經驗分享 v1.0.0
PDF
搜主意 App 提案計畫 for nsysu 20130409 130
PDF
App 的設計、開發、與行銷 設計篇 v1.0.0
PPTX
Android 系統的歷史、發展策略與技術創新 v1.1.0
PDF
不同尺寸與解析度的螢幕下,Android 程式 UI 的設計與解決方式
PPT
Mes 分析 第六週
PPT
Mes 分析 第五週
PPT
Mes 分析 第四週
PPT
Mes 分析 第三週
PPT
Mes 分析 第二週
資訊管理專題研討_資管人的職場方向與能力修練_20210310.pptx
React Native App設計與開發專題研習課程 006
React Native App 設計與開發專題研習課程 005
React Native App 設計與開發專題研習課程 004
React Native App 設計與開發專題研習課程 003
React Native App 設計與開發專題研習課程 002
React Native App 設計與開發專題研習課程 001
Ptyhon 教學 002 程式流程控制(while-for)
Ptyhon 教學 001 程式流程控制(if-elif-else)
就職 創業 即戰力_20161214
那些 App 的兩三事 關於設計、開發、行銷的一些經驗分享 v1.0.0
搜主意 App 提案計畫 for nsysu 20130409 130
App 的設計、開發、與行銷 設計篇 v1.0.0
Android 系統的歷史、發展策略與技術創新 v1.1.0
不同尺寸與解析度的螢幕下,Android 程式 UI 的設計與解決方式
Mes 分析 第六週
Mes 分析 第五週
Mes 分析 第四週
Mes 分析 第三週
Mes 分析 第二週

Recently uploaded (8)

PDF
教育部学历认证加急办理 | 3-5工作日拿结果!回国急用**学历认证**?普通流程需15-20天,**启辰留学服务**提供**教育部认证加急服务**,最快...
PPTX
Cute cartoon children education teaching ppt template.pptx
PPTX
人工智能和小学英语教育人工智能和小学英语教育人工智能和小学英语教育人工智能和小学英语教育
DOCX
有米其林靈魂的小籠包 需先有米其林的員工 詹翔霖服務教材.無須米其林名號陪襯的鼎泰豐
PDF
HSK Standard Course texto.pdf para idioma chino
PDF
海外学历回国如何认证?一篇读懂!(美/英/澳/加对比)【微信:viphuzhao】不同国家的学历认证流程差异大!启辰留学服务总结热门留学国的认证要点,帮你...
PPTX
人生真諦-陳信佑-20250607版人生真諦人生真諦人生真諦人生真諦人生真諦人生真諦
DOCX
想成為米其林就需先有米其林的員工 要有米其林員工需先有米其林的薪資 餐飲業困境與突破:薪資、工時與人才的挑戰x
教育部学历认证加急办理 | 3-5工作日拿结果!回国急用**学历认证**?普通流程需15-20天,**启辰留学服务**提供**教育部认证加急服务**,最快...
Cute cartoon children education teaching ppt template.pptx
人工智能和小学英语教育人工智能和小学英语教育人工智能和小学英语教育人工智能和小学英语教育
有米其林靈魂的小籠包 需先有米其林的員工 詹翔霖服務教材.無須米其林名號陪襯的鼎泰豐
HSK Standard Course texto.pdf para idioma chino
海外学历回国如何认证?一篇读懂!(美/英/澳/加对比)【微信:viphuzhao】不同国家的学历认证流程差异大!启辰留学服务总结热门留学国的认证要点,帮你...
人生真諦-陳信佑-20250607版人生真諦人生真諦人生真諦人生真諦人生真諦人生真諦
想成為米其林就需先有米其林的員工 要有米其林員工需先有米其林的薪資 餐飲業困境與突破:薪資、工時與人才的挑戰x

Ptyhon 教學 003 函數