2007年4月6日 星期五

 

SciTE输入输出编码设置

刚使用SciTE的时候默认编码是ISO-88591,所以输入输出的中文会是乱码。
每次还需要在菜单项中选择编码为UTF-8,再选择编程语言,输出才能是中文,这样作很麻烦。

SciTE官方网站上有详细的修改方法。
在.SciTEUser.properties配置文件中增加两项
code.page=65001
output.code.page=65001
将输入输出全部改成UTF-8

如果操作系统不是UTF-8那么修改输出设置output.code.page
output.code.page=65001#UTF-8
output.code.page=936#GBK
output.code.page=950#BIG5

标签: , ,


2007年4月5日 星期四

 

Python 的哲学, Python 之禅

优美胜过丑陋
明确胜过含蓄
简单胜过复杂
复杂胜过难懂
扁平胜过嵌套
稀疏胜过密集
易读亦有价
尽管实用会击败纯洁
特例也不能特殊到打破规则
除非明确地使其沉默
错误永远不应默默地溜掉
面对着不确定,要拒绝猜测的诱惑
应该有一个--宁肯只有一个--明显的实现方法
也许这个方法开始不是很明显,除非你是荷兰人
尽管不做通常好过立刻做
但现在做也要胜过不去做
如果实现很难解释,那它就是一个坏想法
如果实现容易解释,那它可能就是一个好想法
名字空间是一个响亮的出色想法--就让我们多用用它们

-- Tim Peters

标签:


2007年4月4日 星期三

 

推荐一款编辑器SciTE


SciTE编辑器对编程语言支持的非常好支持三十余种语言,是专为程序员订做的的编辑器。几百K大小,启动速度很快,代码的显示非常美观,支持代码折叠、自动完成。还能根据编译输出结果跳到出错行,还有很多程序 员需要的功能。通过配置文件进行配置非常灵活同时也很复杂,适合专业人士。

安装:
sudo apt-get install scite

标签: ,


 

Ubuntu下创建SciTE的python语言API自动补全文件

gen_python_api.zip

#创建python.api
python gen_python_api.py
#创建api目录
sudo mkdir /usr/share/scite/api
#复制api文件
sudo cp python.api /usr/share/scite/api

使用Ctrl+Enter热键调用

标签:


 

SciTE配置文件

#~ api配置文件
api.*.py=$(SciteDefaultHome)\api\python.api
#~ 中文字符乱码正确显示
UTF-8:code.page=65001
GBK:code.page=936
Big5:code.page=950
#~ 最大化
position.width=-1
position.height=-1
#~ 滚动条
end.at.last.line=0
#~ 工具条
toolbar.visible=1
#~ 状态栏
statusbar.visible=1
#~ 背景颜色
selection.back=#0000FF
#~ 自动补全xml结束标签
xml.auto.close.tags=1
#~ 记录最近打开的文件
save.recent=1
#~ 显示行号
line.margin.visible=1
#~ 设置状态栏
statusbar.text.1= www.urlshow.com [ 行: $(LineNumber) , 列: $(ColumnNumber) ,共:$(NbOfLines) ] ($(OverType)) | ($(EOLMode))

其他详细配置参考SciTE文档

标签: ,


2007年3月30日 星期五

 

Python数组排序和倒序

顺序:
>>> a = [5, 2, 3, 1, 4]
>>> a.sort()
>>> a
[1, 2, 3, 4, 5]

倒序1:
>>> a = [5, 2, 3, 1, 4]
>>> a.sort(cmp=lambda x,y: x-y)
>>> a
[5, 4, 3, 2, 1]
倒序2
>>> a = [5, 2, 3, 1, 4]
>>> a.sort(reverse=True)
>>> a
[5, 4, 3, 2, 1]

倒序3
>>> a = [5, 2, 3, 1, 4]
>>> a.sort()
>>> a.reverse()
>>> a
[5, 4, 3, 2, 1]

标签: ,


2007年3月29日 星期四

 

Ubuntu下使用Python开发webservices

Python开发web services非常简单容易,在Ubuntu下开发更是得心应手。

