## 1. 解釋概念
1.
```
在 Unix 中 bash 是什麼?
```
## 2. 解說語法與規則
1.
```python
請說明Python變數的設定規則
```
2.
```
請說明Python中escape character的用法和列出常見的例子
```
## 3. 程式除錯、解釋錯誤原因和修正
1.
```
設計程式時出現以下錯誤,請協助修正:
AttributeError Traceback (most recent call last)
<ipython-input-8-b9d8f89049c4> in <cell line: 1>()
----> 1 a.upper()
AttributeError: 'int' object has no attribute 'upper'
```
2.
```
請Debug以下程式:
a = 235 # integer
b = "two three five" # string
c = True # boolean
d = (2, 3, 5) # tuple
e = [2, 3, 5] # list
f = {"two": 2, "three": 3, "five": 5} # dictionary
type(f)
a.upper()
```
## 4. 閱讀與解說程式碼
```
請解釋以下的程式碼:
from math import log2
count_new = 0
count_york = 0
count_new_york = 0
for i,tok in enumerate(tokens):
if tok == "new":
count_new += 1
try:
next_tok = tokens[i+1]
if next_tok == "york":
count_new_york += 1
except IndexError:
pass
if tok == "york":
count_york += 1
p_new = count_new / len(tokens)
p_work = count_york / len(tokens)
p_new_york = count_new_york / len(tokens)
pmi = log2(p_new_york / (p_new * p_work))
print("p_new =", p_new)
print("p_york =", p_work)
print("p_new_york =", p_new_york)
print("pmi =", pmi)
```
## 5. 為程式碼加上註解
```
請為以下的程式碼加上註解:
from math import log2
count_new = 0
count_york = 0
count_new_york = 0
for i,tok in enumerate(tokens):
if tok == "new":
count_new += 1
try:
next_tok = tokens[i+1]
if next_tok == "york":
count_new_york += 1
except IndexError:
pass
if tok == "york":
count_york += 1
p_new = count_new / len(tokens)
p_work = count_york / len(tokens)
p_new_york = count_new_york / len(tokens)
pmi = log2(p_new_york / (p_new * p_work))
print("p_new =", p_new)
print("p_york =", p_work)
print("p_new_york =", p_new_york)
print("pmi =", pmi)
```
## 6. 依照我們的指示設計各類程式
1. 請用Python畫出log2的圖形,並包含程式坐標軸與x=1
2. Remove the punctuations of a string using Python.
## 7. 重構與改進程式
```
請改進以下程式碼:
from math import log2
count_new = 0
count_york = 0
count_new_york = 0
for i,tok in enumerate(tokens):
if tok == "new":
count_new += 1
try:
next_tok = tokens[i+1]
if next_tok == "york":
count_new_york += 1
except IndexError:
pass
if tok == "york":
count_york += 1
p_new = count_new / len(tokens)
p_work = count_york / len(tokens)
p_new_york = count_new_york / len(tokens)
pmi = log2(p_new_york / (p_new * p_work))
print("p_new =", p_new)
print("p_york =", p_work)
print("p_new_york =", p_new_york)
print("pmi =", pmi)
```
## 其他 (早期部份LLM可能需要)
```
Please use traditional chinese in all the following response
```