App Inventor 2 手機 APP 設計進階課程:雲端資源專題應用(1090721)

日期:109年7月21日(二)

主題:App Inventor 2 手機 APP 設計進階課程:雲端資源專題應用

講師:邱昭士老師

課程內容:

教學範例:

參考網站:Jing的教學園地 – 延伸學習:App Inventor 2 – 雲端資源專題應用

專題1:英文單字集

  • 先建立一英文單字及中文說明之資料庫,以CSV格式(Comma Separated Values)的文字檔案,即以『,』逗號分隔,每筆資料以Enter分行儲存,副檔名為『*.csv』。如下圖,當按下【隨機選字】按鈕,即隨機由資料庫中選一筆單字,播放出,並將該中文說明一併顯示;當按下【再唸一次】按鈕,即再播放一次該單字。
  • 重點:學會資料庫結合『TextToSpeech文字語音轉換器』、『File檔案管理』及『Web網路』元件的設計與專題應用。

以『本機資料庫』為例:(專案名稱[本機版]:vocabulary.aia)


以『雲端資料庫』為例:(專案名稱[雲端版]:vocabulary_web.aia)


專題2:台灣即時空氣品質監測



畫面編排(Designer)頁面:

  • Screen1屬性【畫面方向→設定『鎖定直式畫面』】,並核選『允許捲動』,以利編輯,待程式設計時再取消『捲動』。
  • city(下拉式選單):顯示『縣市』名稱,在【元件屬性→元素字串→輸入:全部,宜蘭縣,花蓮縣,臺東縣,基隆市,臺北市,新北市,桃園市,新竹縣,新竹市,苗栗縣,臺中市,彰化縣,南投縣,雲林縣,嘉義市,嘉義縣,臺南市,高雄市,屏東縣,澎湖縣,連江縣,金門縣】,請以「,」隔開各『縣市』名稱。參閱: 臺灣行政區劃-維基百科
  • station(清單選擇器):存放各『觀測站』名稱,需在程式設計時由雲端資料引入,故在未載入資料前【元件屬性面板→「不核取」啟用】。
  • sitename(標籤):顯示選取之『觀測站』名稱。
  • Web1(網路):在程式設計中可取得公開平台之資料來源。

程式設計(Blocks)頁面:

(一)定義全域變數:

  1. weburl:【空氣品質指標(AQI)】公開平台中『JSON』格式資料來源之網址(內含『縣市』及測站相關資料),請複製『JSON』連結網址,如下。
    http://opendata.epa.gov.tw/webapi/Data/REWIQA/?$orderby=SiteName&$skip=0&$top=1000&format=json
  2. elist:以清單儲存由雲端讀取回來之資料。
  3. listpickerstr:以字串儲存下拉式選單中之資料內容。
  4. statusaqi:儲存回傳之 AQI 狀況。
  5. statuspm25:儲存回傳之PM2.5 狀況。
  6. statusmode:用來判斷欲顯示之資料類型,0代表顯示AQI,1代表顯示PM2.5。

(二)程式設計:

專題3:台幣匯率換算

  • 台幣匯率換算,先選擇外幣別,再輸入金額,即可開始試算外幣兌換台幣,亦可『幣別交換』或選擇其他幣別兌換。
  • 重點:學會Google試算表之雲端資源及『Web網路、ListPicker清單選擇器』元件的設計與專題應用。

專題4:多媒體動畫影片作品展示

  • 先『選取動畫影片』名稱,再按下『播放』,若按下『結束』則結束App應用程式。
  • 重點:學會Google試算表之雲端資源及『Web網路、ActivityStarter啟動器』元件之設計與專題應用。

專題5:急難救援

  • 在緊急狀況時可透過手機定位資訊自動傳送簡訊或撥打電話給家人,以利快速救援。
  • 重點:學會『LocationSensor(位置感測器)、ActivityStarter啟動器』元件之設計與專題應用。

 

App Inventor 2 手機 APP 設計基礎課程(1090717)

日期:109年7月17日(五)

主題:App Inventor 2 手機 APP 設計基礎課程

講師:邱昭士老師

課程內容:

教學範例:

範例一:ai2入門範例25題 – 鶯歌高職盧淑惠老師


  • 華攝氏溫度轉換:

攝氏溫度=(華氏溫度-32)*5/9

華氏溫度=攝氏溫度*9/5+32


  • 計算飲料錢:

飲料 1 罐 15 元,一打(12 罐)150 元,假設消費者不會多買,不足一打以單罐計算,請計算購買數量所需的金額。


  • 計算等第:

  1. 優等:分數 >= 90
  2. 甲等:80 <= 分數 < 90
  3. 乙等:70 <= 分數 < 80
  4. 丙等:60 <= 分數 < 70
  5. 丁等:分數 < 60


  • 計算BMI:

