發表文章

目前顯示的是 7月, 2018的文章

透過Vue實現限制數入字數

我們都知道,平常在社群網站上會限制使用者輸入的字數。最具代表性的網站就是Twitter,Twitter限制一般使用者每次發表文章的字數在140字以內。讓使用者用最簡短的文字來表達想法。對於優化使用者體驗比較好的方式是,當使用者在輸入的同時,提示使用者還有多少字可以輸入,當使用這輸入的字數達到限制時,及時地停止使用者繼續輸入。 像這樣子限制使用者輸入字數的機制要如何來實現呢? 有兩的點需要注意: 如何計算使用者輸入了多少字? 當使用這輸入的字數達到限制時,該如何停止繼續輸入? 今天我們就要透過Vue.js來製作一個可以幫我們控制輸入字數的程式。首先,我們先準備好需要的HTML檔案。 <!DOCTYPE html> <html lang=“zh-TW”> <head> <meta charset=“UTF-8” /> <meta name=“viewport” content=“width=device-width, initial-scale=1.0” /> <meta http-equiv=“X-UA-Compatible” content=“ie=edge” /> <link rel=“stylesheet” href=“https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css” integrity=“sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO” crossorigin=“anonymous” /> <title>Start</title> </head> <body> <div id=“app” class=“container”> <div class=“row”> <div class=“col”> <textarea cols=“30”

使用 Vue.js -安裝與建立第一個應用程式

圖片
Vue是什麼? 依照 官方說法 : Vue (pronounced /vjuː/, like view) is a progressive framework for building user interfaces. Unlike other monolithic frameworks, Vue is designed from the ground up to be incrementally adoptable. The core library is focused on the view layer only, and is easy to pick up and integrate with other libraries or existing projects. On the other hand, Vue is also perfectly capable of powering sophisticated Single-Page Applications when used in combination with modern tooling and supporting libraries. Vue是一套用來構建使用者界面的漸進式(Progressive)框架。它只處理視圖的部分,特別的是,Vue被設計為可以由下而上漸進式的適用在網站上面。並且可以與其他各種元件庫並存。Vue也完全能夠為複雜的單頁網站應用提供支援。你可以一步一步階段性的來使用,不必一開始就使用所有的部分。 Vue在設計上使用MVVM(Model-View-ViewModel)模式。當View產生變化時,會自動更新到ViewModel。反之,當Model產生變化時,也會自動更新到ViewModel。View和Model之間則透過資料的雙向綁定(data-binding)建立連結。MVVM模式讓Vue可以將視圖與資料拆分開來,並且分離,你可以只關心資料就好了。 安裝Vue安裝Vue的方法,有下面幾種: 檔案安裝 首先您需要到Vue的網站下載檔案:vuejs.org 它的位置在 guide/insatllation 裡面。 你可以看到有兩個版本可以使用: Development Version(建議在學習時使用這個版本) Produc

Python基礎篇--[字典與集合]

圖片
什麼是字典? 回想看看我們平時使用字典的方式。(我說的是實體書而不是線上字典網站)當我們使用字典查詢某個字彙時,需要先利用索引找到大致的位置,然後再翻到該詞彙的頁面確認其意義。 Python的字典(Dictionary)資料類型,類似於一般的字典。是將所有資料一組組的配對成「索引標題」與「對應的資料」儲存起來。其中的「索引標題」就是這個資料的 Key(鍵),「對應的資料」也就是這個資料的 Value(值),Value 可以是數值也可以是字串。由於這樣子的結構,我們就可以使用Key(鍵),取得Value(值)。 字典的語法如下,將所有元素放在大括號{}裡面: {'key1': value1, 'key2': value2, 'key3': value3, ....} 如果用在實際例子會是這樣: student = {"first_name": "小花","last_name":"王", "age":18 } 字典的使用方式 我們繼續以上面的students為例: student = {"first_name": "小花","last_name":"王", "age":18 } .keys() keys()可以列出所有索引值。例如: student.keys() .values() .values()可以列出所有內容資料。例如: 注意:keys與values都是複數,都有s。不要忘了。 .pop() 如果我們想要移除字典裡面的一整組索引與內容資料(Key與Value)的話,可以用pop(): student.pop("last_name") 如此,last_name這一整組資料就被刪除了。字典裡面只剩下first_name與age了。 .items() .items()可以取得字典中元素的組合。例如: student.items() 可以取得student字典中所有的key與value元素的組合。 .

Python基礎篇--[串列與元組]

