---
# System prepended metadata

title: week10_1109_函式與模組
tags: [pynote]

---

## week10_1109_函式與模組

### ch07_函式與模組
 	
7.1  自訂函式<br>

1. 自訂函式<br>
2. 參數預設值<br>
3. 變數有效範圍<br>

7.2  數值函式<br>

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

7.3 字串函式<br>

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

7.4 亂數模組<br>

1. import 模組<br>
2. 亂數模組函式整理<br>
3. 產生整數或浮點數的亂數函式<br>
4. 隨機取得字元或串列元素<br>

7.5 時間模組<br>

1. 時間模組函式整理<br>
2. 取得時間訊息函式<br>
3. 執行程式相關時間函式<br>

### [inclass practice]

### {範例}
```
1. 攝氏溫度轉華氏溫度
```


```python
def cTOf(n):
    f = 1.8 * c + 32
    return f


c = float(input("輸入攝氏溫度"))
f = cTOf(c)

print(f"攝氏{c}度 = 華氏{f}度")
```

    輸入攝氏溫度15
    攝氏15.0度 = 華氏59.0度
    


```python
def sayHello(name = "my friend"):
    print(name, "hello, 歡迎光臨")
    

sayHello("Vivian")
sayHello()
```

    Vivian hello, 歡迎光臨
    my friend hello, 歡迎光臨
    


```python
def getArea(m, n = 10):
    area1 = m * n
    return area1
    
area = getArea(10)

print("面積=",area)
```

    面積= 100
    


```python
def circle(radius):
    length = radius * 2 * 3.14
    area = radius * radius * 3.14
    return length, area

r = 10
l, a = circle(r)

print(f"半徑{r}, 圓周{l}, 面積{a}")
```

    半徑10, 圓周62.800000000000004, 面積314.0
    

```
9. 列印時間函式所有資訊
```


```python
import time as t

print(t.time())
print(t.localtime())
```

    1699521393.6997018
    time.struct_time(tm_year=2023, tm_mon=11, tm_mday=9, tm_hour=17, tm_min=16, tm_sec=33, tm_wday=3, tm_yday=313, tm_isdst=0)
    


```python
def showNow(t):
time1 = t.localtime()
h = time1.tm_hour

if h < 12:
    now = "上午"
else:
    now = "下午"
    h = h - 12
    
# print(time1)
print(f"現在時間:{now} {h}點{time1.tm_min}分{time1.tm_sec}秒")
```

    現在時間:下午 5點24分1秒
    

### [afterclass practice]

1. 綜合演練 選擇題1-10  (需抄題在markdown cell ; 有程式碼的題目要有code cell )
2. 教學影音: 
    - 新手入門 #07 Function (函式)
    - 新手入門 #09 Module (模組)

### {綜合演練}

1. 函式的傳回值，下列何者正確？<br>
(A)無傳回值   (B) 1 個傳回值  (C) 2 個傳回值   (D)以上皆可<br>
ans:(D)

2. print(max([4,8,3,9,2,6])) 顯示的結果為何？<br>
(A)4   (B)6   (C)9   (D)2<br>
ans:(C)


```python
print(max([4,8,3,9,2,6]))
```

    9
    

3. print(pow(2,5,7)) 顯示的結果為何？<br>
(A)2   (B)4   (C)5   (D)7<br>
ans:(B)


```python
print(pow(2,5,7))
```

    4
    

4. print("hospital".replace("s","t")) 顯示的結果為何？<br>
(A)hotpital   (B)hospisal   (C)hospital   (D)hotpisal<br>
ans:(A)


```python
print("hospital".replace("s","t"))
```

    hotpital
    

5. print("hospital".startswith("ho")) 顯示的結果為何？<br>
(A)True   (B)False   (C)hospital   (D)ho<br>
ans:(A)


```python
print("hospital".startswith("ho")) 
```

    True
    

6. print("hospital".find("p")) 顯示的結果為何？<br>
(A)-1   (B)0   (C)3   (D)4<br>
ans:(C)


```python
print("hospital".find("p"))
```

    3
    

7. 下列何者不可能是 print(random.randint(1,10)) 的顯示結果？<br>
(A)0   (B)5   (C)8   (D)10<br>
ans:(A)

8. 下列何者不可能是 print(random.randrange(0,15,3)) 的顯示結果？<br>
(A)0   (B)3   (C)12   (D)15<br>
ans:(D)

9. 下列哪一個函式可讓程式停止執行一段時間？<br>
(A)time   (B)sleep   (C) perf_counter   (D)localtime<br>
ans:(B)

10. localtime 傳回的 tm_min 資料範圍為何？<br>
(A)1到60   (B)0到60   (C)0到59   (D)1到59<br>
ans:(C)