參考網路:BMI值計算器

  • BMI值計算公式: BMI = 體重(公斤) / 身高2(公尺2)
  • BMI的理想範圍:
  • CSV字串:
    • BMI:18.5,24,27,30,35,1000
    • 建言:體重過輕,體重正常,稍微過重,輕度肥胖,肥胖,重度肥胖
身體質量指數(BMI)
(kg/m2)
腰圍
(cm)
體重過輕
BMI < 18.5

正常範圍
18.5≦BMI<24

異常範圍
  過重:24≦BMI<27
輕度肥胖:27≦BMI<30
中度肥胖:30≦BMI<35
重度肥胖:BMI≧35

男性:≧90公分
女性:≧80公分


範例二:九九乘法表、自訂函數猜數字練習、小畫家


  • 九九乘法表

九九乘法表_外觀編排

九九乘法表_程式設計

進階作法:


  • 自訂函式猜數字練習

自訂函式猜數字練習_外觀編排


  • 小畫家

 


進階範例:

範例三:1040701國中生暑期育樂營(觸控) – 鶯歌高職盧淑惠老師

範例四:App Inventor Code Snippets 研究

範例五:1040703國中生暑期育樂營(聲控) – 鶯歌高職盧淑惠老師.

從範例學程式進階 – Python(1080808, 10)

日期:108年8月8, 10日(四、六)

時間:9:00 – 16:00

地點:樹林國小福祿樓2樓電腦教室

主題:從範例學程式進階 – Python

講師:邱昭士

公文:

Python 入門、開發環境與工具

參考用書:

PyGame

上課用線上資源及範例:

def oddfn(x):
    # return x if (x % 2 == 1) else None
    if x % 2 == 1:
        return x
    else:
        return None
mylist = [5, 10, 15, 20, 25, 30]
filter_object = filter(oddfn, mylist) # 傳回filter object
print("奇數串列: ", [item for item in filter_object])
itemlist = [item for item in mylist if oddfn(item)]
print("奇數串列: ", itemlist)
itemlist = []
for item in mylist:
    if oddfn(item):
        itemlist.append(item)
print("奇數串列: ", itemlist)

使用 Python 處理各式文件:

一、處理 Word 文件

  • 外掛模組:python-docx
  • 下載安裝:pip install python-docx
  • 程式導入:import docx
  • 線上說明:python-docx documentation

在 python-docx 模組內,將 Word 文件結構分成 3 層:

  • Document
  • Paragraph
  • Run
wdoc = docx.Document('檔案名稱')    # 建立 docx 物件 wdoc

wdoc.paragraphs

wdoc.paragraphs[n].runs

wdoc.paragraphs[n].text

wdoc.paragraphs[n].runs[m].text

二、處理 PDF 文件

  • 外掛模組:PyPDF2
  • 下載安裝:pip install PyPDF2
  • 程式導入:import PyPDF2
  • 線上說明:PyPDF2 Documentation
pdfObj = open('pdf_file', 'rb')          # 'rb' 表示以二進位方式開啟
pdfRd = PyPDF2.PdfFileReader(pdfObj)     # 讀取 PDF 內容

三、處理 Excel 文件

wb = openpyxl.load_workbook('excel_file')

allSheets = wb.get_sheet_names()

ws = wb.get_active_sheet()

ws = wb.get_sheet_by_name('2020Q3')

四、處理 CSV 文件

fn = 'csvReport.csv'
with open(fn) as csvFile:
    csvReader = csv.reader(csvFile)
    for row in csvReader:
        print("Row %s = " % csvReader.line_num, row)
fn = 'out20_7.csv'
with open(fn, 'w', newline = '') as csvFile: # 開啟csv檔案
    csvWriter = csv.writer(csvFile)          # 建立Writer物件 
    csvWriter.writerow(['Name', 'Age', 'City'])
    csvWriter.writerow(['Hung', '35', 'Taipei'])
    csvWriter.writerow(['James', '40', 'Chicago'])

網路爬蟲

PyGame 範例

PyGame 影音教學 MovingBall

學習資源:

Python Library 與第三方程式碼:

從範例學程式初階 – Python(1080801-02)

日期:108年8月1、2日(四、五)

時間:9:00 – 16:00

地點:樹林國小福祿樓2樓電腦教室

主題:從範例學程式初階 – Python

講師:邱昭士

公文:

Python 開發環境與工具

Python 安裝

上課教材與練習程式範例:

Python Turtle

Python Turtle 影音教學

PyGame

零基礎入門學習 Python

python基礎

Python tkinter (GUI 教學)

Python 游戏开发 学习pygame精品课程

學習資源:

Python Library 與第三方程式碼: