Blogs

Python generator和yield 的使用

Jan 17, 2014

Python中的generator和yield关键字用来实现类似iterator迭代器的功能。 使用了yield关键字的函数会被视为一个generator,一个generator就类似于iterator,是可以迭代的对象。 generator执行到yield语句时会返回yield语句返回的值,然后保存的当前状态(包括函数中各种变量的当前值),等到下一次调用generator的next()时,从yield后面的语句继续执行。 一个简单示例 …

Python file() 和 open() 比较

Jan 16, 2014

file() 和 open() 都是Python的内建函数(build-in function),都可以用来打开文件。 区别:推荐使用open()打开文件,使用file做类型测试(isinstance(f,file) )。…

Windows文本文件编码(ANSI和Unicode)

Jan 13, 2014

Unicode有UCS-2和UCS-4两种,分别使用2个字节、4个字节编码一个字符。通常说的Unicode都是指UCS-2。由于一个字符有多个字节,所以Unicode在传输和存储时就存在高位字节和低位字节的顺序问题,即字节序问题,由此分为小端模式(little endian)和大端模式(big endian)…

wxPython布局

Jan 9, 2014

布局方式有两个,绝对布局和相对布局。绝对布局就是手动的设定各个窗体、控件的大小和位置,这有一个缺点是当主窗体的尺寸可变且变化时,各个控件的位置不会随之相应的改变。而使用相对布局则主窗体的尺寸变化时,各个控件会随之相应的变化,以适应新的窗口大小。 相对布局使用布局管理器Sizer实现,wxPython中的布局管理器有:BoxSizer(行、列),GridSizer(等大小的二维网格),FlexGridSizer(大小可不等的二维网格),GridBagSizer(可设定大小、跨行列的二维网格),StaticBoxSizer(在BoxSizer外加了标题和环线)。BoxSizer和GridSizer都继承自wx.Sizer类,FlexGridSizer继承自GridSizer,GridBagSizer继承自FlexGridSizer,StaticBoxSizer继承自BoxSizer。…

基于Python和wxPython的代码格式化工具V1.0

Jan 8, 2014

近期在看Python,感叹Python的字符串处理功能之强大,突然想自己写一个格式化代码的脚本练练手,开始构想的功能很简单,读取未格式化的代码,然后将其缩进(类似于Visual Studio中的代码格式化)。主要是处理大括号{、}的问题。昨天写了一段脚本,实现了这个功能。想到自己反正要学Python的GUI编程,索性就安装了wxPython,因为有好几年的MFC开发基础,所以UI框架写得也很快,今天就完成了。于是就有了本文的这个小程序-代码格式化工具V1.0。利用这篇博客详细讲一下程序开发思路和源码。。…