授課老師:楊淑惠
def在python語言中為副程式,需要呼叫才會執行,常見語法如下:
配合TQC501
題目說明:請撰寫一程式,呼叫函式compute(),該函式功能為讓使用者輸入系別(Department)、學號(Student ID)和姓名(Name)並顯示這些訊息。
範例輸入:
Information Management
123456789
Tina Chen
範例輸出
Department: Information Management
Student ID: 123456789
Name: Tina Chen
函式跟之前學過的一樣,差在於函式屬於副程式,如果沒有做「呼叫」他並不會執行
程式碼:
參數是在函式中加入參數,例如 函式計算a+b ,那函式中就加入a,b,而計算a+b完後,回傳a+b,範例程式如下:
配合 TQC502
題目說明:
題目說明:請撰寫一程式,將使用者輸入的兩個整數作為參數傳遞給一個名為compute(x, y)的函式,此函式將回傳x和y的乘積。
範例輸入:
56
11
範例輸出:
616
程式:
若return 0 表示回傳值為0
學科練習:
def遞迴練習第21題
執行下列Python程式片段後,印出的結果為何?
(A)720 (B)120 ©360 (D)240
sum(5)中參數為5,將他帶進副程式
讓程式變成
之後算出s
練習:
def 學科第七題
執行下列Python程式片段後,印出的結果為何?
(A)720 (B)120 ©22 (D)6
def 學科第十三題
執行下列Python程式片段後,印出的結果為何?
(A)12 (B)34 ©27 (D)81
遞迴在學科中非常的複製,因為她會一直呼叫自己
例如程式可以寫
配合def學科第十八題
執行下列Python費式數列程式片段後,印出的結果為何?
在上方程式中,明顯看到return回傳值一直呼叫F(x),在做遞迴題目中解法如下:
1.F(6)將6代進
2.判斷6是否為1或2,如果不是會進行else,所以換句話說為以下
F(6)=F(5)+F(4)
以上來看F(6)會等於F(5)+F(4),而要如何知道F(5)跟F(4)是多少呢?必須再帶入一次
重複1. 跟 2. 的作法
判斷5是否為1或2,如果不是會進行else
F(5)=F(4)+F(3)
F(4)=F(3)+F(2)
而要如何知道F(3)跟F(2),必須再重複1. 2.
帶入F(3)
F(3)=F(2)+F(1)
而帶入F(2) 發現在做第一個if就可以執行,所以
F(2)=1
在這邊做整理一下
F(6)=F(5)+F(4)
F(5)=F(4)+F(3)
F(4)=F(3)+F(2)
F(3)=F(2)+F(1)
F(2)=1
F(1)=1
而既然知道F(2)及F(1)都是1之後,可以知道
F(3)=1+1=2
而F(3)=2後,F(4)為
F(4)=2+1=3
按照這種方式全部做出來
F(1)=1
F(2)=2
F(3)=F(2)+F(1)=1+1=2
F(4)=F(3)+F(2)=2+1=3
F(5)=F(4)+F(3)=3+2=5
F(6)=F(5)+F(4)=5+3=8
所以F(6)為8,超級複雜ㄉ
練習:
學科def 19題
執行下列Python程式片段後,印出的結果為何?
(A)10 (B)24 ©7 (D)1
學科def 35題
執行下列Python程式片段後,印出的結果為何?
(A)20 (B)190 ©210 (D)380
35題稍微難一點,可以想想看
學科def 36題
在Python中, 假設我們有以下一個使用者自訂函數A, 如下列程式片段, 若呼叫A(5),則回傳的值為何?
(A)1 (B)3 ©5 (D)11
def學科37題
下列程式片段,為Python的自訂函數,主程式執行S(4)傳回的值為何?
(A)abbab (B)ababb ©babba (D)babab