# Digital Learning Technology
###### tags: `homework`
## 目錄
[TOC]
## Week 2
### 2-1
```typescript
a=500
b=30.5
print(a*b)
print(a*b,"yuan")
print(500,"US dollars is",a*b,"yuan Taiwan dollars")
print(500,"US dollars = ",a*b,"yuan Taiwan dollar",sep='')
```
> 15250.0
15250.0 yuan
500 US dollars is 15250.0 yuan Taiwan dollars
500US dollars = 15250.0yuan Taiwan dollar
### 2-2
```typescript
ch=int(input())
en=int(input())
ma=int(input())
pr=int(input())
print(ch+en+ma+pr)
print((ch+en+ma+pr)/4)
```
> 80
80
90
90
340
85.0
### 2-3
```typescript
alpha='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
idnum=[]
idnum=input()
#print(idnum[0])
for i in range(len(alpha)):
if(idnum[0]==alpha[i]):
j=i
if j<10:
j='0'+str(j+1)
else:
j=j+1
print(j,f"{idnum[1:]}",sep='')
```
> A1545645
011545645
## Week 3
### 3-1
```typescript
ch=int(input())
en=int(input())
ma=int(input())
pr=int(input())
avg=(ch+en+ma+pr)/4
print(avg)
if avg>=80:
print('A')
print('pass')
if avg>=70 and avg<=79:
print('B')
print('pass')
if avg>=60 and avg<=69:
print('C')
print('pass')
if avg<=60:
print('D')
print('not pass')
```
> 80
80
90
90
85.0
A
pass
### 3-2
```typescript
n=1
total_list=[]
while(n!=0):
n=int(input())
total=-1
for i in range(int(n)+1):
powi=pow(i,i)
total=total+powi
if total>=10:
total=total%10
else:
total=total
total_list.append(total)
for j in range(len(total_list)-1):
print(total_list[j])
```
> 1
2
3
4
5
0
1
5
2
8
3
### 3-3
```typescript
n=1
count_list=[]
try: #程式嘗試去執行這段程式碼,如果出錯了,則執行某段程式碼
while(n!=0):
n=int(input())
s=[]
for i in range(n):
s.append(input())
count=0
for i in range(len(s)-1):
for j in range(len(s)-1):
if s[j]>s[j+1]:
s[j],s[j+1]=s[j+1],s[j]
count=count+1
count_list.append(count)
except EOFError:
pass
for i in range(len(count_list)-1):
print(count_list[i])
```
> 3
3
2
1
0
3
## Week 4
### 4-1
```typescript
import pandas as pd
n = int(input())
s=[]
s1 = []
for i in range(n):
s=[int(a) for a in input().split(" ")]
total = s[1]+s[2]+s[3]
s.append(total)
avg = round(total/3,1)
s.append(avg)
if (avg>=60):
s.append("Pass")
else:
s.append("Not pass")
s1.append(s)
df = pd.DataFrame(s1, columns=['Number', 'Chinese', 'English', 'Math', 'Total', 'Average', 'Achievement'])
df.to_html("hw.html")
```
> 
### 4-2
```typescript
import numpy as np
ar=[]
a,b=map(int,input().split())
for i in range (a):
num =[int(x) for x in input().split()]
ar.append(num)
array=np.array(ar)
while(True):
num=int(input("request:"))
if(num==1):
a,b=map(int,input().split())
array = array.ravel()
array =np.reshape(array,(a,b))
elif(num==4):
print(array)
elif(num==2):
ar=[]
a,b=map(int,input().split())
for i in range (a):
num =[int(x) for x in input().split()]
ar.append(num)
array2=np.array(ar)
if(array.shape[1]==array2.shape[0]):
array = array.dot(array2)
else:
print("fail")
elif(num==3):
array=array.T
elif(num==5):
break
```
>2 3
1 2 3
1 1 1
request:1
3 2
request:4
[[1 2]
[3 1]
[1 1]]
request:2
2 3
1 1 1
1 1 1
request:4
[[3 3 3]
[4 4 4]
[2 2 2]]
request:2
2 3
2 2 2
2 2 2
fail
request:3
request:4
[[3 4 2]
[3 4 2]
[3 4 2]]
request:5
## Week 6
### 6-1
```typescript
<html>
<head>
<title>introduce myself</title>
<style>
body {
background-image: url("https://www.dramaqueen.com.tw/images/video_poster/2020/202001221113423206055f70736a9ca6616e85e37aa7df6fa7.jpg");
background-repeat:no-repeat;
background-attachment:fixed;
background-position:center;
}
</style>
</head>
<body style="background-color:powderblue;">
<h1>Hi</h1>
<h3>Name : 康書語</h3>
<h3>Hobby :
<a href="https://www.facebook.com/">Click!</a>
</h3>
<h3>Admire:<a href="https://www.youtube.com/">Click!</a>
</h3>
<img src="https://www.ingredients-store.com/data/images/c1/204x208.shrink_only.q85/fine-logo.png?_images_storage">
</br>
</br>
<img src="https://media-exp1.licdn.com/dms/image/C560BAQEL5HagAaFaoA/company-logo_200_200/0?e=2159024400&v=beta&t=1X-JLK8QYsAQB4VoMxhPAMFSem8GX70r0AVadocDXfo">
</body>
</html>
```
> ![]()
## Week 7
```typescript=
import requests
from bs4 import BeautifulSoup
with requests.Session() as s:
page = s.get('http://sys.ndhu.edu.tw/AA/CLASS/subjselect/Default.aspx')
soup = BeautifulSoup(page.content, 'lxml')
payload_loginPage = {
'ctl00$ContentPlaceHolder1$ed_StudNo': 'XXXXXX',
'ctl00$ContentPlaceHolder1$ed_pass': 'XXXXXX',
'ctl00$ContentPlaceHolder1$BtnLogin': '登入'
}
payload_loginPage["__VIEWSTATE"] = soup.select_one("#__VIEWSTATE")["value"]
payload_loginPage["__VIEWSTATEGENERATOR"] = soup.select_one("#__VIEWSTATEGENERATOR")["value"]
payload_loginPage["__EVENTVALIDATION"] = soup.select_one("#__EVENTVALIDATION")["value"]
s.post('http://sys.ndhu.edu.tw/AA/CLASS/subjselect/Default.aspx', data=payload_loginPage)
page = s.get('http://sys.ndhu.edu.tw/AA/CLASS/subjselect/course_history.aspx')
soup = BeautifulSoup(page.content, 'lxml')
data = {'ctl00$ContentPlaceHolder1$Button3':'查詢選課操作記錄'}
data["__VIEWSTATE"] = soup.select_one("#__VIEWSTATE")["value"]
data["__VIEWSTATEGENERATOR"] = soup.select_one("#__VIEWSTATEGENERATOR")["value"]
data["__EVENTVALIDATION"] = soup.select_one("#__EVENTVALIDATION")["value"]
page = s.post('http://sys.ndhu.edu.tw/AA/CLASS/subjselect/course_history.aspx', data = data)
print(page.text)
```
## Week 10
### 10-1 & 10-2
```typescript=
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_csv('CommodityPrice.csv')
for i in range(len(df)):
df.Date[i] = df.Date[i].split('/', 1)[1]
if i < 20:
df['Change%'][i] = float(df['Change%'][i].split('%')[0])
else:
df['Change%'][i] = float(df['Change%'][i].split('%')[0])
data = df[df.Price>1000]
print(data)
gold = data[data['Commodity']=='Gold']
palladiun = data[data['Commodity']=='Palladiun']
gold_futr = data[data['Commodity']=='Gold Futr']
cocoa_future = data[data['Commodity']=='Cocoa Future']
data2 = df[(df.Price>=500) & (df.Price<1000)]
print(data2)
platinum = data2[data2['Commodity']=='Platinum']
wheat_future = data2[data2['Commodity']=='Wheat Future']
soybean_futr = data2[data2['Commodity']=='Soybean Futr']
date_list = gold.Date.tolist()
fig = plt.figure(figsize=(15,12))
#plt.subplot(2, 1, 1)
ax1 = fig.add_subplot(2,1,1)
ax1.plot(date_list, gold.Price, label="Gold")
ax1.plot(date_list, palladiun.Price, label="Palladiun")
ax1.plot(date_list, gold_futr.Price, label="Gold_Futr")
ax1.plot(date_list, cocoa_future.Price, label="Cocoa_Future")
ax1.axis(ymin=1000,ymax=3000)
ax1.set_title("Commodity Price(>= 1000)")
ax1.set_xlabel("Date")
ax1.set_ylabel("Price")
ax1.legend()
ax2 = fig.add_subplot(2,1,2)
ax2.plot(date_list, gold['Change%'], 'c*--', label="Gold")
ax2.plot(date_list, palladiun['Change%'], 'y*--', label="Palladiun")
ax2.plot(date_list, gold_futr['Change%'], 'g*--', label="Gold_Futr")
ax2.plot(date_list, cocoa_future['Change%'] ,'r*--', label="Cocoa_Future")
ax2.axis(ymin=-15,ymax=15)
ax2.set_title("Commodity Change%(Price >= 1000)")
ax2.set_xlabel("Date")
ax2.set_ylabel("Chamge%")
ax2.grid()
ax2.legend()
fig.savefig('1.jpg')
fig = plt.figure(figsize=(15,12))
#plt.subplot(2, 1, 1)
ax1 = fig.add_subplot(2,1,1)
ax1.plot(date_list, platinum.Price, label="Palladiun")
ax1.plot(date_list, wheat_future.Price, label="wheat_future")
ax1.plot(date_list, soybean_futr.Price, label="soybean_futr")
#ax1.plot(date_list, cocoa_future.Price, label="Cocoa_Future")
ax1.axis(ymin=500,ymax=1000)
ax1.set_title("Commodity Price(>= 500 and <1000)")
ax1.set_xlabel("Date")
ax1.set_ylabel("Price")
ax1.legend()
ax2 = fig.add_subplot(2,1,2)
ax2.plot(date_list, platinum['Change%'], 'c*--', label="Palladiun")
ax2.plot(date_list, wheat_future['Change%'], 'y*--', label="wheat_future")
ax2.plot(date_list, soybean_futr['Change%'], 'g*--', label="soybean_futr")
#ax2.plot(date_list, cocoa_future['Change%'] ,'r*--', label="Cocoa_Future")
ax2.axis(ymin=-4,ymax=4)
ax2.set_title("Commodity Change%(Price >= 500 and < 1000)")
ax2.set_xlabel("Date")
ax2.set_ylabel("Chamge%")
ax2.grid()
ax2.legend()
fig.savefig('2.jpg')
```
1.
2.
## Week 11
我在亂做
```typescript=
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df = pd.read_csv("hualian.csv")
train = df[0:10]
x = train[['年度']]
y = train[['總人口數']]
n = len(x)
x_mean = x.mean()
y_mean = y.mean()
x = np.array(x)
y = np.array(y)
diff = (x-x_mean)*(y-y_mean)
covar = diff.sum()/10
print("共變異數:", covar)
b= covar/(x.std()** 2)
print("斜率(迴歸係數):", b)
intercept = y_mean - b * x_mean
print("截距 intercept:", intercept)
print("迴歸線:Y= {}X + {}".format(b, intercept) )
x1 = np.array([96])
y_predict = b * x1 + intercept
print('\n[96的y_predict:', y_predict)
x_new = np.linspace(x.min(), x.max(), 100)
y_new = b * x_new + intercept
plt.plot(x, y, 'go',x_new, y_new)
plt.plot(x1, y_predict, 'ro')
plt.show()
err = (y_predict-343302)/100
err
```