圖片
之前提到過Python的資料型態包括:數值、邏輯、字串、串列、元組、字典與集合等等。其中串列、元組、字典與集合是Python的複合式資料型態。這一篇我們要來談談其中的串列與元組型態。 List串列資料型態 串列又稱回清單或列表,與其他語言中的陣列(Array)相同。串列的角色是用來儲存大量有序資料的記憶空間。每個串列擁有一個名稱作為識別標誌,串列中的每個資料稱為「元素」。最主要的特色是,儲存在同一個串列中的元素,都是以數字來當作是索引,作為操作的依據。 在使用串列的時候,只要在儲存的資料兩側加上中括號([])就可以了。 例如: my_list = [2,4,6,8,10] 如果用type()檢查my_list的型態,可以得到它是一個list串列。 串列的索引是從0開始,第一個索引值為0,第二個索引值為1,以此類推。 0 1 2 3 4 Int Int Int Int Int 2 4 6 8 10 因此, my_list[0] = 2 my_list[1] = 4 my_list[2] = 6 my_list[3] = 8 my_list[4] = 10 索引值可以是負數,例如「-1」表示最後一個元素,「-2」表示倒數第二個元素。 但是如果索引值超出串列的資料範圍,會有錯誤(IndexError: list index out of range)出現。 my_list[5] 如果您想要把一句英文拆成字母所組成的串列,可以使用list()來達成。 例如:有個字串message,我們可以用list(message) message ="Hello World" list(message) 同一個串列可以有不同的資料型態,串列也可以有其他的串列,稱作「多維串列」。要取出串列中的個別串列值,只要再多一個中括號索引值即可。 例如: p01 = ['apple', 5] p02 = ['banana', 10] p03 = ['or

Python基礎篇『加減乘除』

圖片
說到Python的加減乘除,我們要討論的是『算術運算子』。算術運算子就是我們用來執行一般數學運算的運算子。嗯,這聽起來好饒舌。簡單來說,就是加減乘除商餘等基本的數學。 下面就是算術運算子的符號: 符號 意義 + 加 - 減 * 乘 / 除 % 取餘數 // 取商數 ** 次方 下面是算術運算子的簡單運算例子,可以在Python Shell中輸入下面的表示式: 1 + 2.5 會得到: 3.5 的結果。 又如, 2 - 3.5 會得到: -1.5 的結果。 乘法: 2 * 3.5 會得到: 7.0 的結果。 除法: 2 / 3.5 會得到: 0.5714285714285714 的結果。 次方: 3 ** 4 會得到: 81 的結果。 和數學一樣,每個運算元有其優先順序,我們稱之為「優先權」。算術運算子的運算順序從左至右:次方(**)會先運算,接下來是乘(*)、除(/)、取商數(//)、和取餘數(%)。如果想要改變計算的優先順序,可以使用括號。 例如: 2+3*10**2 會得到: 302 的結果。 如果使用括號來改變順序的話, (2+3)*10**2 會得到: 500 的結果。

Regular Expression - 正規表示式在Python的用法

圖片
正規表示式(Regular Expression可簡稱為 regex)是文字模式的表示方法,其功能十分強大,可用於處理字串的強大工具。如果學會用正規表示式處理問題的話,就意味著可以用較少的程式碼完成一件事情。一個別人可能要處理很久才得以搞定的問題,正規表示式的你可能只需要幾行程式碼就解決了。 然而正規表示式本身並不是Python所獨有的。在Python中如果要使用正規表示式的話需要匯入re模組,因為所有函示都寫在re模組內。一但匯入re模組後,就可以利用re 指定搜尋的字串樣式,然後從檔案中找出符合該樣式的字串,並加以處理。 使用的時候,需要先定義一個想要比對的「字串模式」,以及要被比對的「對象字串」。簡單說,就像是這樣: result = re.match(“He’,’ “Hello World” ) 在這裡,「He」是字串模式,「Hello World」是對象字串。 match() 前面說過,match() 可以取出比對項目,來對字串進行比對。 import re message = '請來電洽詢(02)2555-1011,或致電 2555-9999' mo = re.match('請來' ,message) if mo: print(mo.group()) 但是,如果要比對字串中間的字,match() 就無法找到了。例如我們如果用同樣的程式尋找「洽詢」: import re message = '請來電洽詢(02)2555-1011,或致電 2555-9999' mo = re.match('洽詢' ,message) if mo: print(mo.group()) 這樣子就找不到任何字串了。match() 不會傳回任何東西。 我們要如何修改上面這個程式? 在「洽詢」的前面加上「.*」符號的話,就可以匹配到洽詢這個字串,因為「.*」符號表示比對尋找任何數量的字元。 import re message = '請來電洽詢(02)2555-1011,或致電 2555-9999' mo = re.match('.*洽詢' ,message) if mo: print(mo.gr

Python 基礎篇 -- [變數與資料型態]

圖片
什麼是變數? 首先,想像一下家裡的收納箱。你把一個寫著「一號箱」的標籤貼在這個收納箱上面。並且把一本書丟進這個收納箱內,然後把箱子封起來。此後,每當你尋找「一號箱」的時候,你就會找到那本書。再來,如果你把箱子打開拿出書本,換成一個馬克杯,然後一樣把箱子封起來。從此之後,每當你尋找「一號箱」的時候,你就會找到那個馬克杯。「變數」就像家裡的收納箱一樣,當程式設計者使用一個變數的時候,應用程式就會配置一塊記憶體給這個變數使用。並且以變數名稱做為辨識此記憶體區塊的標誌。 任何程式都會使用變數,變數通常用來儲存暫時的資料。 程式有各式各樣的資料型態,如果將各種資料依照不同的型態加以分類的話,不同的資料型態給予不同的記憶體配置,可以提高運作的效率。 如何使用變數? 詢問要如何使用變數的你,應該先問看看為什麼要使用變數。 使用變數,是因為透過這樣的方式,我們可以將重要的資料存在變數中以供給日後使用。 並且可以讓程式碼看起來簡潔有組織,有變動需要時也比較好變更。你可以透過下面的方式使用變數: name = value 其中,name 是「變數名稱」 = value是「變數值」。 「=」符號不是等於 上面的「=」符號在程式裡是『指定』的意思,也就是把右邊的值指定給左邊的變數。對於初學者來說,這個地方非常容易搞錯,要特別注意。這與我們以前學校學的數學運算符號不一樣,我們以前所認知的等號,在程式裡面要寫成「==」或「===」,兩個或三個連續等號。 例如:X = 5 表示,建立一個以X為名稱的變數,並且指定5為此變數的值。也就是說,當我們一看到 「=」符號時,就要先去計算右邊的式子,然後把結果放在左邊的變數裡面。 變數在命名時必須遵守一定的 命名規則 ,所以當你在建立變數的時候,請記要使用英數大寫、小寫以及底線等符號。 我們來猜猜看下面程式碼執行的結果為何? a = 1 a = 3 a = 5 print(a + a + a) 由於Python是由上而下執行程式碼的緣故,變數a會被後面行數的程式碼改變其變數值。直到第三行(a =5 )時停止改變,所以第四行列印出來的值就是 5 + 5 + 5 的結果。也就是15了。 變數的型態是什麼? 使用變數的時候,不用特別指定資料型態,因為Pyth

Python基礎篇--[輸入與輸出]

圖片
Print 函式 Print函式的功能是將括號內的字串顯示在螢幕上。 例如:一個程式的起手式Hello World。 print(‘Hello World’) 上面的程式碼是指把Hello World印出來。這裏所謂「印出來」不是要印在紙上,而是指顯示在電腦螢幕中的意思。 執行結果如下: 請注意,print的括號裡面的引號( ‘ )並沒有被印出來,因為使用引號的用意是要標示出字串的起始與結尾,引號本身不是字串的一部分。 如果想要印出空行的話,可以透過呼叫print()來實現。在print的括號內保留空白即可。 Print函數可以一次印出多個項目。只要在項目與項目之間用逗號分開,就可以一次印出多個項目。例如: print(‘John’, 100, ‘A’) 執行結果如下: 如果想要在項目與項目中間加入特殊的分隔符號來區隔的話,可以使用sep。 執行結果如下: 如果想要在列印完畢之後自動加入字元,可以使用end。 執行結果如下: Input 函式 與print命令列相反,input函式的功能是透過鍵盤輸入讓使用者輸入文字命令。這是個使用相當頻繁的命令。語法是: 變數 = input([ 提示字串 ]) 提示字串用來告訴使用者要如何輸入。當使用者輸入內容按下鍵盤上面的enter鍵之後,input命令會將使用者輸入的資料存入變數中。換句話說,當呼叫此函數之後,會取得使用者輸入的字串,並且把此字串指定給變數。 例如: age = input(“請輸入您的年齡: ”) print(age) 執行結果如下: 此外,要分辨是否為函式名稱,可以透過觀察名稱後面是否接著左右括號()來辨識。如果名稱後面跟著左右括號()的話,就是個函式:例如本篇所討論的print()與input()都屬於函式。

Python基礎篇--[變數的命名規則]

圖片
如果變數命名的好,可以讓這個程式容易被他人暸解,如此不但方便多人協同合作開發程式,也有利於日後程式碼的維護。因此,在命名的時候最好是賦予變數有意義的名稱。舉例來說,如果要記錄年齡,可以使用age作為變數(age = 20),而不要使用a( a = 20)。age看起來比a更有意義,不是嗎?  除了要有意義之外,變數在命名的時候,還需要遵守一定的規則。如果沒有遵守的話,程式在執行時,可能會產生錯誤。  下面是一般的命名規則:  英文第一:變數名稱的第一個字母必須是大小寫英文字母 。  限英數底線:變數只能由大小寫字母、數字、底線( _ ) 組成變數名稱。  大小各異:英文字母大小寫不同,視為不同變數名稱  保留禁止:變數名稱不能與Python保留字相同。  所以,如果要命名為output時,可以使用outputNumber或者是output_number來命名。  哪些字是Python保留字呢? 下面列出Python保留字 acos continue exec if log10 return And cos exp import not sin array data Fabs in open Sqrt Asin def Float Input or tan assert del finally int pass try Atan e floor is pi type Break elif for Lambda print while class else from log raise write close Except global Log range Zeros 這些保留字是原本Python中就會被使用到的,例如print、def、if、else、for 等等,不能被拿來作為變數的名稱,在命名時一定要注意,不要要踩到紅線了。 以下是不好的命