第一周
==
1. 指令
輸出 print() #要輸出非變數與參數時須加上上引號
ex:
```python=
print("程式設計")
# 執行結果:程式設計
x=2
print(x)
# 執行結果:2
```
:::danger
- 程式碼的部分可以善用共筆標籤框起來,如上(請看編輯模式)
- python 中的註解方式:在註解前方加上一個 #
> [name=By 助教]
:::
輸入 input()
2. Python Arithmetic Operators
+(加)
ex:
x=5
y=6
print(x+y)
11
-(減)
ex:
x=6
y=5
print(x-y)
1
*(乘)
ex:
x=6
y=5
print(x*y)
30
/(除)
ex:
x=6
y=3
print(x/y)
2
%(模除)
ex:
x=5
y=2
print(x%y) #5/2=2.....1 5%2=1
1
**(次方)
ex:
x=2
print(x**3) #2*2*2=8
8
// (取商數)
ex:
x=5
y=2
print(x//y) #5/2=2.....1 5//2=2
2
3. Python Assignment Operators
=(指定)
ex:
x=5 #將5指定給x
+=
ex:
x = 5
x += 3 #same as x=x+3
print(x)
8
以此類推任何的Arithmetic Operators加上=(任意數字)後皆變成x=x Arithmetic Operators(任意數字)
4. Python Comparison Operators
==(相等) #須注意=跟==不一樣,x=y是將y指定給x,而x==y是x與y相等
ex:
x=3
y=3
x==y
ture
!=(等式不相等)
ex:
x=3
y=2
x!=y
ture
<(小於)
>(大於)
<=(小於等於)
>=(大於等於)
5. Python Logical Operators
and 符號&(兩者皆須符合)
ex:
x=5
x<6 and x>3
ture
or 符號|(兩者只須符合一個即可)
ex:
x=5
x<6 or x>6
ture
not 符號~(否定)
ex:
x=5
print(not(x > 3 and x < 10))
false
6. 程式執行順序
ex:
x=5
y=6
print(x+y)
11
這段程式碼中電腦是先將5指定給x,再將6指定給y,之後先計算print括號內的x+y最後再將x+y輸出。
第二周:小組作業題目解題
===
1.import math
x=math.sqrt(2)
y=math.sqrt(7)
print(x*y)
Ans:3.7416573867739418
2.import math
pow(121,2)+2*121*79+pow(79,2)
And:40000
3.import math
pow(10,6)*pow(10,6)/pow(10,4)
Ans:100000000
4.168*317
And:53256
5.import math
6/(math.sqrt(12-2*math.sqrt(27)))
And:4.732050807568878
6.import math
math.sqrt((3+math.sqrt(5))/2)
Ans:1.618033988749895
7.import math
(math.sqrt(4038)+math.sqrt(4036))*(math.sqrt(2019)-math.sqrt(2018))
Ans:1.41421356237317
8.
9.
10.import math
abs(2-8)+abs(4.5-7)-abs(5/4-4/5)
Ans:8.05
11.import math
pow(246,5)/pow(123,5)+pow(1107,4)/pow(369,4)+pow(936,3)/pow(234,3)
And:177
12.import math
math.sqrt(1/pow(5,2)+1/pow(4,2)+1)
Ans:1.05
筆記:
Python 基本語法
Indentation(縮排)

(1)使用時,必須要有空格,沒有空格,會被給錯誤
Ex:

(2)需使用相同數量的空格,否則會被給錯誤
Ex:
第四周小組筆記
===
Python 基本語法
Indentation(縮排)

(1)使用時,必須要有空格,沒有空格,會被給錯誤
Ex:

(2)需使用相同數量的空格,否則會被給錯誤
Ex:
3/14
===
#串列可能使用的工具

範例:
1.

2.

#彙總函數
print(len(行列))#長度
print(max(行列))#最大值
print(min(行列))#最小值
print(sum(行列))#加總
3.迴圈的概念及範例
指在串列中每個元素都走訪一遍,再來印出符合條件的元素
範例:
範例1.
範例2.
3/21
===
迴圈的利用
紙筆小考解題
**第一題**

解題:

**第二題**

解題:

**第三題**

解題:

**第四題**!
[](https://i.imgur.com/31vPSEn.jpg)
解題:

**第五題**

解題:

**第六題**

解題:

3/28
==
## 字典 Dictionaries
透過鍵(key)來查找值(value)
範例:



### Key() 的使用 可列出所有鍵
範例:

### Values 的使用 可得字典中的值
範例:

### 增加項目
car = {
"brand": "Porsche",
"model": "911",
"year": 1963
}
x = car.keys()
car["age"]="20"
print(x)

### 更新字典中的值
方法1 :
car = {
"brand": "Porsche",
"model": "911",
"year": 1963
}
x =car.values()
print(x)
car["year"] = 1964
print(x) #新增項目之後

方法二:使用 update()
car = {
"brand": "Porsche",
"model": "911",
"year": 1963
}
x =car.values()
car.update({"year":"1964"})
print(x)

### 使用for 迴圈
使用字典練習資料集(學號與姓名)
dict = {
"109213504”:“麥禮仁",
"110211049”:“稅正祺",
"110211003”:“林志宬",
"110251009”:“王博賢"
}
範例1:

範例2:
### Set集合
```
集合用於在單個變數中存儲多個項,並且集合為無序的,因此無法確定專案將以哪種順序顯示。也不可重複
```
範例:

```
增加項目加入集合
```
方法一:add()
方法二:update()
```
集合(sets)從 0,1,2,3...開始計算
```

```
算len()有包含標點符號
```
4/11
==
# 讀取與寫入雲端資料夾的檔案 (上課老師範例)
```
必須先到Google Drive建立資料夾
檔名 : ___TestData
```
寫入文字檔案
```
# 手工掛載雲端硬碟
# 寫入CSV
with open('/content/drive/MyDrive/___DataSet//001_Hello.txt', 'w') as f:
f.write('Hello Google Drive 蔡至洹')
# 讀取CSV
with open('/content/drive/MyDrive/___DataSet//001_Hello.txt', 'r') as f:
ss=f.read()
print(ss)
# 刪除檔案
import os
if os.path.exists("/content/drive/MyDrive/___DataSet//001_Hello.txt"):
os.remove("/content/drive/MyDrive/___DataSet//001_Hello.txt")
print("檔案已經刪除")
else:
print("檔案不存在")
```
# excel 應用
```
#讀取雲端硬碟中的excel檔
import pandas as pd
df = pd.read_excel('/content/drive/My Drive/___DataSet/001_Income_F.xlsx')
df
```
```
#讀取雲端硬碟中的excel檔
import pandas as pd
data = pd.read_excel("/content/drive/My Drive/___DataSet/110 學年度全國大專校院及校長名錄(含學校本部地址).xlsx")
data
```
讀取csv檔
```
import pandas as pd
df = pd.read_csv('/content/drive/My Drive/___DataSet/opendata110road.csv')
df
```
# Pandas DataFrame
```
主要用來處理雙維度的資料,也就是具有列(row)與欄(column)的表格式資料集,所以經常應用於讀取CSV檔案、網頁表格或資料庫等
```
使用字典建立df
```
import pandas as pd
grades = {
"學號": [ "A001", "A002", "A003", "A004", "A005"],
"體重": [60, 50, 80, 75, 72],
"身高": [165, 157, 182, 175, 170]
}
df = pd.DataFrame(grades)
print(df)
```

利用陣列建立df

4/25
==
# 個人專案
研究專題
1. 研究背景
2. 研究問題
3. 資料來源
4. 資料欄位的意義
5. 資料清理
6. 資料視覺化
7. 指標/統計量
8. 研究發現
9. 結論
10. 參考文獻
4.技術基本要求
* 使用Colab展示
* 要有資料檔案,檔案需為excel或csv格式。
* 資料檔案要放到google drive內。
* 用pandas讀取檔案
* 用dataframe呈現整體資料
* 資料檢查與資料清理
* 把資料視覺化
* 根據資料,算出一些統計量或者有意義的指標
5/2
==
# 課後老師遺留問題:吉尼係數是什麼 ?
定義 : 是吉尼係數乘100倍作百分比表示。在民眾所得中,吉尼係數最大為「1」,最小為「0」。前者表示居民之間的年所得分配絕對不平均(即該年所有所得都集中在一個人手裏,其餘的國民沒有所得),而後者則表示居民之間的該年所得分配絕對平均,即人與人之間所得絕對平等,吉尼係數的實際數值只能介於這兩種極端情況,即0~1之間。

# 使用Python計算吉尼係數

得下圖 :

# 期中課堂加分作業
[](https://)https://colab.research.google.com/drive/1TuCBChckJgCnX6OK65qWnFw8nflzPxrP#scrollTo=VtAiD4b35nhS
5/9
==
完成小組專題 : 總結的部分(已完成)
課堂練習
https://hypebeast.com/zh/2021/10/nba-highest-paid-players-2021-22-lebron-james
根據網站做出羅倫茲曲線以及吉尼係數
5/16
==
# 函數
上課範例
https://www.w3schools.com/python/python_functions.asp)
課堂小考
1.請定義一個函數myFunction,傳入一個參數n。此函數可以計算出1,2,…,n的總和。函數能傳回後的總和。(必須用for迴圈完成)。
解 :

2.請定義一個函數myFunction,傳入一個參數n。此函數可以找出1,2,…,n的之間2的倍數,並列印出到螢幕上。(必須用for迴圈完成)
解 :

3.請在螢幕上印出如下圖案 (必須用for迴圈完成)

解 :

5/23
==
(1).請定義一個函數myFunction,傳入一個參數n。此函數可以計算出123…n的總和。函數能傳回後的總和。(必須用for迴圈完成)

(2).2.請定義一個函數myFunction。此函數可以列出1到9的乘法表,列出的方式如下所示:(必須用for迴圈完成)
乘法1 11=1 12=3 … 1*9=9
乘法2 21=2 22=4 … 2*9=18
乘法3 …
乘法9 91=9 92=18 … 9*9=81

(4).請定義一個函數myFunction,傳入一個參數n。此函數可以找出所有除數,這些除數除以n能夠整除,並將這些因數印出到螢幕上。例如:假設你傳入參數10,函數印出 1,2,5,10。列印時從1印出。(必須用for迴圈與判斷式完成)

(5).請定義一個函數myFunction,傳入一個參數n。此函數可以找出所有除數,這些除數除以n不能夠整除,並將這些因數印出到螢幕上。例如:假設你傳入參數10,函數印出 3,6,7,8,9。除數要小於n(必須用for迴圈與判斷式完成)