## Week 12
```typescript=
import pandas as pd
import numpy as np
from sklearn import datasets
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
boston = datasets.load_boston()
print("keys:\n", boston.keys())
print("\ndata shape:\n", boston.data.shape)
print("\nfield name in data:\n", boston.feature_names)
print("\nDescription:", boston.DESCR)
X = pd.DataFrame(boston.data, columns=boston.feature_names)
print(X.head())
target = pd.DataFrame(boston.target, columns=["MEDV"])
print('\n','target:', '\n', target.head(), sep='\n')
y = target["MEDV"]
lm = LinearRegression()
lm.fit(X, y)
print("迴歸係數:", lm.coef_)
print("截距:", lm.intercept_ )
coef = pd.DataFrame(boston.feature_names, columns=["features"])
coef["estimatedCoefficients"] = lm.coef_
print("\n迴歸係數:", coef, sep = '\n')
plt.scatter(X.RM, y)
plt.xlabel("Average numbwer of rooms per dwelling(RM)")
plt.ylabel("Housing Price(MEDV)")
plt.title("Relationship between RM and Price")
plt.show()
X = pd.DataFrame(boston.data, columns=boston.feature_names)
target = pd.DataFrame(boston.target, columns=["MEDV"])
y = target["MEDV"]
lm = LinearRegression()
lm.fit(X, y)
predicted_price = lm.predict(X)
print(predicted_price[0:5])
plt.scatter(y, predicted_price)
plt.xlabel("Price")
plt.ylabel("Predicted Price")
plt.title("Price vs Predicted Price")
plt.show()
XTrain, XTest, yTrain, yTest = train_test_split(X, y, test_size=0.33,
random_state=5)
lm = LinearRegression()
lm.fit(XTrain, yTrain)
pred_train = lm.predict(XTrain)
pred_test = lm.predict(XTest)
MSE_train = np.mean((yTrain-pred_train)**2)
MSE_test = np.mean((yTest-pred_test)**2)
print("訓練資料的MSE:", MSE_train)
print("測試資料的MSE:", MSE_test)
print("訓練資料的R-squared:", lm.score(XTrain, yTrain))
print("測試資料的R-squared:", lm.score(XTest, yTest))
plt.scatter(yTest, pred_test)
plt.xlabel("Price")
plt.ylabel("Predicted Price")
plt.title("Price vs Predicted Price")
plt.show()
predicted_price = lm.predict(X)
print(predicted_price[0:5])
MSE = np.mean((y-predicted_price)**2)
print("MSE:", MSE)
print("R-squared:", lm.score(X, y))
lm = LinearRegression()
lm.fit(XTrain, yTrain)
pred_train = lm.predict(XTrain)
pred_test = lm.predict(XTest)
plt.scatter(pred_train, pred_train-yTrain,
c="b", s=40, alpha=0.5, label="Training Data")
plt.scatter(pred_test, pred_test-yTest,
c="r", s=40, label="Test Data")
plt.hlines(y=0, xmin=0, xmax=50)
plt.title("Residual Plot")
plt.ylabel("Residual Value")
plt.legend()
plt.show()
```
Relationship between RM and Price

