bestlong 怕失憶筆記

當健忘由隨機逐漸趨向常態時,作筆記是非常必要的

Entries for the ‘Python’ Category

PythonBooks – Learn Python the easy way

PythonBooks – Learn Python the easy way

http://pythonbooks.revolunet.com/

PythonBooks - Learn Python the easy way !

Leave a Comment

SyntaxError: ‘return’ with argument inside generator

原來的 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 來產生回傳

Leave a Comment

IndentationError: unexpected indent

Python 對於縮排超嚴格,一沒注意就會碰到 IndentationError: unexpected indent 錯誤

反正就是檢查程式碼的左側空間是否有 tab 或 space 混用的狀況

讓 python 編譯時無法對應

另外也還要注意多行註解符號 “”” 的位置也是要配合縮排的位置

對於剛開始探索的人,還是需要一段時間的練習才會習慣

或是換個可以一目了然非列印字元的程式編輯器也不錯

Comments (1)

wxPython GUI 設定程式Icon

使用 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()

執行後會出現下列圖示的視窗

wxPython GUI App no Icon

可是左上角的圖示預設是沒有處理很不美觀,可以增加處理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()

執行後就如下圖中的左上角就會出現圖示,是不是美觀多了。

wxPython GUI App SetIcon

載入圖示還有其他方式

方法二

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 環境下執行測試無誤。

Leave a Comment

Python 快速參考卡

Python Quick Reference Card

Leave a Comment

  • 工商服務

    廣告讀取中...
  • 近期留言

  • 標籤

  • 彙整