---
# System prepended metadata

title: wk12_函式模組_期末專題參考
tags: [python]

---

## wk12_1123_函式模組_期末專題參考 黃冠維

ch07_函式與模組

 	
7.1  自訂函式

3. 變數有效範圍

7.2  數值函式

1. 數值函式整理
2. 指數、商數、餘數及四捨六入
3. 最大值、最小值、總和及排序

7.3 字串函式

1. 字串函式整理
2. 連接及分割字串
3. 檢查起始或結束字串
4. 字串排版相關函式
5. 搜尋即取代字串


## [inclass practice]
### {綜合演練}

實作3:

以十二小時(上午、下午)顯示現在時刻。

實作4:

小華媽媽上菜市場買菜，找錢時她希望在1元、5元、10元、50元硬幣中找回最少的硬幣。小華就利用自訂函式幫媽媽寫了一個程式。

### {範例}
2. 學生分蘋果  \
3. 總和及排序  \
4. 檢查網址格式 \
5. 以字串排版函式列印成績單 \
6. 轉換日期格式 \
8. 大樂透中獎號碼 \


```python
#大樂透中獎號碼 \
import random as r

list1 = r.sample(range(1,50),7)

special = list1.pop()
print(f"特別號 = {special}")
print(f"中獎號碼 = {list1}")

```

    特別號 = 8
    中獎號碼 = [35, 30, 32, 13, 37, 25]
    

.pop可以去掉最後一個
r.sample(數字範圍,取幾個)

### {補充練習}
1A2B

函式1 : 數字相同+位置相同

函式2 : 數字相同 + 位置不同 


```python
#1A2B
def evaluate(guess) :
    a = 0
    b = 0

    for i in range(4) :
        if guess[i] == secret[i] :
            a = a+1
        elif guess[i] in secret :
            b = b+1
    return a, b        

import random as r
secret = "".join(r.sample("123456789",4))

while True :
    guess = (input("請輸入4位數字,按enter可結束遊戲 : "))
    if len(guess) == 0 :
        print(f"byebye")
        break
    a,b = evaluate(guess)
    print(f"{a}A{b}B")
    
if a == 4 :
    print("bingo")

```

    請輸入4位數字,按enter可結束遊戲 : 4568
    0A3B
    請輸入4位數字,按enter可結束遊戲 : 6458
    1A2B
    請輸入4位數字,按enter可結束遊戲 : 6548
    2A1B
    請輸入4位數字,按enter可結束遊戲 : 6748
    2A0B
    請輸入4位數字,按enter可結束遊戲 : 6958
    1A1B
    請輸入4位數字,按enter可結束遊戲 : 6231
    1A1B
    請輸入4位數字,按enter可結束遊戲 : 6735
    2A0B
    請輸入4位數字,按enter可結束遊戲 : 6723
    1A0B
    請輸入4位數字,按enter可結束遊戲 : 6943
    2A0B
    請輸入4位數字,按enter可結束遊戲 : 6148
    3A0B
    請輸入4位數字,按enter可結束遊戲 : 6149
    3A0B
    請輸入4位數字,按enter可結束遊戲 : 6147
    3A0B
    請輸入4位數字,按enter可結束遊戲 : 6145
    4A0B
    請輸入4位數字,按enter可結束遊戲 : 
    byebye
    


      Cell In[7], line 26
        break
        ^
    SyntaxError: 'break' outside loop
    


guess[i]這部分還有點不懂，是指0 1 2 3有相同的情況嗎

## [afterclass practice]
