### wk10_1109_hackMd_函式與模組 1. hackMd 使用教學 封面、首頁、目錄 筆記內頁 2. ch07_函式與模組 7.1 自訂函式 7.2 數值函式 7.3 字串函式 7.4 亂數模組 7.5 時間模組 #### 【inclass practice】 ```python def sayHello() : print("hello, welcome !!!") sayHello() ``` hello, welcome !!! ```python sayHello() ``` hello, welcome !!! ```python def getArea(w, h) : area = w * h return area print(getArea(5, 10)) area1 = getArea(h = 10, w = 3) print(area1) ``` 50 30 ```python def Circle(radius) : area = radius * radius * 3.14 length = 2 * radius * 3.14 return area, length print(Circle(5)) print(Circle(7.7)) ``` (78.5, 31.400000000000002) (186.17060000000004, 48.356) ##### {範例} 攝氏溫度轉華氏溫度 \<ctof> 學生分蘋果 \<divmod> 總和及排序 \<sorted> 檢查網址格式 \<startswith> 以字串排版函式列印成績單 \<just> 轉換日期格式 \<replace> 擲骰子遊戲 \<randint> 大樂透中獎號碼 \<sample> 列印時間函式所有資訊 \<localtime> 計算執行一百萬次整數運算的時間 \<pcounter> ```python def cToF(x) : f = 1.8 * x +32 return f print(cToF(32)) ``` 89.6 ##### {綜合演練} 實作3: 以十二小時(上午、下午)顯示現在時刻。 實作4: 小華媽媽上菜市場買菜,找錢時她希望在1元、5元、10元、50元硬幣中找回最少的硬幣。小華就利用自訂函式幫媽媽寫了一個程式。 ##### {補充練習} 1A2B 函式1 : 數字相同+位置相同 函式2 : 數字相同 + 位置不同 ```python #單字和定義的字典 word_dict = { "apple": "a round fruit with red or green skin and sweet flesh", "dog": "a domesticated mammal that is related to the wolves", "computer": "an electronic device for storing and processing data", "ocean": "a large body of saltwater that covers most of the Earth's surface", "book": "a written or printed work consisting of pages glued or sewn together along one side and bound in covers", "mountain": "a large natural elevation of the earth's surface rising abruptly from the surrounding level" } print("歡迎來到英文單字練習!") score = 0 for word, definition in word_dict.items(): print(f"定義: {definition}") user_input = input(f"請輸入單辭的拼寫: ").strip().lower() if user_input == word: print("正確!") score += 1 else: print(f"錯誤。正確答案是 '{word}'。") print(f"練習結束。您的得分是 {score}/{len(word_dict)}。") ``` 歡迎來到英文單字練習! 定義: a round fruit with red or green skin and sweet flesh 請輸入單辭的拼寫: apple 正確! 定義: a domesticated mammal that is related to the wolves 請輸入單辭的拼寫: dog 正確! 定義: an electronic device for storing and processing data 請輸入單辭的拼寫: computer 正確! 定義: a large body of saltwater that covers most of the Earth's surface 請輸入單辭的拼寫: ocean 正確! 定義: a written or printed work consisting of pages glued or sewn together along one side and bound in covers 請輸入單辭的拼寫: book 正確! 定義: a large natural elevation of the earth's surface rising abruptly from the surrounding level 請輸入單辭的拼寫: mountain 正確! 練習結束。您的得分是 6/6。 ```python #以下是一個簡單的猜字遊戲,使用字典作為遊戲中的單詞庫。 #玩家需要猜測英文單詞的意思,並獲得積分。程式會隨機選取一個單詞,玩家需要輸入其意思。 import random # 單詞庫,包含英文單詞和它們的中文意思 word_dict = { "apple": "蘋果", "banana": "香蕉", "cat": "貓", "dog": "狗", "elephant": "大象", "flower": "花", "guitar": "吉他", # 添加更多單詞... } score = 0 # 遊戲主迴圈 while True: # 從單詞庫中隨機選擇一個單詞 word, meaning = random.choice(list(word_dict.items())) print(f"請問 '{word}' 的中文意思是?") player_guess = input("請輸入中文意思: ") # 檢查答案是否正確 if player_guess == meaning: print("正確!加10分。\n") score += 10 else: print(f"答錯了,正確答案是 '{meaning}'。\n") # 顯示分數 print(f"你的分數: {score} 分\n") # 問用戶是否繼續遊戲 play_again = input("是否要繼續遊戲?(輸入 'quit' 退出遊戲,其他任意鍵繼續): ") if play_again.lower() == 'quit': break print("遊戲結束,你的最終分數是:", score) ``` 請問 'banana' 的中文意思是? 請輸入中文意思: 香蕉 正確!加10分。 你的分數: 10 分 是否要繼續遊戲?(輸入 'quit' 退出遊戲,其他任意鍵繼續): 請問 'banana' 的中文意思是? 請輸入中文意思: 香蕉 正確!加10分。 你的分數: 20 分 是否要繼續遊戲?(輸入 'quit' 退出遊戲,其他任意鍵繼續): 請問 'cat' 的中文意思是? 請輸入中文意思: 貓 正確!加10分。 你的分數: 30 分 是否要繼續遊戲?(輸入 'quit' 退出遊戲,其他任意鍵繼續): 請問 'dog' 的中文意思是? 請輸入中文意思: 狗 正確!加10分。 你的分數: 40 分 是否要繼續遊戲?(輸入 'quit' 退出遊戲,其他任意鍵繼續): 請問 'dog' 的中文意思是? 請輸入中文意思: 狗 正確!加10分。 你的分數: 50 分 是否要繼續遊戲?(輸入 'quit' 退出遊戲,其他任意鍵繼續): 請問 'cat' 的中文意思是? 請輸入中文意思: 貓 正確!加10分。 你的分數: 60 分 是否要繼續遊戲?(輸入 'quit' 退出遊戲,其他任意鍵繼續): 請問 'cat' 的中文意思是? 請輸入中文意思: 貓 正確!加10分。 你的分數: 70 分 是否要繼續遊戲?(輸入 'quit' 退出遊戲,其他任意鍵繼續): 請問 'banana' 的中文意思是? 請輸入中文意思: 香蕉 正確!加10分。 你的分數: 80 分 是否要繼續遊戲?(輸入 'quit' 退出遊戲,其他任意鍵繼續): 請問 'cat' 的中文意思是? 請輸入中文意思: 貓 正確!加10分。 你的分數: 90 分 是否要繼續遊戲?(輸入 'quit' 退出遊戲,其他任意鍵繼續): 請問 'flower' 的中文意思是? 請輸入中文意思: 花 正確!加10分。 你的分數: 100 分 是否要繼續遊戲?(輸入 'quit' 退出遊戲,其他任意鍵繼續): quit 遊戲結束,你的最終分數是: 100 #### 【afterclass practice】 1. 綜合演練 選擇題1-10 (需抄題在markdown cell ; 有程式碼的題目要有code cell ) 2. 教學影音: - 新手入門 #07 Function (函式) - 新手入門 #09 Module (模組) #### Ch07 1. 函式的傳回值,下列何者正確? (A)無傳回值 (B) 1 個傳回值 (C) 2 個傳回值 (D)以上皆可 Ans:( D ) 2. print(max([4,8,3,9,2,6])) 顯示的結果為何? (A)4 (B)6 (C)9 (D)2 Ans:( C ) 3. print(pow(2,5,7)) 顯示的結果為何? (A)2 (B)4 (C)5 (D)7 Ans:( B ) 4. print("hospital".replace("s","t")) 顯示的結果為何? (A)hotpital (B)hospisal (C)hospital (D)hotpisal Ans:( A ) 5. print("hospital".startswith("ho")) 顯示的結果為何? (A)True (B)False (C)hospital (D)ho Ans:( A ) 6. print("hospital".find("p")) 顯示的結果為何? (A)-1 (B)0 (C)3 (D)4 Ans:( C ) 7. 下列何者不可能是 print(random.randint(1,10)) 的顯示結果? (A)0 (B)5 (C)8 (D)10 Ans:( A ) 8. 下列何者不可能是 print(random.randrange(0,15,3)) 的顯示結果? (A)0 (B)3 (C)12 (D)15 Ans:( D ) 9. 下列哪一個函式可讓程式停止執行一段時間? (A)time (B)sleep (C) perf_counter (D)localtime Ans:( B ) 10. localtime 傳回的 tm_min 資料範圍為何? (A)1到60 (B)0到60 (C)0到59 (D)1到59 Ans:( C ) ```python #print(max([4,8,3,9,2,6])) 顯示的結果為何? print(max([4,8,3,9,2,6])) ``` 9 ```python #print(pow(2,5,7)) 顯示的結果為何? print(pow(2,5,7)) ``` 4 ```python #print("hospital".replace("s","t")) 顯示的結果為何? print("hospital".replace("s","t")) ``` hotpital ```python #print("hospital".startswith("ho")) 顯示的結果為何? print("hospital".startswith("ho")) ``` True ```python #print("hospital".find("p")) 顯示的結果為何? print("hospital".find("p")) ``` 3