mon-jai / network-programming

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Week 01

04

針對新北市公共自行車即時資訊

顯示空位數量超過 5 的場站資料

包含
sno:站點代號、sna:場站名稱、tot:場站總停車格、sbi:場站目前車輛數量、ar:地址(中文)、bemp:空位數量

06

針對全國環境輻射偵測即時資訊

輸入
一個經緯度(整數)
經度與緯度偏離值

輸出
這個經緯度周圍偏離值的監測點和監測值
以監測值大小排序

例如
經緯度(整數): 121 25
經度偏離值 2
緯度偏離值 2

輸出
(121-2, 121+2) ~ (25-2, 25+2) 包含區域的監測站的資料

07

針對新北市公共自行車即時資訊

讀取 json格式檔案

顯示場站目前有的數量超過 6 的場站資料,
以目前數量大小排序(大->小)顯示

包含
sno:站點代號、sna:場站名稱、tot:場站總停車格、sbi:場站目前車輛數量、ar:地址(中文)、bemp:空位數量

08

<?xml version="1.0"?>
<menu>
<breakfast hours="7-11">
<item price="$60">breakfast burritos</item>
<item price="$40">pancakes</item>
</breakfast>
<lunch hours="11-15">
<item price="$50">hamburger</item>
</lunch>
<dinner hours="15-21">
<item price="80">spaghetti</item>
</dinner>
</menu>

將上面XML菜單存檔 menu.xml

讀取 menu.xml

增加宵夜(Night snack) hours: 21-23
beer: $10
skewers: $20
barbecue: $15

轉成 json 格式存檔成 menu.json

09

<?xml version="1.0"?>
<data>
<country name="愛爾蘭">
<rank>4</rank>
<year>2017</year>
<gdppc>70638</gdppc>
<neighbor name="英國" direction=""/>
</country>
<country name="新加坡">
<rank>8</rank>
<year>2017</year>
<gdppc>57713</gdppc>
<neighbor name="馬來西亞" direction=""/>
</country>
<country name="巴拿馬">
<rank>68</rank>
<year>2011</year>
<gdppc>13600</gdppc>
<neighbor name="哥斯大黎加" direction="西"/>
<neighbor name="哥倫比亞" direction=""/>
</country>
</data>

將上面資料存成 cont.xml 檔案

寫程式讀取 cont.xml

  1. 加入新加坡 南邊鄰國 亞特蘭提斯,修改愛爾蘭 gdppc 值 88888,寫入 cont2.xml
  2. 讀出 cont2.xml 將所有相鄰國家列出
    愛爾蘭:英國
    英國:愛爾蘭
    ...

Week 02

01

載入 pig.csv

輸出全年成交最低平均重量的成交頭數 e.g. 2146
輸出全年成交最高平均價格的成交頭數 e.g. 1456

02

載入 pig.csv

輸出全年成交平均重量的標準差 e.g. 2.3954
輸出全年成交平均價格的中位數 e.g. 70.82
輸出全年成交平均重量的第三個四分位數 124.1

03

載入 pig.csv

輸出全年成交平均重量的成交頭數,最低前 5 筆資料(平均重量)
eg.
101
100
90
101
90

輸出全年成交平均價格的成交頭數,最高前 5 筆資料(平均價格)
eg.
90
90
91
91
100

輸出全年成交平均重量的成交頭數,最低前 5 筆資料,原本資料的次序編號
eg.
295
546
1255
2973
2084

04

使用 Pandas

載入 president_heights.csv

輸出總統身高的敘述統計資料
輸出總統身高,最高前 5 筆資料
輸出總統身高 > 180,最低的 5 筆資料

05

使用 Pandas

載入 bike.json

  1. 找出空位數大於 10 的站點資料,輸出所在區、站點名稱、地址、空位數
    eg. 新店區 大鵬華城 新北市新店區中正路700巷3號 14

  2. 根據第一點的資料,
    統計出每一區(新店區、板橋區、....)空位數大於 10 的資料,
    輸出每一區空位數大於 10 的所有站點個數
    eg. 新店區 15

  3. 根據第一點的資料,
    統計出每一區(新店區、板橋區、....)空位數大於 10 的資料,
    輸出每一區空位數大於 10 的所有加總空位數
    e.g.
    新店區 30
    板橋區 50

06

https://storage.googleapis.com/learn_pd_like_tidyverse/gapminder.xlsx

使用 pandas

計算 2002 年全球人口各國平均數
計算 2002 年全球各洲平均壽命、平均財富

Week 03

01

