Uncategorized

Python循環語句 : while循環

一.前言:  本文內容將會介紹Python While循環語句定義及語法,文章嵌入代碼示範如何使用。   二.大綱: while 循環語句 案例:輸入用戶資料 for與while間的選擇   三.while 循環語句 在程序編寫的過程中,在循環沒有固定次數的情況,會選擇使用while循環。 其基本語法結構為: while( 條件式 ): #「( 條件式 )」的括號可省略 要執行的代碼 條件式 = True  → 執行程式區塊。…
celia
April 13, 2020
Uncategorized

Python循環語句 : for循環

一.前言: 本文內容將會介紹Python for循環語句的用法,文章嵌入代碼示範如何使用。 二.大綱: 何謂迴圈? for 循環語句 for...else語句 案例:打印出1-100間的偶數 三.何謂迴圈   在程序編寫的過程中,會經常重複執行一些相同的步驟;而迴圈的用途是讓指定的某段敘述在條件符合的情況下一直重覆執行。我們可以利用迴圈來進行重覆性的資料輸入、處理與輸出。 四.for 循環語句 Python中,for 循環語句寫法如下: for x in sequence: # 放要執行的東西 for 和 in…
celia
April 9, 2020
Uncategorized

JS 學資料結構與演算法 (排序篇) — 選擇排序法 & 插入排序法

