Entries for the ‘Python’ Category
6 月.12, 2013 in Python
SyntaxError: ‘return’ with argument inside generator
9 月.29, 2010 in Python
原來的 Python 程式結構大致是這樣
1 2 3 4 | def f(): for i in range(2): yield i return i+2 |
看起來沒什麼問題
但實際執行後卻在 return i+2 那行出現 SyntaxError: ‘return’ with argument inside generator 錯誤
請改成下列結構就可以跑了
1 2 3 4 | def f(): for i in range(2): yield i yield i+2 |
這好像是 yield 已產生一個類似 return 的傳回型態,此時就無法再用 return 來產生回傳
Tags: Python
IndentationError: unexpected indent
9 月.27, 2010 in Python
Python 對於縮排超嚴格,一沒注意就會碰到 IndentationError: unexpected indent 錯誤
反正就是檢查程式碼的左側空間是否有 tab 或 space 混用的狀況
讓 python 編譯時無法對應
另外也還要注意多行註解符號 “”” 的位置也是要配合縮排的位置
對於剛開始探索的人,還是需要一段時間的練習才會習慣
或是換個可以一目了然非列印字元的程式編輯器也不錯
Tags: Python
wxPython GUI 設定程式Icon
2 月.08, 2008 in Python
使用 wxPython 設計GUI應用程式可用幾行程式碼來產生一個基本視窗
1 2 3 4 5 | import wx app = wx.PySimpleApp() frame = wx.Frame(None,-1,"Set Icon",size=(300,100)) frame.Show() app.MainLoop() |
執行後會出現下列圖示的視窗
可是左上角的圖示預設是沒有處理很不美觀,可以增加處理Icon的程式修改。
首先找一個Icon圖檔名稱設為 app.ico 然後放在程式同一個目錄下,然後修改程式如下:
1 2 3 4 5 6 7 8 | import wx app = wx.PySimpleApp() frame = wx.Frame(None,-1,"Set Icon",size=(300,100)) icon = wx.EmptyIcon() icon.CopyFromBitmap(wx.Bitmap('app.ico', wx.BITMAP_TYPE_ANY)) frame.SetIcon(icon) frame.Show() app.MainLoop() |
執行後就如下圖中的左上角就會出現圖示,是不是美觀多了。
載入圖示還有其他方式
方法二
1 2 3 4 5 6 | import wx app = wx.PySimpleApp() frame = wx.Frame(None,-1,"Set Icon",size=(300,100)) frame.SetIcon(wx.Icon('app.ico', wx.BITMAP_TYPE_ICO)) frame.Show() app.MainLoop() |
方法三
1 2 3 4 5 6 7 8 | import wx app = wx.PySimpleApp() frame = wx.Frame(None,-1,"Set Icon",size=(300,100)) ib = wx.IconBundle() ib.AddIconFromFile("app.ico",wx.BITMAP_TYPE_ANY) frame.SetIcons(ib) frame.Show() app.MainLoop() |
以上是因為 wxPython 改版所增加的多種處理方式。
上列程式碼在 XP, Python 2.5.1, wxPython 2.8.7.1 環境下執行測試無誤。