淺談 regex 及其應用

先別管 regex 了,你有用 Ctrl + F 搜尋過文章嗎?

一篇網頁文章中,搜尋「小雞」這個關鍵字,如果文章有出現這樣的字眼,就會移到出現「小雞」的位置;如果沒有,它就會說找不到。

一個簡單好用的功能。

但人生很複雜,文章內容也有千千萬萬。

當你搜尋「小雞」這個詞時,多半心裡想的是毛茸茸很可愛的「小雞」,所以當你發現找出來的結果是「小雞雞」時,心情就不會太好。但你也知道不能怪可憐的搜尋器,因為你心裡明白它是無辜的。

Continue reading

使用 Python 的生活日常系列 [1] – 圖片整理

前言

不知道你有沒有覺得花了很多時間在學寫程式,卻不知道能用來做什麼的感覺?

據我所知,許多國高中甚至已經將寫程式帶入課程之中了。但學了半天,又有多少人會去實際使用呢?感覺就像學了另一門用不著的外語一樣。以為寫程式只是用於作業而已。

即使是本科生,也有很多人覺得那不過是畢業後在職場上寫那些無聊的大程式用的。好玩的程式?厲害的程式?那是只有智商不屬於人類範疇的生物才寫的出來的東西,既然自己只是普通人,又何必強求?

「我太弱了,只會寫 Hello World,那種很厲害的東西寫不出來啦!」

有些人甚至認為--那些 ACM 高手就是程式人的範本,以為不斷地敲腦袋,想出「嚇死人不償命」的演算法,就是寫程式的一切。

想太多!

Continue reading

淺談 Python 的屬性

本文以 Python 2 為例。

這篇文章只討論新式類別(new-style class)的情況,理由是如果再加上舊式類別(old-style class) 的用法,問題會變得太過複雜,不利於理解……雖然現在這樣還是頗難懂就是了。

什麼是屬性(Attribute)?

Python 的屬性概念包含非常廣泛,基本上所有「.」之後的都是屬性。由於 Python 所有東西都是物件,所以取得某物件的屬性也可說是「從一個物件中取得附屬於該物件的另一個物件」。

chicken.weight # weight 是 chicken 的屬性
Code language: Python (python)
Continue reading

架設個人部落格的心路歷程

之所以架設這個部落格,最初是因為實驗室老師要求。

雖然老師的目的應該只是希望我們每人都能有自己專屬的網頁,能放一些研究相關的資料而已。本來這種如作業般的無聊事隨便做做即可,但我突然想到以前室友有在經營一個部落格,好像還挺有意思。而且我也發現我似乎不曾認真架過完整的網站,於是便決定趁此機會架設一個屬於自己的部落格。

我開始思索部落格應該要寫些什麼內容?花了些許時間,總結後,決定了網站成立的目標--整合所學,促進自我學習,和展示自我的空間。 所以我打算寫技術相關的文章和一些學習心得。

Continue reading

淺談 Python 的排序

本文以 Python 2 為例。

排序,即是將一組資料依據使用者的需求重新排列,以便我們查詢和分析資料。

舉例來說,我想獎勵班上前三名的同學和處罰後三名的同學,就可以將全班同學依成績由高到低排序。如此一來,序列的前三位同學即前三名,後三位則為後三名,我可以輕易的鎖定目標,將後三名的同學的頭輕輕扭下來,送給前三名當球踢……

Continue reading

淺談 Python 的 for 迴圈

本文以 Python 2 為例。

for 迴圈的基本運作

為何會需要迴圈呢?

因為世上有許多相似甚至完全相同的事情,而我卻不想手動一一列舉,好比在螢幕上依序印出二十六個英文字母。如果仔細分析,便可發現在印出的過程中,除了字母本身不同外,其餘皆完全相同。但要我為每個字母都寫一遍「print」,不是太麻煩了嗎?

# 顯示所有英文字母print "A" print "B" print "C" ... print "Z" # 重覆寫 26 遍 print 太麻煩!
Code language: Python (python)
Continue reading