前言這篇文章將為排序篇章做一個結尾,文章會介紹選擇排序 (Selection Sort) 與插入排序 (Insertion Sort) 兩種排序法,透過上圖的排序法複雜度一覽表可以發現他們的執行效能相比其他排序法來的差一點,因此比較不常被使用,但要強調的是他們仍然有適合使用的情境,本篇文章將會簡單紀錄這兩個演算法的定義與程式碼實作。選擇排序法 (Selection Sort) 選擇排序法示意圖簡單來說選擇排序法一直重複的做兩件事:從尚未經過排序的陣列中找到最小值將當前找到最小值擺到最左邊時間複雜度 O(n²)程式碼範例這邊先設陣列的第一個數字是目前的最小值,然後往後把陣列的數值一個一個讀取,如果讀取的下個數比最小值大,就不作處理。而如果讀取到的數比目前的最小值小,就把目前的最小值換成這個數。重複這個方法把所有陣列裡的數都讀過一遍,就能確保目前的最小值為整個數列的最小值,扣除掉已經確定的最小值,剩下未確定的元素再重複執行以上步驟,直到陣列完成排序。function selectionSort(array) { const length = array.length; for(let i = 0; i < length; i++){ //…
學程式助教
March 16, 2020
Uncategorized

用Vue.js框架實作自己的Blog – CH3 Vue實例

上回這裡成功的建置環境後,進入下個環節的討論。就是在接觸框架之前,其實並不是非常明白所謂的架構,就會常常出現各種功能混在一起的情況,像是一個Js事件需要同時處理「資料變動」、「樣式修改」或是「資料處理」以及「後端互動」,雖說在開發時都算順利,但過了幾天後回來開發,或是後來要針對網站進行改動維護,卻完全不知該從何下手,而這也就是框架最大的價值,他讓我們在開發時,每一段Code可以專注處理某一個部分的任務,結構分明,在維護上也能更加輕鬆。   開始使用Vue.js   在Vue的官網其實有明確指出「建議不熟悉Vue或是node.js環境使用的開發者先不要使用Vue-Cli」,所以建議一開始接觸Vue.js框架可以先從CDN開始熟悉,基本上只需要在HTML檔的 <head> 中引入CDN即可使用: //開發者模式版本 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> //產品開發使用的穩定版本 <script src="https://cdn.jsdelivr.net/npm/vue"></script>   創建Vue實例 在引入CDN之後,要讓網頁能夠成功顯示需要有兩個要件,分別是模板 (Template)與實例 (Vue Instance),模板可以直接建立在HTML檔中,而實例則是Vue的Javascript物件實例,首先我們先從實例開始說起。 Vue的實例主要是關注資料面的操作,他會負責控管資料以及處理資料,而在Vue的實例中,物件的屬性與方法是有既定寫法的,最核心的屬性設定有 el 以及 data ,el 是指Vue實際掛載在DOM的哪一個節點,通常這個屬性會設定為 "#app" ,這個「掛載」的觀念會在後面的章節中做解釋,這邊可以先把他理解為Vue實際能在DOM中的作用範圍,如果超出這個節點,Vue就無法控制了;接著 data 則是這個頁面會使用到的資料,寫法就是 Object ,key是在模板使用的資料名稱,Value是資料的實際內容,像下方的範例就是我們在Vue中建立了一筆資料,資料的變數名稱叫作 text ,而資料內容是 "Hello World!": var vm = new Vue({ el:…
學程式助教
March 11, 2020
Uncategorized

用Vue.js框架實作自己的Blog – CH2 環境建置

在上回這裡對Vue有了基礎概念後,在開寫Vue之前肯定需要經歷一番環境建置的陣痛期啦~不過其實在建置Vue.js的環境我個人覺得還算友善,不像某Tensor開頭的機器學習框架,要建立GPU計算的環境真的是弄到懷疑人生......,今天就來跟大家分享一下小弟在建置Vue.js環境時遇到的過程以及遇到的狀況   首先,那個Node.js與NVM (Node Version Manager)   因為在學習Vue之前我主要都是利用SFTP auto save上傳到Host然後再看改動的方式開發,基本上沒有接觸過本地端的開發方式,所以也沒有使用過Node.js的經驗,所以在安裝Vue之前必須先進行Node.js的環境安裝,基本上這也是在所以過程中最讓我印象深刻的地方。   安裝Node.js有幾種方式,第一種就是直接上Node.js的官方網站下載直接安裝,我一開始也是直接利用這種方法,但後來後悔了;第二種是利用Node的版本控制工具 - NVM進行安裝,這是我蠻推薦的作法,畢竟在開發或維護不同的專案時,每個專案開發時的Node版本可能不盡相同,所以這時候NVM的優勢就是可以讓我們直接快速地進行Node.js的版本切換,不用再刪除重裝之類的。   要安裝NVM的方法基本上非常簡單,只需要使用他們官方的Github上說明的指令,即可在Terminal進行安裝: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash 在下載完NVM之後可以嘗試在Terminal執行 nvm --version 如果他有回應相應的版本號,就代表NVM安裝成功了,接著就可以進一步利用NVM安裝Node.js。   利用NVM安裝Node.js…
學程式助教
March 11, 2020
Uncategorized

用Vue.js框架實作自己的Blog – CH1 新的開端

接觸前端到現在也差不多快一年半了,過去在開發前端的時後,都是使用原生javascript與jQuery以及php進行開發,雖然隨著時間推移接觸到的東西越來越多,開始有了有系統性開發與後續維護的需求,剛開始頂多就是將JS與php物件化,但還是無法完全解決頁面控制以及資料、事件、渲染、樣式控制等不同任務間的分離,所以開始接觸Vue.js框架來增加開發效率並且將原本幾乎純手刻的這個Glovecoding blog進行翻新,順便寫篇系列紀錄一下~ Beginner of Vue 在約莫半年前的時候其實就有試著自學Vue框架的想法了,但當時自己的背景知識量還不大夠,包括AJAX的運作以及同步異步的線程阻塞問題等,在當時都是我無法掌握的技術,最近把這些東西補齊並且看了根webpack相關的技術之後,才回頭撿起這個框架慢慢開始啃。Vue的框架有一個非常大的優點,尤其是對於英文較不熟練的開發者而言,因為開發Vue框架的工程師是來自中國的,所以他本身官網的技術文件都支援簡體中文,如果不習慣閱讀簡中的朋友也可以利用Chrome 的功能把它翻成繁中XD,在進入實作之前還是得先來了解一下這個框架本身的特性。 Components 組件的概念 在使用Vue框架的時候會不斷地使用到Components來進行網站頁面的組裝,依照不同的頁面需求,引入不同的components 到根(Root) 或是常見的App頁面,在這個框架中,其實整個網站結構很像一個葡萄串,從最上面的Root 到下面的頁面(View) 與組件(Component) 不斷的往下串,最終變成一個不斷串連組裝的網站結構,像我的Blog 結構大概長這樣: 整個部落格主要分為首頁、分類、關於、文章、404Notfound 五個頁面,這五個頁面會附著於#APP這個根上,而每一個頁面各自會使用到不一樣的組件進行組裝,這些組件的方便之處就在於:像是首頁與分類頁面都會使用到卡片作為文章的顯示方式,在一般的情況我們需要把相同的版型寫在不同的頁面,這就會造成在維護上的麻煩,尤其又是使用PHP生成內容的時候,只會使頁面變得越來越複雜,然而在Vue框架中,我們可以把這些會重複使用到的版型部分化做組件(Component) 他是一個獨立的模板,在需要使用到這個模板的時候,我們只需要引入這個版型即可,像blog首頁的卡片式文章顯示就是利用上圖中的紅色組件 - CardUi 所架構,而組件的運作方式在之後的文章中,我會在獨立介紹他。 資料驅動一切 在Vue框架當中,有另一項特色就在於它是利用資料驅動所有變化的,當資料發生變化時,Vue會根據我們設定的情況做出相應的改變,首先在這個架構中,資料與模板是獨立分離的,在一開始寫網頁時,我們會直接將內容寫在HTML的標籤當中,或是透過PHP在預處理階段時生成,但在Vue框架中,資料會獨立存取在Vue物件的Data中,然後在物件被實例化的Creat階段時渲染(Render) 進模板當中,像是這樣:…
學程式助教
March 11, 2020
Uncategorized

Python初學總整理 第7講:爬蟲實例解析 – 以爬取臉書社團為案例,使用 Selenium 來進行網頁模擬爬蟲

適合本篇閱讀的人:   剛接觸Python   剛入門爬蟲   範例流程: 爬取python Taiwan FB社團,在社團內部自動垂直瀏覽頁面。爬取貼文時間,併計算貼文數量。 https://gist.github.com/dreamline2/6df1c4ff4e00e36404669b1437b45820 第一部分:介紹各種python內建套件模塊   1. Selenium:程序可以直接驅動瀏覽器進行各種網站操作。       2. Webdriver:真實的模擬人對於瀏覽器的操作行為。  3. BeautifulSoup:最主要的功能是從網頁抓取數據。  4. numpy:多維數據集數學函式庫。 5.time:獲取當前的時間,操作時間和日期,從串行讀取時間及格式化時間為字符串。 …
celia
February 18, 2020
Uncategorized

Python常見的檔案處理應用

在實務上,常常有機會需要將資料寫入或讀出檔案,而Python也提供了許多相關的模組(Module)讓開發人員可以容易的進行檔案的操作。 透過本篇的教學,各位除了能夠利用Python進行基本的檔案操作外,也有能力讀取及寫入常見的資料交換格式檔案,重點包含: 基本的檔案操作 JSON檔案操作(JSON Files) CSV檔案操作(CSV Files) ZIP檔案操作(Zip Files)   一、基本的檔案操作 首先,先來看一下我們目前專案的檔案結構,如下: 現在就來分別介紹幾個Python常用的檔案操作方式:   檢查檔案是否存在 利用 Path 模組(Module)中的exists()方法,來檢查目錄下是否含有特定的檔案,如下範例: 取得檔案資訊 利用 Path 模組(Module)中的stat()方法即可取得目錄下特定檔案的資訊,如下範例: 執行結果 從執行結果可以看到包含了檔案的大小 st_size、修改時間 st_mtime 及建立時間 st_ctime 等。 重新命名檔案…
學程式助教
February 14, 2020
Uncategorized

Python是什麼? TOP7 新手必讀知識!

Python 在近幾年來受到越來越多人的青睞,現在更是 2026 年最熱門、最重要的程式語言之一。無論是 AI 開發、數據分析還是後端建置,Python 幾乎是每位工程師的必備技能。在這篇文章我們會和大家一起探討以下 5 個初學者最關心的問題: Python 究竟是什麼? Python 有什麼功能與應用場景? 學習 Python 究竟可以從事哪些行業? 必備的 Python 開發環境與軟體 推薦的 Python 實戰練習資源 (more…)
學程式助教
January 28, 2020