python 是一門簡單而優雅的語言,可能是過于簡單了,不用花太多時間學習就能使用,其實 python 裡面還有一些很好的特性,能大大簡化你代碼的邏輯,提高代碼的可讀性。
使用生成器 yield
生成器是 python 裡面一個非常有用的文法特性,卻也是最容易被忽視的一個,可能是因為大部分能用生成器的地方也能用清單吧。
生成器可以簡單了解成一個函數,每次執行到 yield 語句就傳回一個值,通過不停地調用這個函數,就能擷取到所有的值,這些值就能構成了一個等效的清單,但是與清單不同的是,這些值是不斷計算得出,而清單是在一開始就計算好了,這就是 lazy evaluation 的思想。這個特性在資料量特别大的場景非常有用,比如大資料處理,一次無法加載所有的檔案,使用生成器就能做到一行一行處理,而不用擔心記憶體溢出
def fibonacci():
num0 = 0
num1 = 1
for i in range(10):
num2 = num0 + num1
yield num2
num0 = num1
num1 = num2
for i in fibonacci():
print(i)
使用xlwt寫入EXCEL
導入xlwt
import xlwt
建立一個excel檔案
file = xlwt.Workbook() #注意這裡的Workbook首字母是大寫,無語吧
建立一個sheet
table = file.add_sheet('sheet name')
寫入資料table.write(行,列,value)
table.write(0,0,'test')
如果對一個單元格重複操作,會引發
returns error:
# Exception: Attempt to overwrite cell:
# sheetname=u'sheet 1' rowx=0 colx=0
是以在打開時加cell_overwrite_ok=True解決
table = file.add_sheet('sheet name',cell_overwrite_ok=True)
儲存檔案
file.save('demo.xls')
另外,使用style
style = xlwt.XFStyle() #初始化樣式
font = xlwt.Font() #為樣式建立字型
font.name = 'Times New Roman'
font.bold = True
style.font = font #為樣式設定字型
table.write(0, 0, 'some bold Times text', style) # 使用樣式
python的GUI子產品标準的是Tkinter,也有QT和MFC的子產品,有興趣的大家自己搜尋下
import Tkinter
root=http://Tkinter.Tk()
myLabel(root,"Welcome to python's world")
myLabel.pack()
root.mainloop()