Price vs Predicted Price


Residual Plot

## Week 13
### 13
```typescript=
import pandas as pd
import numpy as np
from sklearn import preprocessing, tree
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
adult = pd.read_csv("adult.csv")
adulttest = pd.read_csv("adulttest.csv")
label_encoder = preprocessing.LabelEncoder()
money = label_encoder.fit_transform(adult["annual-income"])
sex = label_encoder.fit_transform(adult["sex"])
sex_test = label_encoder.fit_transform(adulttest["sex"])
money_test = label_encoder.fit_transform(adulttest["annual-income"])
X = pd.DataFrame(sex)
X.columns = ["sex"]
y = pd.DataFrame(money)
y.columns = ["annual-income"]
Xtest = pd.DataFrame(sex)
Xtest.columns = ["sex"]
ytest = pd.DataFrame(money)
ytest.columns = ["annual-income"]
XTrain, yTrain = X, y
dtree = tree.DecisionTreeClassifier()
dtree.fit(XTrain, yTrain)
print("準確率:", dtree.score(Xtest, ytest))
preds = dtree.predict_proba(X=Xtest)
print(pd.crosstab(preds[:,0], columns=[Xtest["sex"]]))
pd.crosstab(preds[:,0], columns=[Xtest["sex"]]).to_csv("410521232_ID3_predict.txt")
from sklearn import preprocessing, tree, neighbors
k = 3
knn = neighbors.KNeighborsClassifier(n_neighbors=k)
knn.fit(X, y)
print("準確率:", knn.score(Xtest, ytest))
print(knn.predict(Xtest))
print(ytest.values)
preds = knn.predict(Xtest)
print(pd.crosstab(preds[:], columns=[Xtest["sex"]]))
pd.crosstab(preds[:], columns=[Xtest["sex"]]).to_csv("410521232_KNN_predict.txt")
```