隨機亂數產生全班N ( 輸入)位學成績,0~100
畫四個子圖,每一個子圖要有標題、刻度、標籤樣式

  1. 長條圖 統計及格與不及格人數
  2. 折線圖 x 分數, y 人數,每五分一個區間
  3. 散射圖 x 分數, y 人數,每 10 分一個區間,自訂一個 mark
  4. 圓餅圖 81100, 6080, 0~59 三塊餅

02

查詢台銀牌告匯率

找出現金買入和賣出利差最多的前三名

03

查詢三個城市

找出小七店最多個數的街/路前三名

Week 04

01

找台積電股票
輸入2個 年期範圍
輸出現金股利與加總

02

輸入一組統一編號
輸出是否中二百元,或者差一個號碼中兩百元

1111574
中二百元

1111573
差一個號碼中兩百元

03

**氣象局-專有名詞中英詞彙對照
輸入一個中文字,輸出所有這個中文字的中文、英文對照
輸入一個英文字母字串,輸出包含所有這些英文字母字串的英文、中文對照


氣溫 Temperature ...

air
air hoar 樹霜 ...

04

環保署AQI 公開資料集

輸入城市名稱、PM2.5 值以上
輸出查詢資料 County, SiteName, AQI, PM2.5 avg, Status

臺北市
8

SQL 變成字串
欄位名稱,用雙引號括起來

SELECT 欄位名稱1,欄位名稱2 #顯示欄位資料
FROM table_name #哪一個資料庫表格
WHERE condition1 AND condition2 #過濾條件
ORDER BY 欄位名稱 #排序欄位

05

新北市不動產仲介經紀商業同業公會會員資料查詢

  1. 公司名稱關鍵字
  2. 公司地址關鍵字

input

1
產業

output

列出所有公司名稱有"產業"

input

2
中山路

output

列出所有公司地址有"中山路"

小考一

01

新北市公共自行車即時資訊(zip)
url ='https://data.ntpc.gov.tw/api/datasets/71CD1490-A2DF-4198-BEF1-318479775E8A/csv/zip'

需使用程式碼下載並解壓縮此zip檔,再使用csv讀取解壓縮出來的csv檔
統計各個站點的空位數量(bemp),

  1. 篩選出最多空位的前五個站點資訊(sno、sna、bemp),以sno由小至大排序\
  2. 輸入N,篩選出超過N個空位的站點資訊(sno、sna、bemp) ,以sno由小至大排序

Ex. 1-1
output:
sno sna bemp
1001 大鵬華城 99
1002 汐止火車站 70
1003 汐止區公所 79
1011 二重國中 88
1031 捷運景安站 80

Ex. 1-2
input:
60
output:
sno sna bemp
1000 捷運淡水站 68
1001 大鵬華城 99
1002 汐止火車站 70
1003 汐止區公所 79
1011 二重國中 88
1031 捷運景安站 80

02

新北市電動機車充電站-板橋區(json)
url ='https://data.ntpc.gov.tw/api/datasets/1688B7B8-106E-4967-AA38-DBD86D81D495/json/preview'

部分欄位說明:
sta(站名)、add(地址)、cha(是否收費)、ope(是否對外開放)、no(充電插座數)

使用程式碼讀取json格式檔案,
列出全部有收費且不對外開放的電動機車充電站資訊(sta、add、no)

Ex.
sta add no
板橋國小地下停車場 板橋區文化路一段23號B1~B3 12
永定機車行 新北市板橋區溪昆二街8號 2
來興車業有限公司 新北市板橋區新海路398號 5

03

新北市公共自行車即時資訊(xml)
url ='https://data.ntpc.gov.tw/api/datasets/71CD1490-A2DF-4198-BEF1-318479775E8A/xml/preview'

將此xml資料存取為data1.xml,再使用程式碼讀取data1.xml

step 1:新增一個row

<row>
<sno>1033</sno>
<sna>家樂福新店店</sna>
<tot>30</tot>
<sbi>29</sbi>
<sarea>新店區</sarea>
</row>

step 2:將sno:1018站點資訊的sbi修改為0
step 3:將上述兩步修改後的資料寫入data2.xml
step 4:讀取data2.xml,列出所有新店區的站點資訊(sno、sna、tot、sbi)

Ex.
sno sna tot sbi
1001 大鵬華城 14 5
1002 汐止火車站 22 18
1003 汐止區公所 8 2

04

臺灣銀行新台幣黃金存摺牌價
url='https://www.bot.com.tw/Govinfo/opendata/csv/233/110GoldPassbook.csv'

使用numpy讀取csv檔,

  1. 列出本行買入價格最低價的前五筆資訊(日期、本行買入價格、本行賣出價格)
  2. 輸出本行買入價格的中位數
  3. 輸出本行賣出價格的平均值(四捨五入至小數點後第二位)
  4. 輸出本行賣出價格的標準差(四捨五入至小數點後第二位)

