2008年4月29日 星期二

Python 的字元編碼

Python 並不像其它語言一樣,看你的程式碼檔案是什麼字元編碼就用什麼編碼來解讀內部的字串。所以必須在檔案開頭處清楚地宣告
# -*- coding: utf-8 -*-
當然你的程式碼檔案也要存成對應的編碼才能正常執行。

而如果在一個 utf-8 編碼的程式碼裡,若要將某 utf-8 字串轉成 cp950 (在 Windows 上蠻常用的)的話,只要:

str = "我是UTF-8的字串"
print str.decode('utf-8').encode('cp950')

就可以了。相當方便!

Python 版的 switch case

其實一直不太清楚為什麼 Python 內建的語法會沒有 switch/case 的用法,所以這時候只好自己做一下了

如果本來在 C 裡會寫這樣:

x = 0;
switch (value) {
case 1:
x += 1;
break;
case 2:
x *= 5;
break;
...
}

那在 Python 裡可以寫成這樣:
x  = 0
{
1: lambda y: y += 1,
2: lambda y: y *= 5
...
}[value](x)


簡單地說就是用 dictionary 來作。

2008年4月24日 星期四

簡易密碼產生器