安装Python和ZSI
sudo apt-get install python2.4 python-zsi

MyServer.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import time
from ZSI import dispatch

def getText():
return 'http://www.urlshow.com'
def getTime():
return time.localtime()
print "启动服务..."
dispatch.AsServer(port=3333)

MyClient.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from ZSI.client import Binding
b = Binding(host='localhost', port=3333)

print '%i年,%i月,%i日,%i点,%i分,%i秒'%b.getTime()[:6]
print b.getText()

运行结果
2007年,3月,29日,13点,39分,7秒
http://www.urlshow.com

标签: ,


2007年3月18日 星期日

 

[Python 学习]2.5版中字符串函数的变化

新版本发布了。今天在 Python.list 邮件列表中看到有人开始讨论字符串中的一些新功能。


在2.5版中新增加了一个叫partition的函数,它可以做什么呢?举一个小例子:



>>> 'http://www.donews.net/limodou'.partition('://')
('http', '://', 'www.donews.net/limodou')
>>> 'file:/a.html'.partition('://')
('file:/a.html', '', '')



从第一个例子可以看出,它用来根据指定的分隔符将字符串进行分割,如果字符串包含指定的分隔符,则返回一个3元的tuple,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。第二个例子说明,如果找不到指定的分隔符,则返回仍然是一个3元的tuple,第一个为整个字符串,第二和第三个为空串。


那么有人要问,它与split(sep, 1)有什么区别呢?首先split返回的可能不是固定长度的返回值,它返回的是一个list,如果找到,则返回一个2元list,如果没找到,则返回一个1元的list,如:



>>> 'a.b.c'.split(',', 1)
['a.b.c']
>>> 'a.b.c'.split('.', 1)
['a', 'b.c']



同时在找到的情况下,它并不返回分隔符。


在某些情况下partition(sep)和rpartition(sep)(从右向左匹配)与split(sep, 1)和rsplit(sep, 1)的功能是类似的。不过partition其实是为了替换find,index而产生的,并不是为了替换split而产生的。在许多情况下,我们需要先通过find来找到一个位置,再进行分割。而使用partition就方便得多。如:



>>> a = 'http://www.donews.net'
>>> pos = a.find('://')
>>> if pos > -1:
...     print a[:pos], a[pos+1:]
http www.donews.net



而使用partition:



>>> a = 'http://www.donews.net'
>>> left, sep, right = a.partition('://')
>>> print left, right
http www.donews.net



是不是简单一些呢。


同时在2.5版中,startswith和endswith有变化,它的第一个参数可以是一个tuple了。这样用在判断几种情况的时候非常方便。比如要判断文件名后缀,原来只支持一个值时,可能要先拆分,再判断,用不上endswith,如:



>>> a = 'a.gif'
>>> import os.path
>>> ext = os.path.splitext(a)[1]
>>> if ext in ['.gif', '.png', '.bmp']:
...     print 'found'
...
found



而现在可以:



>>> a = 'a.gif'
>>> if a.endswith(('.gif', 'png', '.bmp')):
...     print 'found'
...
found



是不是简单多了。注意,上面的tuple我换成list就是不行,看来是强制的。


许多有趣的东西等着你我来发现。

标签:


 

[Python 新闻]2.5版正式发布了

新时刻到来了,许多新特性的增加,新模块的加入使得 Python 更为人所注目。这一新版本增加的功能的确很多,以至于Anthony Baxter在邮件列表中宣布新版本发布时都说:



It's been nearly 20 months since the last major release
of Python (2.4), and 5 months since the first alpha
release of this cycle, so I'm absolutely thrilled to be
able to say:

On behalf of the Python development team
and the Python community, I'm happy to
announce the FINAL release of Python 2.5.

This is a *production* release of Python 2.5. Yes, that's
right, it's finally here.



在新版本发布时还有些战战兢兢(thrilled)的感觉。真是经过了很多的努力啊。


关于新特性早就说过了。有兴趣的赶快下载吧!

标签:


订阅 帖子 [Atom]