Ex.
日期 本行買入價格 本行賣出價格
20211220 1601 1622
20210326 1611 1603
20210521 1623 1640
20210111 1644 1670
20210909 1645 1640

本行買入價格的中位數:1704
本行賣出價格的平均值:1692.32
本行賣出價格的標準差:38.13

05

台北市公共自行車即時資訊(json)
url='https://tcgbusfs.blob.core.windows.net/dotapp/youbike/v2/youbike_immediate.json'

使用Pandas將資料轉換為DataFrame,

  1. 列出所有場站總停車格(tot)大於80的站點資訊(sno、sna、tot)
  2. 統計並列出每區的場站總停車格(tot)總數

Ex.
sno sna tot
1001 大鵬華城 16
1002 汐止火車站 22
1003 汐止區公所 19

sarea total_tot
大安區 97
中山區 128
南港區 102

06

依常態分佈隨機產生全1000位學生的身高,mean: 170、standard deviation: 10
參考程式碼 : height = np.random.normal(170,10,1000)

統計所有身高介於141~200之間的學生,
畫兩個子圖(上下排列),每一張子圖要有標題及刻度

(1)折線圖:標題為”height line chart”,每5公分為一個區間
ticks = ['141-145', '146-150', '151-155', '156-160', '161-165', '166-170', '171-175', '176-180', '181-185', '186-190', '191-195', '196-200']
(2)圓餅圖:標題為”height pie chart”,每10公分為一個區間
labels = ["141-150", "151-160", "161-170", "171-180", "181-190", "191-200"]

07

地震測報中心-全球地震
url='https://scweb.cwb.gov.tw/zh-tw/earthquake/world/#'

列出規模最大的前3筆地震資訊(地震時間、深度、規模、地震位置),
若規模相同則再以深度由淺至深排序

Ex.
地震時間 深度 規模 地震位置
2022/09/29-11:03 10 6.8 南大西洋南三明治群島東方
2022/09/24-06:53 12 6.1 墨西哥米卻肯
2022/09/24-04:52 48 6.1 印尼巴布亞

08

ibon便利生活站門市查詢
url='https://www.ibon.com.tw/retail_inquiry.aspx'

輸入一個路/街名,
輸出所有依此查詢出的門市資訊(店號、店名、地址),
以城市(縣市)為群組(同一城市可能有相同的路、街名),
再以門牌號碼由小到大排序。

註:

  1. 以城市為群組意思為僅需將相同城市之門市置於前後行相繼輸出,而城市間的輸出順序並沒有限定。
  2. 門牌號碼皆以地址中第一組門牌號碼來排序,且測資所查詢出的第一組門牌號碼不會出現連字號或頓號等特殊符號。

Ex.
input:
青年路

outptu:
店號 店名 地址
148052 青園 台北市萬華區青年路18號1樓
188599 鑫青天 台北市萬華區青年路144號
238739 青年 台北市萬華區青年路188號1樓
207492 展奇 高雄市鳳山區青年路2段169號1.2樓
183206 澄清湖 高雄市鳳山區青年路二段596號.598巷2.4號1.2樓
936484 武德 台南市中西區青年路134號
251732 慶東 台南市東區青年路416號
903831 日南 台中市大甲區日南里青年路130號

09

財政部統一發票兌獎網頁

1、2月中獎號碼url:
https://www.etax.nat.gov.tw/etw-main/ETW183W2_11101/
3、4月中獎號碼url:
https://www.etax.nat.gov.tw/etw-main/ETW183W2_11103/
5、6月中獎號碼url:
https://www.etax.nat.gov.tw/etw-main/ETW183W2_11105/
7、8月中獎號碼url:
https://www.etax.nat.gov.tw/etw-main/ETW183W2_11107/

輸入
N (總計要兌幾張發票)
N 組統一發票號碼
M (月份,範圍 1、2、3、4、5、6、7、8)
輸出每一張發票兌中該月份哪一個獎及該獎獎金,並輸出加總獎金。
獎項類別 : 特別獎、特獎、頭獎、二獎、三獎、四獎、五獎、六獎

Ex.
input:
3
05701949
97718570
65038222
7

output:
05701949 無 0
97718570 特獎 2000000
65038222 三獎 10000
total_price:2010000

Cleaning up

Remove-Item "$Env:LOCALAPPDATA\Google\Chrome\User Data\" -Force -Recurse

About


Languages

Language:Python 88.0%Language:C 10.2%Language:PowerShell 1.8%