Gimmy

學習部落格

Python Portfolio

stanCode 基礎班課程作品

1. 文字處理

  在文字處理中,學習應用變數、使用者輸入、運算子、函式、迴圈 (for loop and while loop) 及文字物件方法…等技巧。

1-1. 火箭

  主要是訓練巢狀迴圈的概念,就像剛學迴圈時,都會學到九九乘法表一樣,不過有趣的是可以輸入不同的數值,得到不同大小的火箭。

Assignment3_rocket.gif


1-2. 互補 DNA

主要訓練如何將 coding 應用在生物技術的 DNA 序列工程,在 DNA 是有四種含氮鹼基組成的,分別是 A、T、C、G,其中 A 與 T 為互補鹼基、C 與 G 為互補鹼基,因此當我們輸入了一個序列,應該回傳互補的序列,如下:

1
2
ACGTTG  # 輸入的序列
TGCAAC # 回傳的序列

  另外,假如使用者忘記轉成大寫也沒關係,這邊會自動轉換成大寫,再回傳互補基因。

Assignment3_complement.gif


1-3. DNA 相似度

  找出 DNA 序列工程的相似度,是一個很常見的應用,利用比較短的 DNA 序列,從比較長的序列中,找到配對率最高的片段。

DNA 相似度

Figure. DNA 相似度


  以上方的圖來說,可以看到左側的圖片,5 個鹼基裡面只有 3 個配對,相似率是 40%,右側的圖片,有 4 個配對成功,相似率為 80%,因此我們就會挑出 較長的基因序列 這個片段 - TGATA。

  在示範中,先輸入一個較長的基因序列:ACTGACATTG,再輸入較短的基因序列:TGCCA,得到配對率最高的片段是 ACTGACATTG;另一個示範中,主要呈現不論使用者輸入大寫或小寫英文,同樣不影響基因配對。

Assignment3_similarity.gif


1-4. 密碼學解密

  了解密碼學的基礎原理,如何加密與解密。以密碼學的入門 - 凱薩密碼為例,是透過平移單字來達到加密效果,舉例來說,如果原本的字母表第一個單字是 A,而透過平移 4 格後,A 從第一位置移動到第 5 格 (原本 E 的位置),而 L 原本在第 12 格,移動後到了 16 格的位置。

上排為原本順序的字母表;下排為加密後的字母表。

Figure. 上排為原本順序的字母表;下排為加密後的字母表。


  題目中主要以解密為主,在這裡以 WLLHA 單字為例,在平移 4 格解密後得到是 apple,另一格則是透過平移 7 格解密句子 (rhn TKx MAX UXLm!),得知原來解密後的訊息是:You are the best!

Assignment3_caesar.gif


1-5. 猜單字

  1. 首先,在遊戲開始的時候,會以底線顯示單字的長度,如果有猜到裡面的單字就會顯示該單字的位置。
  2. 而在裡面的設定有個貼心設定,如果玩家誤觸到兩個單字或按到數字,只要不是輸入「一個英文單字」,就視為玩家輸入誤觸,所以不扣剩餘次數。
  3. 如果剩餘次數歸零了,玩家依然沒能猜出單字,會印出這次的答案單字。

Assignment3_hangman.gif

2. 影像處理

  利用 Python 撰寫達到 Photoshop 的效果,如尋找火災點、鏡像風景及圖片去背,以下透過史丹佛老師撰寫的套件 - SimpleImage,訓練影像偵測 (Pixel Detection)、像素操作 (Pixel Manipulation)、綠屛處理 (remove green screen) 等…技巧。

2-1. 火災

  在影響處理中有一個很重要的應用,利用電腦偵測在森林內是否有火災,偵測到才能及時的通知當地政府災情。在本作品中會先測火災點 (紅點),將火災點標註成紅色,並且將其他區域改為灰色。

Figure. 火災影像處理前 (左圖) 與處理後 (右圖)

Figure. 火災影像處理前 (左圖) 與處理後 (右圖)


Assignment4_fire.gif


2-2. 鏡像

  如果我們將⼀個風景影像進行顛倒,並且上下並排,就可以創造湖⾯鏡像的效果。

Figure. 風景圖進行鏡像處理前 (左圖) 與處理後 (右圖)

Figure. 風景圖進行鏡像處理前 (左圖) 與處理後 (右圖)


Assignment4_mirror.gif


2-3. 圖片去背

  圖片去除背景是一個常見的處理,練習裡有兩個素材,分別綠色背景的人照與背景圖片,在這裡的需要將綠色背景的人物修圖到背景中。

Figure. 合成照片處理前 (左圖) 與處理後 (右圖)
Figure. 合成照片處理前 (左圖) 與處理後 (右圖)


Assignment4_greenbg.gif


Assignment4_greenbg.png


Assignment4_greenbg.gif


Assignment4_greenbg.png


Assignment4_greenbg.gif