<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>lostpencil--顺天者昌，逆天者亡</title><link>http://blog.vckbase.com/lostpencil/</link><description>既生亮，何生瑜</description><managingEditor>lostpencil</managingEditor><dc:language>zh-CHS</dc:language><generator>.Text Version 0.958.2004.214</generator><item><dc:creator>lostpencil</dc:creator><title>较全面的Python资源汇总</title><link>http://blog.vckbase.com/lostpencil/archive/2008/11/29/35770.html</link><pubDate>Fri, 28 Nov 2008 23:50:00 GMT</pubDate><guid>http://blog.vckbase.com/lostpencil/archive/2008/11/29/35770.html</guid><wfw:comment>http://blog.vckbase.com/lostpencil/comments/35770.html</wfw:comment><comments>http://blog.vckbase.com/lostpencil/archive/2008/11/29/35770.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.vckbase.com/lostpencil/comments/commentRss/35770.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/lostpencil/services/trackbacks/35770.html</trackback:ping><description>&lt;SPAN class=Apple-style-span style="WORD-SPACING: 0px; FONT: 14px/20px arial; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; orphans: 2; widows: 2; -webkit-border-horizontal-spacing: 8px; -webkit-border-vertical-spacing: 8px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0"&gt;
&lt;H2 id=head-f0fb5d1d6a759a568ed0b4271f39401ee4c500d2&gt;&lt;FONT color=#ffffff&gt;什么是 Python 语言&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;Python 语言是一种计算机编程语言，作用类似于 c/c++/java/perl/VB/Delphi 等等计算机编程语言，据有非常清晰易读的语法特点，并且是一种高级面向对象的语言，用途非常广泛，并且可以进行扩展。Python 可以运行在 Windows，Linux，FreeBSD，Solaris等等几乎所有的电脑中，也可以运行在手机中，支持 Java 和 .Net 技术。 Python(派森)语言是一种面向对象的用途非常广泛的编程语言，具有非常清晰的语法特点，适用于多种操作系统，可以在Windows和Unix这样的系统中运行。目前在国际上非常流行，正在得到越来越多的应用。Python可以完成许多任务，功能非常强大。Python核心网站是:&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;A style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.python.org/"&gt;&lt;FONT color=#ffffff&gt;http://www.python.org/&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;，其中你可以找到很多资料。如果您第一次使用 Python, 可以下载一个试试。&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;Python 语言使用方便，不需要进行复杂的编译，用途非常广泛，可以进行各种软件的开发，比如： 网站，图形界面（GUI）， 网络编程，数据库编程，图形图像处理，科学计算，手机编程等等。&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;使用 Python 最多的应该是 Google 公司了，就是人们到处都可以看到的 Google 搜索引擎。微软公司也已经开始提供Python语言的软件了。 全球著名的手机厂商 Nokia 公司早已经开始提供基于Python语言的手机开发软件了。另外，还有很多游戏是用Python开发的。另外一个比较有名的就是 Zope 公司了。&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;目前，Python已经有成百上千的公共资源可以供你调用。&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;&amp;#8220;Python&amp;#8221;这个英文单词的发音似&amp;#8220;派森&amp;#8221;，因此中文可以称之为派森。&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;举个小例子：&lt;/FONT&gt;&lt;/P&gt;
&lt;DIV class=codearea lang=en dir=ltr&gt;&lt;A class=codenumbers style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" onclick="function anonymous()&amp;#13;&amp;#10;{&amp;#13;&amp;#10;return togglenumber('CA-78d651f994c04919c304f53313b6ab8edecc7585_000', 1, 1);&amp;#13;&amp;#10;}" href="http://www.etreas.com/PYTHON_%C3%A4%C2%B8%E2%80%93%C3%A7%E2%80%A2%C5%92#"&gt;&lt;FONT color=#ffffff&gt;Toggle line numbers&lt;/FONT&gt;&lt;/A&gt;&lt;PRE lang=en id=CA-78d651f994c04919c304f53313b6ab8edecc7585_000 dir=ltr&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=line&gt;&lt;SPAN class=LineNumber&gt;   1 &lt;/SPAN&gt;&lt;SPAN class=Comment&gt;# -*- coding: utf-8 -*-&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=line&gt;&lt;SPAN class=LineNumber&gt;   2 &lt;/SPAN&gt;&lt;SPAN class=Comment&gt;# 这里是注释&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=line&gt;&lt;SPAN class=LineNumber&gt;   3 &lt;/SPAN&gt;&lt;SPAN class=ResWord&gt;import&lt;/SPAN&gt; &lt;SPAN class=ID&gt;string&lt;/SPAN&gt; &lt;SPAN class=Comment&gt;# 引用模块&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=line&gt;&lt;SPAN class=LineNumber&gt;   4 &lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=line&gt;&lt;SPAN class=LineNumber&gt;   5 &lt;/SPAN&gt;&lt;SPAN class=ResWord&gt;class&lt;/SPAN&gt; &lt;SPAN class=ID&gt;abc&lt;/SPAN&gt;&lt;SPAN class=Operator&gt;:&lt;/SPAN&gt; &lt;SPAN class=Comment&gt;# 定义类&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=line&gt;&lt;SPAN class=LineNumber&gt;   6 &lt;/SPAN&gt;    &lt;SPAN class=ResWord&gt;def&lt;/SPAN&gt; &lt;SPAN class=ID&gt;my&lt;/SPAN&gt;&lt;SPAN class=Operator&gt;(&lt;/SPAN&gt;&lt;SPAN class=ID&gt;self&lt;/SPAN&gt;&lt;SPAN class=Operator&gt;):&lt;/SPAN&gt; &lt;SPAN class=Comment&gt;# 定义方法&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=line&gt;&lt;SPAN class=LineNumber&gt;   7 &lt;/SPAN&gt;        &lt;SPAN class=ID&gt;hi&lt;/SPAN&gt; &lt;SPAN class=Operator&gt;=&lt;/SPAN&gt; &lt;SPAN class=String&gt;'你好,世界'&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=line&gt;&lt;SPAN class=LineNumber&gt;   8 &lt;/SPAN&gt;        &lt;SPAN class=ResWord&gt;return&lt;/SPAN&gt; &lt;SPAN class=ID&gt;hi&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=line&gt;&lt;SPAN class=LineNumber&gt;   9 &lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=line&gt;&lt;SPAN class=LineNumber&gt;  10 &lt;/SPAN&gt;&lt;SPAN class=ResWord&gt;def&lt;/SPAN&gt; &lt;SPAN class=ID&gt;hello&lt;/SPAN&gt;&lt;SPAN class=Operator&gt;(&lt;/SPAN&gt;&lt;SPAN class=ID&gt;int&lt;/SPAN&gt;&lt;SPAN class=Operator&gt;):&lt;/SPAN&gt; &lt;SPAN class=Comment&gt;# 定义函数或子程序&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=line&gt;&lt;SPAN class=LineNumber&gt;  11 &lt;/SPAN&gt;    &lt;SPAN class=String&gt;"""说明"""&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=line&gt;&lt;SPAN class=LineNumber&gt;  12 &lt;/SPAN&gt;    &lt;SPAN class=ResWord&gt;if&lt;/SPAN&gt; &lt;SPAN class=ID&gt;int&lt;/SPAN&gt; &lt;SPAN class=Operator&gt;&amp;lt;&lt;/SPAN&gt; &lt;SPAN class=Number&gt;0&lt;/SPAN&gt;&lt;SPAN class=Operator&gt;:&lt;/SPAN&gt;   &lt;SPAN class=Comment&gt;# 判断&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=line&gt;&lt;SPAN class=LineNumber&gt;  13 &lt;/SPAN&gt;        &lt;SPAN class=ID&gt;res&lt;/SPAN&gt; &lt;SPAN class=Operator&gt;=&lt;/SPAN&gt; &lt;SPAN class=String&gt;'请输入整数'&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=line&gt;&lt;SPAN class=LineNumber&gt;  14 &lt;/SPAN&gt;    &lt;SPAN class=ResWord&gt;else&lt;/SPAN&gt;&lt;SPAN class=Operator&gt;:&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=line&gt;&lt;SPAN class=LineNumber&gt;  15 &lt;/SPAN&gt;        &lt;SPAN class=ID&gt;my_class&lt;/SPAN&gt; &lt;SPAN class=Operator&gt;=&lt;/SPAN&gt; &lt;SPAN class=ID&gt;abc&lt;/SPAN&gt;&lt;SPAN class=Operator&gt;()&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=line&gt;&lt;SPAN class=LineNumber&gt;  16 &lt;/SPAN&gt;        &lt;SPAN class=ID&gt;res&lt;/SPAN&gt; &lt;SPAN class=Operator&gt;=&lt;/SPAN&gt; &lt;SPAN class=ID&gt;my_class&lt;/SPAN&gt;&lt;SPAN class=Operator&gt;.&lt;/SPAN&gt;&lt;SPAN class=ID&gt;my&lt;/SPAN&gt;&lt;SPAN class=Operator&gt;()&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=line&gt;&lt;SPAN class=LineNumber&gt;  17 &lt;/SPAN&gt;    &lt;SPAN class=ResWord&gt;return&lt;/SPAN&gt; &lt;SPAN class=ID&gt;res&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=line&gt;&lt;SPAN class=LineNumber&gt;  18 &lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=line&gt;&lt;SPAN class=LineNumber&gt;  19 &lt;/SPAN&gt;&lt;SPAN class=ResWord&gt;print&lt;/SPAN&gt; &lt;SPAN class=ID&gt;hello&lt;/SPAN&gt;&lt;SPAN class=Operator&gt;(&lt;/SPAN&gt;&lt;SPAN class=Number&gt;2&lt;/SPAN&gt;&lt;SPAN class=Operator&gt;)&lt;/SPAN&gt; &lt;SPAN class=Comment&gt;# 调用函数 hello&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;/FONT&gt;&lt;/PRE&gt;&lt;/DIV&gt;
&lt;H2 id=head-716a409dff3255ec5ac967d2a7ac69c466f68885&gt;&lt;FONT color=#ffffff&gt;下载和安装&lt;/FONT&gt;&lt;/H2&gt;
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;FONT color=#ffffff&gt;请到&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.python.org/"&gt;&lt;FONT color=#ffffff&gt;Python.org&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;下载, 当前最新的版本是 2.4.2&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;H2 id=head-96cd49ce601f299732cfd76f727f51618ce53dd2&gt;&lt;FONT color=#ffffff&gt;基础教程&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;Python语言是一种非常容易学习的语言，具有非常清晰的语法结构。因此，在非常短的时间内，就可以编写出实用的程序。最好先看看Python自带的文档。然后，可以再参考以下内容：&lt;/FONT&gt;&lt;/P&gt;
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;FONT color=#ffffff&gt;中文：&lt;/FONT&gt; 
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.byteofpython.info/language/chinese/index.html"&gt;&lt;FONT color=#ffffff&gt;简明 Python 教程&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;FONT color=#ffffff&gt;英文：&lt;/FONT&gt; 
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://diveintopython.org/"&gt;&lt;FONT color=#ffffff&gt;Dive Into Python&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.honors.montana.edu/~jjc/easytut/easytut/"&gt;&lt;FONT color=#ffffff&gt;Python初级指南&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.ibiblio.org/obp/thinkCSpy"&gt;&lt;FONT color=#ffffff&gt;如何象计算机科学家一样思考&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://down.baow.org/doc/qref/PQR2.4.html"&gt;&lt;FONT color=#ffffff&gt;Python快速参考&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://down.baow.org/doc/Python-Docs-2.4.1"&gt;&lt;FONT color=#ffffff&gt;在线文档&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;H2 id=head-be008681672edd649b319517f98969f23f9402da&gt;&lt;FONT color=#ffffff&gt;Zope 专题&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;Zope 是一种用途广泛的Web应用服务器软件，主要是基于Python开发的，有很多软件是构建在Zope基础上的，比如：Plone 等等。它的主页是 www.zope.org&lt;/FONT&gt;&lt;/P&gt;
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.baow.com/bao/show.bao?id=4"&gt;&lt;FONT color=#ffffff&gt;Zope 使用参考&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;H2 id=head-79084ebb0b455418593b30f2f8023be9863d5674&gt;&lt;FONT color=#ffffff&gt;面向对象编程&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;Python语言是一种有面向对象的语言，因此不仅适合于小型项目的开发， 还适合大中型项目的开发。&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 id=head-945666e7926f9f427b3e25bd033b37124e02d50e&gt;&lt;FONT color=#ffffff&gt;数据库&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;Python 在数据库方面也很优秀，可以和多种数据库进行连接，进行数据处理，从商业型的数据库到开放源码的数据库都提供支持。例如： Oracle, Ms SQL Server等等。有多种接口可以与数据库进行连接，至少包括ODBC。有许多公司采用着以Python为核心的架构。因此，掌握了Python使你可以充分利用面向对象的特点，在数据库处理方面如虎添翼。&lt;/FONT&gt;&lt;/P&gt;
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;FONT color=#ffffff&gt;模块：&lt;/FONT&gt; 
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://sourceforge.net/projects/mysql-python/"&gt;&lt;FONT color=#ffffff&gt;MySql&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;：流行的数据库&lt;/FONT&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.postgresql.org/"&gt;&lt;FONT color=#ffffff&gt;PostgresSQL&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;: 经典的数据库&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://initd.org/projects/psycopg1"&gt;&lt;FONT color=#ffffff&gt;psycopg模块&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://pymssql.sourceforge.net/"&gt;&lt;FONT color=#ffffff&gt;MS Sql Server&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://firebird.sourceforge.net/"&gt;&lt;FONT color=#ffffff&gt;Firebird&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;: 另外一个开源的不错的数据库。&lt;/FONT&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://kinterbasdb.sourceforge.net/"&gt;&lt;FONT color=#ffffff&gt;kinterbasdb 模块&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.sqlite.org/"&gt;&lt;FONT color=#ffffff&gt;SQLite&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;：小巧高效的数据库&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.pysqlite.org/"&gt;&lt;FONT color=#ffffff&gt;PySqlite&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;FONT color=#ffffff&gt;ZODB ： 已经内置于zope中的面向对象型数据库&lt;/FONT&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://gadfly.sourceforge.net/"&gt;&lt;FONT color=#ffffff&gt;Gadfly&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;:完全用Python实现的小巧的数据库&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;FONT color=#ffffff&gt;链接：&lt;/FONT&gt; 
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.python.org/topics/database/"&gt;&lt;FONT color=#ffffff&gt;Python.Database&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.python.org/peps/pep-0249.html"&gt;&lt;FONT color=#ffffff&gt;DB-API spec v2.0&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;FONT color=#ffffff&gt;相关模块&lt;/FONT&gt; 
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://pytables.sourceforge.net/html/WelcomePage.html"&gt;&lt;FONT color=#ffffff&gt;PyTables&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;: 支持海量数据&lt;/FONT&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.egenix.com/files/python/mxODBC.html"&gt;&lt;FONT color=#ffffff&gt;ODBC&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.sqlobject.org/"&gt;&lt;FONT color=#ffffff&gt;SQLObject&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;通过面向对象的方式进行数据调用&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;H2 id=head-63bcc1efacc4a4da0a30440830c25d5426a56ba1&gt;&lt;FONT color=#ffffff&gt;Windows编程&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;Python 不仅可以在Unix类型的操作系统上应用，同样可以在Windows系统里有很好的表现。通过添加 PythonWin 模块，就可以通过 COM形式调用和建立各种资源，包括调用注册表、ActiveX控件以及各种COM等工作，最常见的例子就是通过程序对Office文档进行处理，自动生成文档和图表。&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;通过Python，你还可以利用py2exe模块生成exe应用程序。还有许多其他的日常维护和管理工作也可以交给 Python来做，从而减少维护的工作量。利用Python，你还可以开发出象VB,VC,Delphi那样的GUI程序，但却可以在多个平台上执行。这在许多方面并不逊色于Java。&lt;/FONT&gt;&lt;/P&gt;
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://starship.python.net/crew/mhammond/"&gt;&lt;FONT color=#ffffff&gt;PythonWin:Win32扩展模块&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.oreilly.com/catalog/pythonwin32/chapter/ch12.html"&gt;&lt;FONT color=#ffffff&gt;高级Python and COM&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.oreilly.com/catalog/pythonwin32/chapter/ch20.html"&gt;&lt;FONT color=#ffffff&gt;GUI开发&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;FONT color=#ffffff&gt;下载&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://python.baow.com/Win32.zip"&gt;&lt;FONT color=#ffffff&gt;例子程序包&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;:这是一个&amp;#8220;Python Programming on Win32&amp;#8221;书籍的源程序例子，可供参考。&lt;/FONT&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=cf5ae627-5df1-4f8a-ba8b-d64f0676f43f&amp;amp;DisplayLang=en"&gt;&lt;FONT color=#ffffff&gt;IronPython&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;: .Net 平台中的Python&lt;/FONT&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.zope.org/Members/Brian/PythonNet"&gt;&lt;FONT color=#ffffff&gt;Python for .NET&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;: 用Python调用 .Net 资源&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;H2 id=head-b9410d04d6995cfbebdd5062186f6a454252752c&gt;&lt;FONT color=#ffffff&gt;多媒体&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;利用Python,你可以处理图象、声音、视频、动画等，从而为你的程序添加亮丽的光彩。动态图表的生成、统计分析图表都可以通过Python来完成。另外，还有OpenGL。利用PyOpenGL模块，你可以非常迅速的编写出三维场景。&lt;/FONT&gt;&lt;/P&gt;
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.alice.org/"&gt;&lt;FONT color=#ffffff&gt;Alice&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;: 一个用Python和Java开发的动画编辑器。&lt;/FONT&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://vpython.org/"&gt;&lt;FONT color=#ffffff&gt;VPython&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;: 三维场景设计&lt;/FONT&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://sourceforge.net/projects/pyopengl/"&gt;&lt;FONT color=#ffffff&gt;PyOpenGl&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.pythonware.com/products/pil/index.htm"&gt;&lt;FONT color=#ffffff&gt;PIL图像库&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;: 图像分析与处理模块&lt;/FONT&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://pymol.sourceforge.net/"&gt;&lt;FONT color=#ffffff&gt;PyMol&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;:开放源代码的分子模型系统，至少可以用于医学新药物的探索。精彩&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;H2 id=head-0da72050464bb42dabad55958542fb5baf9aed83&gt;&lt;FONT color=#ffffff&gt;高性能计算&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;Python可以广泛的在高性能计算领域发挥独特的角色，这包括科学计算领域、网格(Grid)计算领域等等。有许多模块可以帮助你在计算巨型数组、矢量分析、神经网络等方面高效率完成工作。尤其是在教育科研方面，可以发挥出独特的优势。&lt;/FONT&gt;&lt;/P&gt;
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.python.org/moin/NumericAndScientific"&gt;&lt;FONT color=#ffffff&gt;Python在科学计算方面的资源&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://scipy.org/"&gt;&lt;FONT color=#ffffff&gt;SciPy.org&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://dsd.lbl.gov/gtg/projects/pyGlobus/"&gt;&lt;FONT color=#ffffff&gt;Python Globus&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;H2 id=head-08f8e857cc52d927d7b476c7fdcdf362bce5a9a8&gt;&lt;FONT color=#ffffff&gt;网络编程&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;Python可以非常方便的完成网络编程的工作，提供了众多的解决方案和模块，可以非常方便的定制出自己的服务器软件，无论是c/s，还是b/s模式，都有很好的解决方法。&lt;/FONT&gt;&lt;/P&gt;
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;FONT color=#ffffff&gt;一些特色工具:&lt;/FONT&gt; 
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.zope.org/"&gt;&lt;FONT color=#ffffff&gt;Zope&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;,CMF,Plone,Silva,Nuxeo CPS...&lt;/FONT&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.myghty.org/"&gt;&lt;FONT color=#ffffff&gt;Myghty&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.twistedmatrix.com/"&gt;&lt;FONT color=#ffffff&gt;Twisted&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.cherrypy.org/"&gt;&lt;FONT color=#ffffff&gt;CherryPy&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.modpython.org/"&gt;&lt;FONT color=#ffffff&gt;mod_python&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.mems-exchange.org/software/quixote/"&gt;&lt;FONT color=#ffffff&gt;Quixote&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.4suite.org/"&gt;&lt;FONT color=#ffffff&gt;4Suite Server&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://spyce.sourceforge.net/"&gt;&lt;FONT color=#ffffff&gt;Spyce&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.cheetahtemplate.org/"&gt;&lt;FONT color=#ffffff&gt;Cheetah 模板&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;FONT color=#ffffff&gt;链接:&lt;/FONT&gt; 
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.python.org/topics/web/"&gt;&lt;FONT color=#ffffff&gt;Web资源&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://wiki.python.org/moin/WebProgramming"&gt;&lt;FONT color=#ffffff&gt;Web编程汇总&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;FONT color=#ffffff&gt;下载工具&lt;/FONT&gt; 
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.bittorrent.com/"&gt;&lt;FONT color=#ffffff&gt;BitTorrent&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;，可能是最热门流行的软件。&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;FONT color=#ffffff&gt;Wiki:&lt;/FONT&gt; 
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://moinmoin.wikiwikiweb.de/"&gt;&lt;FONT color=#ffffff&gt;MoinMoin&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.edgewall.com/trac/"&gt;&lt;FONT color=#ffffff&gt;Trac&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;FONT color=#ffffff&gt;Web 服务&lt;/FONT&gt; 
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www-900.ibm.com/developerWorks/cn/webservices/ws-pyth/index.shtml"&gt;&lt;FONT color=#ffffff&gt;Python Web 服务开发者 专栏&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;H2 id=head-9735238a59b1bfb038a57fad9415d62932b850a3&gt;&lt;FONT color=#ffffff&gt;XML&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;Python对XML的支持同样非常强大，有多个扩展模块可以帮助你建立、分析和处理XML,对于将来的发展趋势而言，这是非常重要的。Python支持PRC，SOAP等等。&lt;/FONT&gt;&lt;/P&gt;
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.xml.com/pub/q/pyxml"&gt;&lt;FONT color=#ffffff&gt;Python 与 XML&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;(英文)&lt;/FONT&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://pyxml.sourceforge.net/topics/"&gt;&lt;FONT color=#ffffff&gt;PyXML&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;(英文)&lt;/FONT&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www-900.ibm.com/developerWorks/cn/linux/sdk/python/python-1/index.shtml"&gt;&lt;FONT color=#ffffff&gt;可爱的 Python：将 XML 和 Python 结合起来 -- 介绍 Python 的 XML 工具&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www-900.ibm.com/developerWorks/cn/linux/sdk/python/python-2/index.shtml"&gt;&lt;FONT color=#ffffff&gt;可爱的 Python：DOM 的动态性 -- 近观 Python 的 xml.dom 模块&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www-900.ibm.com/developerWorks/cn/linux/sdk/python/charm-15/index.shtml"&gt;&lt;FONT color=#ffffff&gt;可爱的 Python: 重温 Python 的 XML 工具 -- 为您带来最新工具和代码信息&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;H2 id=head-edcc6fc644a7682f8262667ef3869bac4cec7efe&gt;&lt;FONT color=#ffffff&gt;图形界面(GUI)&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;Python可以非常方便的实现GUI编程，通过PyGTK,wxPython, PyQT等等模块，你就可以根据需要编写出强大的跨平台的用户界面程序。免费推荐使用PyGTK或wxPython。&lt;/FONT&gt;&lt;/P&gt;
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.pygtk.org/"&gt;&lt;FONT color=#ffffff&gt;PyGTK&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;: 基于GTK，跨平台&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT color=#ffffff&gt;wxPython：功能丰富，跨平台，支持Windows比较好&lt;/FONT&gt; 
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://wxpython.sourceforge.net/"&gt;&lt;FONT color=#ffffff&gt;项目页面&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.onlamp.com/pub/a/python/2002/07/18/pycrust.html"&gt;&lt;FONT color=#ffffff&gt;用PythonCard和PyCrust构建GUI程序&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www-900.ibm.com/developerWorks/cn/linux/sdk/python/wxpy/index.shtml"&gt;&lt;FONT color=#ffffff&gt;wxPython入门&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://pythoncard.sourceforge.net/"&gt;&lt;FONT color=#ffffff&gt;PythonCard : 辅助工具&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://wxglade.sourceforge.net/"&gt;&lt;FONT color=#ffffff&gt;wxGlade ：辅助设计工具&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;FONT color=#ffffff&gt;QT: 基于QT&lt;/FONT&gt; 
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.riverbankcomputing.co.uk/"&gt;&lt;FONT color=#ffffff&gt;PyQt主页&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;FONT color=#ffffff&gt;Tkinter : Python默认的GUI模块，特点是比较简单，容易学习。&lt;/FONT&gt; 
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://python.baow.com/tkinter.chm"&gt;&lt;FONT color=#ffffff&gt;Tkinter 文档&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;(CHM格式)&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;FONT color=#ffffff&gt;PythonWin:&lt;/FONT&gt; 
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI style="LIST-STYLE-TYPE: none"&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://starship.python.net/crew/mhammond/"&gt;&lt;FONT color=#ffffff&gt;PythonWin主页&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;关于如何用Python进行GUI开发，还可以参考 onlamp.com 的&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.onlamp.com/topics/python/user_interfaces"&gt;&lt;FONT color=#ffffff&gt;这个页面&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;H2 id=head-9199d17c596820a4008c36d910e8671d8c44817d&gt;&lt;FONT color=#ffffff&gt;开发环境与编辑器&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;Python程序的开发工具比较多，目前主要的工具既有IDLE,PythonWin这样的免费工具, 也有一些商业性的工具。通过这些工具 ，可以让你更为快速的完成工作。&lt;/FONT&gt;&lt;/P&gt;
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;FONT color=#ffffff&gt;集成开发环境(IDE)：&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://wiki.python.org/moin/PythonEditors"&gt;&lt;FONT color=#ffffff&gt;列表&lt;/FONT&gt;&lt;/A&gt; 
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;FONT color=#ffffff&gt;IDLE：这是Python里边自带的，基本上可以满足一般开发需要。&lt;/FONT&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.die-offenbachs.de/detlev/eric3.html"&gt;&lt;FONT color=#ffffff&gt;Eric3&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;: 非常专业的的IDE&lt;/FONT&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.stani.be/python/spe"&gt;&lt;FONT color=#ffffff&gt;SPE&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;: 一个不错的编辑软件&lt;/FONT&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://starship.python.net/crew/mhammond/"&gt;&lt;FONT color=#ffffff&gt;PythonWin&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;：这是基于Windows平台的编辑开发环境，基本上可以满足一般开发需要。&lt;/FONT&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://sourceforge.net/project/showfiles.php?group_id=78018"&gt;&lt;FONT color=#ffffff&gt;下载&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;FONT color=#ffffff&gt;代码编辑器：&lt;/FONT&gt; 
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://personalpages.tds.net/~edream/front.html"&gt;&lt;FONT color=#ffffff&gt;LEO&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;:完全由Python编写的程序代码编写辅助工具，可运行在多种操作系统中，支持独特的程序代码管理方式。&lt;/FONT&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://vim.sourceforge.net/"&gt;&lt;FONT color=#ffffff&gt;Vim&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;:相当专业的代码编辑器，可运行在多种操作系统中，支持Python扩展。&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT color=#ffffff&gt;Emacs：Unix系统中常用的工具。&lt;/FONT&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.scintilla.org/SciTE.html"&gt;&lt;FONT color=#ffffff&gt;SciTE&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;:简单易用的代码编辑器,支持unicode编辑等等多种功能。&lt;/FONT&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://kdewebdev.org/"&gt;&lt;FONT color=#ffffff&gt;Quanta&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;: 主要用于编辑网页等等&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;H2 id=head-fe7366588643bc9f552d021bfa7c11e827576da5&gt;&lt;FONT color=#ffffff&gt;嵌入和扩展&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;Python 可以嵌入到其它应用程序中，也可以通过C/C++编写扩展模块，从而可以提高程序的运行速度或者完成只有通过C/C++才能完成的工作。现在Python 已经可以和C#相结合，并且结合到Visual Studio里边，实现微软的.Net思想。如果你会C语言，再学习Python，这将是一个非常棒的一种选择。以下是几个比较常用的扩展工具&lt;/FONT&gt;&lt;/P&gt;
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.swig.org/"&gt;&lt;FONT color=#ffffff&gt;SWIG&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.boost.org/"&gt;&lt;FONT color=#ffffff&gt;BOOST&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;如果你掌握了Python,想在Java里应用它，你可以采用Jython。Jython是采用Java语言实现的Python。这样，你只要按照 Python的语法，就可以调用Java的各种类库，快速的编写出基于Java的程序。也就是通过Jython，编写Java程序。这样就可以更为快速的实现Java的功能。另外，Oreilly已经出版了Jython方面的专著《Jython Essentials》,发展迅速。Python在面向对象方面和Java是相通的。神奇的Python!!&lt;/FONT&gt;&lt;/P&gt;
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;FONT color=#ffffff&gt;Jython 主页：&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.jython.org/"&gt;&lt;FONT color=#ffffff&gt;Jython.org&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.oreilly.com/catalog/jythoness/chapter/ch01.html"&gt;&lt;FONT color=#ffffff&gt;Jython 介绍&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.onlamp.com/pub/a/python/2002/04/11/jythontips.html"&gt;&lt;FONT color=#ffffff&gt;Jython Tips for Python Programmers&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.onjava.com/pub/a/onjava/2002/03/27/jython.html"&gt;&lt;FONT color=#ffffff&gt;Tips for Scripting Java with Jython&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;另外，你可以参考：&lt;/FONT&gt;&lt;/P&gt;
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://psyco.sourceforge.net/"&gt;&lt;FONT color=#ffffff&gt;Psyco&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/"&gt;&lt;FONT color=#ffffff&gt;Pyrex&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://codespeak.net/pypy/dist/pypy/doc/news.html"&gt;&lt;FONT color=#ffffff&gt;PyPy&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;H2 id=head-1bb17ab22b1403399c8afe737304398ae1c0fe18&gt;&lt;FONT color=#ffffff&gt;游戏编程&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;Python在很早的时候就是一种游戏编程的辅助工具。在《星球大战》中扮演了重要的角色。目前，通过Python完全可以编写出非常棒的游戏程序。另外，你可以到 pygame.org下载一些例子看看，确实可以让你感觉一新。&lt;/FONT&gt;&lt;/P&gt;
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.pygame.org/"&gt;&lt;FONT color=#ffffff&gt;PyGame&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.onlamp.com/pub/a/python/2002/07/11/pythonnews.html"&gt;&lt;FONT color=#ffffff&gt;强大的Python&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.cygnus-software.com/papers/gamescriptinginpython.html"&gt;&lt;FONT color=#ffffff&gt;用Python编写游戏程序&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://pyui.sourceforge.net/"&gt;&lt;FONT color=#ffffff&gt;PyUI 界面处理&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.panda3d.org/"&gt;&lt;FONT color=#ffffff&gt;Panda3D 游戏引擎&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;"Python plays a key role in our production pipeline. Without it a project the size of Star Wars: Episode II would have been very difficult to pull off. From crowd rendering to batch processing to compositing, Python binds all things together," said Tommy Burnette, Senior Technical Director, Industrial Light &amp;amp; Magic.&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 id=head-b2638200ca1c42b096f25e43743add7568463423&gt;&lt;FONT color=#ffffff&gt;中文编程与文字处理&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;最新的 2.4 版本加强了对中文的支持，建议大家下载最新的版本。&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;另外，Glace对Python2.1.1进行了深入的改造，形成了一种中蟒语言，实现了可以用中文编程，详细请见：&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.chinesepython.org/"&gt;&lt;FONT color=#ffffff&gt;中蟒&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;Python 对文字的处理功能强大，支持 unicode 和 正则表达式。下面是一些小工具，可以帮助用来排版：&lt;/FONT&gt;&lt;/P&gt;
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://docutils.sourceforge.net/"&gt;&lt;FONT color=#ffffff&gt;Docutils&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;：方便编写标准的文档&lt;/FONT&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://epydoc.sourceforge.net/"&gt;&lt;FONT color=#ffffff&gt;Epydoc&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;：生成代码类文档&lt;/FONT&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://txt2tags.sourceforge.net/"&gt;&lt;FONT color=#ffffff&gt;txt2tags&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;：用纯文本帮助编写多种格式的文档， 和 Docutils 类似。&lt;/FONT&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.methods.co.nz/asciidoc/"&gt;&lt;FONT color=#ffffff&gt;AsciiDoc&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;相关书籍：&lt;/FONT&gt;&lt;/P&gt;
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://gnosis.cx/TPiP/"&gt;&lt;FONT color=#ffffff&gt;Text Processing in Python&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;(英文)&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;H2 id=head-cf1daa91f5def82d7b7c23a5a2f317d2038b8441&gt;&lt;FONT color=#ffffff&gt;手机移动&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;Python 也可以在手机中运行，目前，Nokia已经开始提供 Series 60 系统中的Python，通过它就可以调用手机中的各种功能啦！&lt;/FONT&gt;&lt;/P&gt;
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.forum.nokia.com/main/0,,034-821,00.html"&gt;&lt;FONT color=#ffffff&gt;Python for Series 60&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.onlamp.com/pub/a/python/2005/04/14/s60.html"&gt;&lt;FONT color=#ffffff&gt;Python on Your (S60) Phone&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.postneo.com/postwiki/moin.cgi/PythonForSeries60"&gt;&lt;FONT color=#ffffff&gt;资源列表&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;H2 id=head-5882801f3cfc24e64028fda6dc899c588d5193ca&gt;&lt;FONT color=#ffffff&gt;成功案例与应用&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;目前，Python已经成功的实现企业级应用，在全球，已经有很多公司采用Python进行企业级软件的开发和应用，比如：ERP和CRM这样的应用。同时，通过Python技术，成功的实现了许多政务应用。 最有名的可能就要算 Google 啦。请查看以下一些网址：&lt;/FONT&gt;&lt;/P&gt;
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.pythonology.org/success"&gt;&lt;FONT color=#ffffff&gt;Python成功案例集&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;"Python has been an important part of Google since the beginning, and remains so as the system grows and evolves. Today dozens of Google engineers use Python, and we're looking for more people with skills in this language." said Peter Norvig, director of search quality at Google, Inc.&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 id=head-7f3d53c3fe167b4fd7d228465de29a9f53ee973e&gt;&lt;FONT color=#ffffff&gt;书籍文档&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;目前，已经出版了多种中文书籍，不妨找一本看看。比如：&lt;/FONT&gt;&lt;/P&gt;
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;FONT color=#ffffff&gt;《Python 核心编程》&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT color=#ffffff&gt;《Python 编程金典》&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;H2 id=head-e7dcb8499d255d7491376514d0fe1c427734b30c&gt;&lt;FONT color=#ffffff&gt;综合应用&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;以下是一些进行综合应用的软件：&lt;/FONT&gt;&lt;/P&gt;
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://pymol.sourceforge.net/"&gt;&lt;FONT color=#ffffff&gt;PyMol&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;:开放源代码的分子模型系统，至少可以用于医学新药物的探索。精彩！&lt;/FONT&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.osafoundation.org/"&gt;&lt;FONT color=#ffffff&gt;Chandler&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;: Lotus Notes的开发者进行的新的协同交流系统。&lt;/FONT&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.plone.org/"&gt;&lt;FONT color=#ffffff&gt;Plone&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;:基于Zope开发的网站框架，轻松建立易于维护和管理的网站交流系统。&lt;/FONT&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://mailman.sourceforge.net/"&gt;&lt;FONT color=#ffffff&gt;MailMan&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;: 元老级别的邮件列表交流软件。&lt;/FONT&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://bitconjurer.org/BitTorrent/"&gt;&lt;FONT color=#ffffff&gt;BitTorrent&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;: BT 超强的下载工具&lt;/FONT&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.xentax.com/earthclock/"&gt;&lt;FONT color=#ffffff&gt;EarthClock&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;: 挺好看的钟表&lt;/FONT&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.gnuenterprise.org/"&gt;&lt;FONT color=#ffffff&gt;GNU Enterprise&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;: 企业ERP&lt;/FONT&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://tinyerp.org/"&gt;&lt;FONT color=#ffffff&gt;TinyERP&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;: 小型的ERP系统&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;H2 id=head-2f2f6323be6a47346a44f48d3334f13cba71cf73&gt;&lt;FONT color=#ffffff&gt;精选链接&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;英文：&lt;/FONT&gt;&lt;/P&gt;
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.python.org/"&gt;&lt;FONT color=#ffffff&gt;PYTHON.org&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.zope.org/"&gt;&lt;FONT color=#ffffff&gt;ZOPE.org&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://groups-beta.google.com/group/comp.lang.python"&gt;&lt;FONT color=#ffffff&gt;Google 全球讨论组&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://groups-beta.google.com/group/comp.lang.python.announce"&gt;&lt;FONT color=#ffffff&gt;Google Python 新闻&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www-900.ibm.com/developerWorks/cn/linux/theme/special/index.html#python"&gt;&lt;FONT color=#ffffff&gt;IBM.Python开发专集&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://aspn.activestate.com/ASPN/Cookbook/Python"&gt;&lt;FONT color=#ffffff&gt;Cook Book&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.onlamp.com/python/"&gt;&lt;FONT color=#ffffff&gt;OnLamp.Python&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.pythonware.com/daily/index.htm"&gt;&lt;FONT color=#ffffff&gt;Python Daily&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://sourceforge.net/"&gt;&lt;FONT color=#ffffff&gt;sourceforge.net&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif"&gt;&lt;FONT color=#ffffff&gt;中文：&lt;/FONT&gt;&lt;/P&gt;
&lt;UL style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"&gt;
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.python.cn/"&gt;&lt;FONT color=#ffffff&gt;Python 中文用户组&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A class=external style="FONT-SIZE: 14px; FONT-FAMILY: arial, sans-serif" href="http://www.czug.org/"&gt;&lt;FONT color=#ffffff&gt;Zope 中文用户组&lt;/FONT&gt;&lt;/A&gt;
&lt;LI&gt;&lt;FONT color=#ffffff&gt;&lt;U&gt;&lt;A href="http://wiki.woodpecker.org.cn"&gt;啄木鸟社区&lt;/A&gt;&lt;/U&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/SPAN&gt;&lt;img src ="http://blog.vckbase.com/lostpencil/aggbug/35770.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>lostpencil</dc:creator><title>将Flash应用于Python项目(转)</title><link>http://blog.vckbase.com/lostpencil/archive/2008/11/14/35649.html</link><pubDate>Fri, 14 Nov 2008 08:45:00 GMT</pubDate><guid>http://blog.vckbase.com/lostpencil/archive/2008/11/14/35649.html</guid><wfw:comment>http://blog.vckbase.com/lostpencil/comments/35649.html</wfw:comment><comments>http://blog.vckbase.com/lostpencil/archive/2008/11/14/35649.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://blog.vckbase.com/lostpencil/comments/commentRss/35649.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/lostpencil/services/trackbacks/35649.html</trackback:ping><description>== 基于本地的Python应用程序 ==&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;=== 写在之前 ===&lt;BR&gt;{{{&lt;BR&gt;这篇所说的是关于建立python调用Flash的本地应用，不同于Adobe的Apollo。&lt;BR&gt;&lt;BR&gt;没有用到浏览器嵌入flash网页的方法，直接在pythonwin或者wxpython建立的窗口中插入Flash ocx。&lt;BR&gt;&lt;BR&gt;因为是操作Activex控件的方式因此大概只适用于windows平台。抱歉我并未在其它平台上试过这种方法，不过linux中应该也有类似的技术。}}}&lt;BR&gt;&lt;BR&gt;=== Flash ocx介绍 ===&lt;BR&gt;{{{&lt;BR&gt;Flash ocx实际上是一种COM组件开发模型(Microsoft Component Object Model)，它原先是从Windows 3.x中的OLE发展过来的。现在又被改名叫做Activex。Activex是COM的一种，一般是指带有UI界面的COM。&lt;BR&gt;&lt;BR&gt;Flash ocx的本名是叫Shockwave Flash Object，是一个Activex控件。Activex控件文件名的后缀是ocx。&lt;BR&gt;&lt;BR&gt;原先的Shockwave包括了很多东西。被Adobe收购的MicroMedia公司的另一个产品Director的web应用就叫shockwave，它集合了视频流、Flash、shockwave 3D于一身。&lt;BR&gt;&lt;BR&gt;对于Director我还是挺有感情的，只不过Director到了8.5以后的版本就基本不再发展了，我也渐渐不用它了。(听说Adobe收购MicroMedia以后，还会推出Director 11)}}}&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;=== Flash ocx与外界通迅的方法 ===&lt;BR&gt;&lt;BR&gt;==== 调用ocx标准COM接口IDispatch ====&lt;BR&gt;&lt;BR&gt;这种方法最简单，也比较通用。&lt;BR&gt;&lt;BR&gt;它又叫COM对象的自动化接口。使用自动化，对象就可以提供一个简单的自动化接口，这样脚本语言作者只需掌握IDispatch和几个COM应用程序接口就可以了。&lt;BR&gt;&lt;BR&gt;pythonwin的作者 Mark Hammond 的一本书(Python Programming on Win32)就讲到了怎样用python直接操作COM对象（操作的函义包括使用和发布)。如果想深入细节的话，可以参考这本书。&lt;BR&gt;&lt;BR&gt;Python 程序使用 win32com.client.Dispatch() 方法来创建 COM objects。&lt;BR&gt;如创建一个 Flash COM object.&lt;BR&gt;&lt;BR&gt;{{{#!python&lt;BR&gt;&gt;&gt;&gt; import win32com.client&lt;BR&gt;&gt;&gt;&gt; fl = win32com.client.Dispatch("ShockwaveFlash.ShockwaveFlash.9") #Flash 9 的ProgID是ShockwaveFlash.ShockwaveFlash.9，有很多工具可以查到机器内部注册的COM组件信息&lt;BR&gt;}}}&lt;BR&gt;这样就得到了Flash COM object，你可以让它LoadMovie，让它Play，但是你暂时还看不到它，你得传给它一个窗口，这样它才能显示在窗口。&lt;BR&gt;所幸wxpython帮我们封装了这一切，你只需要调用wx.lib.flashwin.FlashWindow类就行了。&lt;BR&gt;&lt;BR&gt;例：&lt;BR&gt;{{{#!python&lt;BR&gt;import wx&lt;BR&gt;from wx.lib.flashwin import FlashWindow&lt;BR&gt;&lt;BR&gt;class CGui(wx.Frame):&lt;BR&gt;    def __init__(self):&lt;BR&gt;        wx.Frame.__init__(self, None, 101, "map", size = (800, 600), style = wx.FRAME_SHAPED)        &lt;BR&gt;        self.flash = FlashWindow(self, style=wx.SUNKEN_BORDER, size = (800, 600))                   #用wx.lib.flashwin.FlashWindow创建窗口&lt;BR&gt;        self.flash.LoadMovie(0, 'C:\\drop_shadow_dog.swf')                                          #播放"C:\\drop_shadow_dog.swf"的Flash影片&lt;BR&gt;        self.flash.SetSize((800, 600));&lt;BR&gt;    &lt;BR&gt;    def getText(self):&lt;BR&gt;        returnValue = self.flash.GetVariable('FlashValue')                                          #从Flash端&lt;BR&gt;        return returnValue&lt;BR&gt;            &lt;BR&gt;    def setText(self, text):&lt;BR&gt;        self.flash.SetVariable("PythonValue", text)                                                 #传给Flash变量&lt;BR&gt;        &lt;BR&gt;}}}&lt;BR&gt;这些传递变量在Flash AS端都处于_root层级下。&lt;BR&gt;&lt;BR&gt;这儿有个例子&lt;BR&gt;http://www.sephiroth.it/weblog/archives/2004/05&lt;BR&gt;/wxpython_and_flash_first_test.php&lt;BR&gt;{{{#!python&lt;BR&gt;#!/usr/bin/env python&lt;BR&gt;# -*- coding: utf-8 -*-&lt;BR&gt;import wx, sys, os&lt;BR&gt;import string, codecsfrom wx.lib.flashwin &lt;BR&gt;import FlashWindow&lt;BR&gt;from wx.lib.flashwin import EVT_FSCommand&lt;BR&gt;#----------------------------------------&lt;BR&gt;class TestPanel(wx.Panel):&lt;BR&gt;    def __init__(self, parent, base, swf):&lt;BR&gt;        wx.Panel.__init__(self, parent, -1)&lt;BR&gt;        self.base = base&lt;BR&gt;        sizer = wx.BoxSizer(wx.VERTICAL)&lt;BR&gt;        self.flash = FlashWindow(self, style=wx.SUNKEN_BORDER)&lt;BR&gt;        dlg = wx.MessageDialog(self, "This will work only under Windows!","Warning!",wx.OK | wx.ICON_INFORMATION)&lt;BR&gt;        dlg.Center()&lt;BR&gt;        dlg.ShowModal()&lt;BR&gt;        wx.BeginBusyCursor()&lt;BR&gt;        try:&lt;BR&gt;            self.flash.LoadMovie(0, swf)&lt;BR&gt;        except:&lt;BR&gt;            wx.MessageDialog(self, "could not load the swf file","Error",wx.OK | wx.ICON_ERROR).ShowModal()&lt;BR&gt;            sys.exit(2)&lt;BR&gt;        wx.EndBusyCursor()&lt;BR&gt;        self.flash.Stop()&lt;BR&gt;        self.flash.SetSize((self.flash.GetSize()[0],self.flash.GetSize()[1]))&lt;BR&gt;        # sizer&lt;BR&gt;        sizer.Add(self.flash, 1, wx.EXPAND)&lt;BR&gt;        self.SetSizer(sizer)&lt;BR&gt;        self.SetAutoLayout(True)&lt;BR&gt;        sizer.Fit(self)&lt;BR&gt;        sizer.SetSizeHints(self)&lt;BR&gt;        self.SetFlashOptions()&lt;BR&gt;        self.Bind(wx.EVT_WINDOW_DESTROY, self.OnDestroy)&lt;BR&gt;        self.Bind(EVT_FSCommand, self.CallMethod)  ##将Flash ocx的消息事件绑定到CallMethod函数上。&lt;BR&gt;&lt;BR&gt;    def SetFlashOptions(self):&lt;BR&gt;        self.flash.menu = False&lt;BR&gt;        self.flash._set_FlashVars("data=Server started on " + sys.platform)&lt;BR&gt;        self.flash.Play()&lt;BR&gt;&lt;BR&gt;    def OnDestroy(self, evt):&lt;BR&gt;        if self.flash:&lt;BR&gt;            self.flash.Cleanup()&lt;BR&gt;            self.flash = None&lt;BR&gt;&lt;BR&gt;    # Called from Flash FSCommand&lt;BR&gt;    def CallMethod(self, evt):&lt;BR&gt;        try:&lt;BR&gt;            arguments = string.split(evt.args,"###")&lt;BR&gt;            filename = arguments[0]&lt;BR&gt;            body = arguments[1]&lt;BR&gt;            if filename == "" or body == "":&lt;BR&gt;                wx.MessageDialog(self, "Please check data inserted", "An Error occurred", wx.OK | wx.ICON_INFORMATION).ShowModal()&lt;BR&gt;            else:&lt;BR&gt;                dlg = wx.FileDialog(self, "Save as..." , os.getcwd(), filename, "*.*", wx.SAVE | wx.OVERWRITE_PROMPT )&lt;BR&gt;                if dlg.ShowModal() == wx.ID_OK:&lt;BR&gt;                    try:&lt;BR&gt;                        f = codecs.open(os.path.normpath(dlg.GetPath()), "w", "utf-8", "ignore")&lt;BR&gt;                        f.write(codecs.utf_8_decode(codecs.BOM_UTF8)[0])&lt;BR&gt;                        f.write(body)&lt;BR&gt;                        f.close()&lt;BR&gt;                        self.flash._set_FlashVars("data=Succesfully saved text file")&lt;BR&gt;                    except:&lt;BR&gt;                        wx.MessageDialog(self, "%s %s %s" % sys.exc_info(), "An Error occurred", wx.OK | wx.ICON_ERROR).ShowModal()&lt;BR&gt;                        self.flash._set_FlashVars("data=%s %s %s" % sys.exc_info())&lt;BR&gt;        except:&lt;BR&gt;            wx.MessageDialog(self, "Please check data inserted","An Error occurred",wx.OK | wx.ICON_INFORMATION).ShowModal()&lt;BR&gt;            self.flash._set_FlashVars("data=%s %s %s" % sys.exc_info())&lt;BR&gt;&lt;BR&gt;#-------------------------------------------&lt;BR&gt;if __name__ == '__main__':&lt;BR&gt;    class TestFrame(wx.Frame):&lt;BR&gt;        def __init__(self):&lt;BR&gt;            wx.Frame.__init__(self, None, -1, "ActiveX -- Flash", size=(640, 480), style=wx.DEFAULT_FRAME_STYLE )&lt;BR&gt;            base = os.path.normpath(os.path.abspath(os.path.dirname(sys.argv[0])))&lt;BR&gt;            swf = os.path.normpath(os.path.join(base, "movie.swf"))&lt;BR&gt;            self.tp = TestPanel(self, base, swf)&lt;BR&gt;    app = wx.PySimpleApp()&lt;BR&gt;    frame = TestFrame()&lt;BR&gt;    frame.Center()&lt;BR&gt;    frame.Show(True)&lt;BR&gt;    app.MainLoop()&lt;BR&gt;}}}&lt;BR&gt;&lt;BR&gt;Flash端很简单，两句话就搞定了。&lt;BR&gt;{{{&lt;BR&gt;on (click) {&lt;BR&gt;	fscommand("saveFile", this._parent.fnome.text + "###" + this._parent.ftesto.text)&lt;BR&gt;}}}}&lt;BR&gt;&lt;BR&gt;这里用到了Flash的fscommand。&lt;BR&gt;&lt;BR&gt;在Flash端点击了以后，它就会发送一个fscommand消息事件。&lt;BR&gt;&lt;BR&gt;python端接收到了以后，由CallMethod处理。&lt;BR&gt;&lt;BR&gt;==== 使用Flash ExternalInterface ====&lt;BR&gt;&lt;BR&gt;ExternalInterface 类是一个子系统，通过它可以轻松地实现从 ActionScript 和 Flash Player 到 HTML 页中的 JavaScript 或任何包含 Flash Player 实例的台式机应用程序的通信。&lt;BR&gt;ExternalInterface 可以提供以下功能： &lt;BR&gt;{{{&lt;BR&gt;■  可以调用注册过的 python 函数。 从python端也可以调用注册过的Flash ActionScript函数。&lt;BR&gt;■  可以传递任意数量的、具有任意名称的参数；而不是仅限于传递一个命令和一个字符串参数。&lt;BR&gt;■  可以传递各种数据类型（例如 Boolean 、Number 和 String）；不再仅限于 String 参数。 &lt;BR&gt;■  可以接收调用值，该值将立即返回到 ActionScript（作为进行的调用的返回值）。}}}&lt;BR&gt;&lt;BR&gt;Flash利用ExternalInterface与Python之间的通信使用特定的XML格式对函数调用和值进行编码。Flash端自动处理XML格式，Python则需要将接收到的XML数据解析和发送前打包成XML格式。&lt;BR&gt;&lt;BR&gt;使用ExternalInterface与Python进行通信时，Flash以特定的XML格式向应用程序发送消息（函数调用和返回值），并要求来自Python的函数调用和返回值使用相同的 XML格式。&lt;BR&gt;&lt;BR&gt;下面的 XML 片断说明了一个 XML 格式的函数调用示例： &lt;BR&gt;&lt;BR&gt;{{{&lt;BR&gt;&lt;invoke name="functionName" returntype="xml"&gt; &lt;BR&gt;   &lt;arguments&gt; &lt;BR&gt;     ... (individual argument values) &lt;BR&gt;   &lt;/arguments&gt; &lt;BR&gt;&lt;/invoke&gt; }}}&lt;BR&gt;&lt;BR&gt;通过XML格式，ExternalInterface与Python之间可以传递多种类型的参数，包括Python的list和dic类型。&lt;BR&gt;&lt;BR&gt;我们可以建立一个数据转换类来专门将翻译Python与Flash之间的通迅。&lt;BR&gt;&lt;BR&gt;{{{#!python&lt;BR&gt;class EIDataSerializer:&lt;BR&gt;    __xmlData=None&lt;BR&gt;    def __packNumber(self,p,x):&lt;BR&gt;        p.appendChild(self.__xmlData.createElement('number')).appendChild(self.__xmlData.createTextNode(str(x)))&lt;BR&gt;        return&lt;BR&gt;    def __packString(self,p,x):&lt;BR&gt;        p.appendChild(self.__xmlData.createElement('string')).appendChild(self.__xmlData.createTextNode(x))&lt;BR&gt;        return&lt;BR&gt;    def __packNone(self,p):&lt;BR&gt;        p.appendChild(self.__xmlData.createElement('null'))&lt;BR&gt;        return&lt;BR&gt;    def __packBool(self,p,x):&lt;BR&gt;        if x:&lt;BR&gt;            p.appendChild(self.__xmlData.createElement('true'))&lt;BR&gt;        else:&lt;BR&gt;            p.appendChild(self.__xmlData.createElement('false'))&lt;BR&gt;        return&lt;BR&gt;    def __packDict(self,p,x):&lt;BR&gt;        p=p.appendChild(self.__xmlData.createElement('object'))&lt;BR&gt;        for k,v in x.items():&lt;BR&gt;            n=p.appendChild(self.__xmlData.createElement('property'))&lt;BR&gt;            n.setAttribute('id',str(k))&lt;BR&gt;            self.__packData(n,v)&lt;BR&gt;        return&lt;BR&gt;    def __packList(self,p,x):&lt;BR&gt;        p=p.appendChild(self.__xmlData.createElement('array'))&lt;BR&gt;        i=0&lt;BR&gt;        for v in x:&lt;BR&gt;            n=p.appendChild(self.__xmlData.createElement('property'))&lt;BR&gt;            n.setAttribute('id',str(i))&lt;BR&gt;            self.__packData(n,v)&lt;BR&gt;            i+=1&lt;BR&gt;        return&lt;BR&gt;    def __packData(self,p,x):                   ##将Python的类型打包成XML&lt;BR&gt;        t=type(x)&lt;BR&gt;        if t in (int,long,float):               &lt;BR&gt;            self.__packNumber(p,x)&lt;BR&gt;        elif t in (str,unicode):                &lt;BR&gt;            self.__packString(p,x)&lt;BR&gt;        elif x==None:                           &lt;BR&gt;            self.__packNone(p)&lt;BR&gt;        elif t==bool:       &lt;BR&gt;            self.__packBool(p,x)&lt;BR&gt;        elif t in (list,tuple):&lt;BR&gt;            self.__packList(p,x)&lt;BR&gt;        elif t==dict:&lt;BR&gt;            self.__packDict(p,x)&lt;BR&gt;        return&lt;BR&gt;    def __unpackNumber(self,p):&lt;BR&gt;        try:&lt;BR&gt;            return int(p.firstChild.nodeValue)&lt;BR&gt;        except ValueError:&lt;BR&gt;            try:&lt;BR&gt;                return float(p.firstChild.nodeValue)&lt;BR&gt;            except ValueError:&lt;BR&gt;                return None&lt;BR&gt;    def __unpackString(self,p):&lt;BR&gt;        return p.firstChild.nodeValue&lt;BR&gt;    def __unpackTrue(self):&lt;BR&gt;        return True&lt;BR&gt;    def __unpackFalse(self):&lt;BR&gt;        return False&lt;BR&gt;    def __unpackNull(self):&lt;BR&gt;        return None&lt;BR&gt;    def __unpackUndefined(self):&lt;BR&gt;        return None&lt;BR&gt;    def __unpackObject(self,p):&lt;BR&gt;        d={}&lt;BR&gt;        for n in p.childNodes:&lt;BR&gt;            d[n.getAttribute('id')]=self.__unpackData(n.firstChild)&lt;BR&gt;        return d&lt;BR&gt;    def __unpackArray(self,p):&lt;BR&gt;        a=[]&lt;BR&gt;        for n in p.childNodes:&lt;BR&gt;            a.append(self.__unpackData(n.firstChild))&lt;BR&gt;        return a&lt;BR&gt;    def __unpackData(self,p):                   ##将Flash传过来的XML解析成Python类型数值&lt;BR&gt;        t=p.nodeName&lt;BR&gt;        if t=='number':&lt;BR&gt;            return self.__unpackNumber(p)&lt;BR&gt;        elif t=='string':&lt;BR&gt;            return self.__unpackString(p)&lt;BR&gt;        elif t=='true':&lt;BR&gt;            return self.__unpackTrue()&lt;BR&gt;        elif t=='false':&lt;BR&gt;            return self.__unpackFalse()&lt;BR&gt;        elif t=='null':&lt;BR&gt;            return self.__unpackNull()&lt;BR&gt;        elif t=='undefined':&lt;BR&gt;            return self.__unpackUndefined()&lt;BR&gt;        elif t=='object':&lt;BR&gt;            return self.__unpackObject(p)&lt;BR&gt;        elif t=='array':&lt;BR&gt;            return self.__unpackArray(p)&lt;BR&gt;    def serializeReturn(self,v):&lt;BR&gt;        self.__xmlData=minidom.Document()&lt;BR&gt;        p=self.__xmlData&lt;BR&gt;        self.__packData(p,v)&lt;BR&gt;        return self.__xmlData.toxml()&lt;BR&gt;    def serializeCall(self,name,args):&lt;BR&gt;        self.__xmlData=minidom.Document()&lt;BR&gt;        p=self.__xmlData.appendChild(self.__xmlData.createElement('invoke'))&lt;BR&gt;        p.setAttribute('name',name)&lt;BR&gt;        p.setAttribute('returntype','xml')&lt;BR&gt;        p=p.appendChild(self.__xmlData.createElement('arguments'))&lt;BR&gt;        for v in args:&lt;BR&gt;            self.__packData(p,v)&lt;BR&gt;        s=self.__xmlData.documentElement.toxml()&lt;BR&gt;        return s&lt;BR&gt;    def deserializeReturn(self,s):&lt;BR&gt;        self.__xmlData=minidom.parseString(s)&lt;BR&gt;        p=self.__xmlData.documentElement&lt;BR&gt;        return self.__unpackData(p)&lt;BR&gt;    def deserializeCall(self,s):&lt;BR&gt;        self.__xmlData=minidom.parseString(s)&lt;BR&gt;        p=self.__xmlData.documentElement#invoke&lt;BR&gt;        name=p.getAttribute('name')&lt;BR&gt;        args=[]&lt;BR&gt;        p=p.firstChild#arguments&lt;BR&gt;        for n in p.childNodes:&lt;BR&gt;            args.append(self.__unpackData(n))&lt;BR&gt;        return (name,args)}}}&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;===== 从Python调用Flash函数 =====&lt;BR&gt;&lt;BR&gt;从Python端调用Flash端函数实际上是Python调用Shockwave Flash ActiveX控件的CallFunction()方法，通过ExternalInterface从Flash调用ActionScript函数。&lt;BR&gt;&lt;BR&gt;以下示范了从Python调用Flash函数的用法:&lt;BR&gt;&lt;BR&gt;Python端：&lt;BR&gt;&lt;BR&gt;{{{#!python&lt;BR&gt;def CallFlash(name,args):                  ## name是Flash ActionScript的函数名,args是传给Flash ActionScript的参数&lt;BR&gt;    ds  = EIDataSerializer()&lt;BR&gt;    s   = ds.serializeCall(name,args)      ## 将传递的内容打包成XML&lt;BR&gt;    s   = flashWnd.ocx.CallFunction(s)     ## 调用Shockwave Flash ActiveX控件的CallFunction()方法&lt;BR&gt;    s   = s.encode('utf-8')                ## 从ActionScript返回的任何值都被编码为XML格式字符串，并作为CallFunction()调用的返回值发送回来。&lt;BR&gt;    return ds.deserializeReturn(s)         ## 返回值解包}}}&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Flash端:&lt;BR&gt;&lt;BR&gt;要从Python调用ActionScript函数，必须向ExternalInterface类注册函数，然后再用Shockwave Flash ActiveX控件的CallFunction()方法调用它。 &lt;BR&gt;    &lt;BR&gt;Python只能调用ExternalInterface类注册函数中的ActionScript代码，而不能调用任何其它ActionScript代码。&lt;BR&gt;&lt;BR&gt;向ExternalInterface类注册ActionScript函数的方法，如下所示：&lt;BR&gt;&lt;BR&gt;{{{&lt;BR&gt;function callMe(name:String):String &lt;BR&gt;{ &lt;BR&gt;   return "busy signal"; &lt;BR&gt;} &lt;BR&gt;ExternalInterface.addCallback("myFunction", callMe);}}}&lt;BR&gt;&lt;BR&gt;ExternalInterface.addCallback()方法采用两个参数。第一个参数为 String 类型的函数名，这是告诉Python端调用的函数名。第二个参数为Flash端实际ActionScript函数。&lt;BR&gt;&lt;BR&gt;由于这些名称是截然不同的，因此可以指定将由Python使用的函数名与实际的ActionScript函数具有不同的名称。这在函数名未知的情况下特别有用，例如：指定了匿名函数或需要在运行时确定要调用的函数。&lt;BR&gt;&lt;BR&gt;===== 从Flash调用Python函数 =====&lt;BR&gt;&lt;BR&gt;从Flash调用Python函数实际上是Shockwave Flash ActiveX控件发送了一个控件消息FlashCall，并附带包含有关函数调用信息的XML 格式的字符串。Python将其解析成函数名和参数，并调用相应函数。&lt;BR&gt;&lt;BR&gt;我们继续从消息流程上解析这个过程，首先Flash端示例:&lt;BR&gt;&lt;BR&gt;{{{&lt;BR&gt;public function sendMessage(message:String):void&lt;BR&gt;{&lt;BR&gt;    ExternalInterface.call("newMessage", message); //调用了Python端的newMessage的方法，message是newMessage方法的参数&lt;BR&gt;}}}}&lt;BR&gt;&lt;BR&gt;Python端示例：&lt;BR&gt;&lt;BR&gt;先建立一个供Flash调用的函数&lt;BR&gt;&lt;BR&gt;{{{#!python&lt;BR&gt;def newMessage(self, message):&lt;BR&gt;    print message&lt;BR&gt;    return message}}}&lt;BR&gt;&lt;BR&gt;建立一个函数字典库&lt;BR&gt;&lt;BR&gt;{{{#!python&lt;BR&gt;def RegisterCallback(self,name,callback):                       ##将需要调用的函数注册&lt;BR&gt;    if callable(callback):&lt;BR&gt;        self.__callbackReg[name]=callback                       ##和Flash类似，name是Flash端调用的函数名。callback为Python端实际函数。&lt;BR&gt;        return True&lt;BR&gt;    else:&lt;BR&gt;        return False}}}&lt;BR&gt;&lt;BR&gt;{{{#!python&lt;BR&gt;self.RegisterCallback("newMessage", newMessage)                 ##将其注册到__callbackReg中}}}&lt;BR&gt;&lt;BR&gt;最后接收Flash消息,处理函数调用&lt;BR&gt;&lt;BR&gt;{{{#!python&lt;BR&gt;def OnFlashCall(self, receiveString):                           ##注册的Activex消息处理函数&lt;BR&gt;    receiveString   = receiveString.encode('utf-8')             ##从Flash控件消息接收的XML字符串&lt;BR&gt;    name,args       = self.__szr.deserializeCall(receiveString) ##解析成Python函数名和参数&lt;BR&gt;    r               = self.__callbackReg[name](*args)           ##函数字典中注册的函数名&lt;BR&gt;    ds              = EIDataSerializer()&lt;BR&gt;    s               = ds.serializeReturn(r)                     ##返回值打包成XML&lt;BR&gt;    self.SetReturnValue(s)&lt;BR&gt;    return}}}&lt;BR&gt;&lt;BR&gt;这样就可在Flash端调用Python函数了。&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;以上方法在pythonwin和wxPython中均可使用。&lt;BR&gt;&lt;BR&gt;&lt;img src ="http://blog.vckbase.com/lostpencil/aggbug/35649.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>lostpencil</dc:creator><title>聊天机器人性能改进</title><link>http://blog.vckbase.com/lostpencil/archive/2008/10/18/35369.html</link><pubDate>Fri, 17 Oct 2008 16:32:00 GMT</pubDate><guid>http://blog.vckbase.com/lostpencil/archive/2008/10/18/35369.html</guid><wfw:comment>http://blog.vckbase.com/lostpencil/comments/35369.html</wfw:comment><comments>http://blog.vckbase.com/lostpencil/archive/2008/10/18/35369.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.vckbase.com/lostpencil/comments/commentRss/35369.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/lostpencil/services/trackbacks/35369.html</trackback:ping><description>目前国内的聊天机器人大多都只是做了一个自然语言结构分析，然后就在此基础上做了场景记录。这2方面的努力结果最终产生了一个庞大的数据库，于是表现出来机器人的智能面不够灵活，而且速度很慢。&lt;BR&gt;&lt;BR&gt;目前我发现人类的语言交流并不完全是的知识，信息的交流，策略占了很大比重，智能机器人语言方面的改善感觉应该加入策略的因素。&lt;BR&gt;&lt;BR&gt;这里可以简单加入情绪因素进去，然后就是根据情绪来分类策略，这将直接导致数据库横向发展，查询效率提高很多。&lt;BR&gt;&lt;BR&gt;而且很多策略是可以完全通过自然语言结构分析来确定句子的答复的，策略丰富化，机器人将更加智能。&lt;BR&gt;&lt;BR&gt;目前我这方面针对朋友开发的一个机器人做了改进以后，运行速度大约提高了40%左右，至于语言效果由于策略的规划和实现还不完善，不如以前，但是大多数情况差别不大。&lt;BR&gt;&lt;BR&gt;因为一些商业因素，就不继续说了，呵呵&lt;img src ="http://blog.vckbase.com/lostpencil/aggbug/35369.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>lostpencil</dc:creator><title>马尔可夫决策</title><link>http://blog.vckbase.com/lostpencil/archive/2008/09/28/35154.html</link><pubDate>Sat, 27 Sep 2008 17:19:00 GMT</pubDate><guid>http://blog.vckbase.com/lostpencil/archive/2008/09/28/35154.html</guid><wfw:comment>http://blog.vckbase.com/lostpencil/comments/35154.html</wfw:comment><comments>http://blog.vckbase.com/lostpencil/archive/2008/09/28/35154.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.vckbase.com/lostpencil/comments/commentRss/35154.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/lostpencil/services/trackbacks/35154.html</trackback:ping><description>&lt;P class=a style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;一个偶尔的机会接触到了MDP，马尔可夫决策过程，突然发现多年的困惑有点头绪了，分享一段东西。&lt;BR&gt;&lt;BR&gt;以下东西摘自某博士论文部分（若有版权问题请及时告知）：&lt;BR&gt;&lt;BR&gt;以哲学观点来看，人类来到世间至少有三件事要做：认识世界；改造世界；享受世界。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=a style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;在这其中，学习类问题对应认识世界，而决策类问题便是和改造世界紧密相关的。决策问题伴随着人们的日常生活，大至公司乃至国家的战略性决定，小至个人利益相关的一些选择。&amp;#8216;决策&amp;#8217;又区别于简单的&amp;#8216;决定&amp;#8217;以及&amp;#8216;选择&amp;#8217;。它通常涉及的是一个过程，其最终对应的行动的执行一般是多步的。在每一步，都要去做一个选择。不同的选择，不同的行动，导致不同的结果，进而也意味着不同的收益。决策不能孤立的进行，若不考虑现在与将来的联系，很难在整个过程中获得最好的收益，就如同在一次长跑比赛中，我们不能在起点就用尽全力冲刺一样。事实上，决策问题与人们的社会生活的联系是如此密切，可以说，一切社会实践活动都离不开决策，甚至，从辨证的观点看，若是把主观世界也当作客观世界的一部份，那么学习本身也是一个改造世界的过程，其过程也一样讲究策略，我们改造就是自己罢了。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=a style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;对于智能体而言，当其面对客观世界中存在的一个待解决的问题时，首先，他的学习能力使其在主观世界中获得了对该问题的一个抽象的描述，对应为问题的模型，这其中通常包括：&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=a style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-char-indent-count: 0; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt"&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&amp;#168;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;问题所有可能的状态，&lt;/SPAN&gt; &lt;/P&gt;
&lt;P class=a style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-char-indent-count: 0; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt"&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&amp;#168;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;问题发展过程的演变规律，&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=a style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-char-indent-count: 0; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt"&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&amp;#168;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;智能体在过程中可以做出的选择，&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=a style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-char-indent-count: 0; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt"&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&amp;#168;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;智能体所期望的结果等。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=a style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;事实上，这就是&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MDP&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;模型的基本构成部分，&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=a style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;而所谓的智能体进行决策，也就是指智能体在此模型的基础上，基于问题过程的规律进行规划，利用智能体可行的选择参与改变过程，使其朝自身期望的结果发展，最终解决问题。总的来说，决策基于问题的模型再结合规划的方法两部分完成。在人工智能领域，马尔可夫决策过程是用来建模规划问题的一个基本理论模型。以其为基础，进一步发展出一系列更具一般性的决策模型，如部分可观察马尔可夫决策过程，分布式马尔可夫决策过程，部分可观察的随机博弈及半马尔可夫决策过程等等。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=a style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=a style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;决策总是与一个过程相联系的（当然，从广义上来看，过程可以只有一步）。智能体要在过程中做出合适的选择，将过程的发展引入对自身有利的方向，必然需要了解描述过程发展变化的知识。相对于穷举所有变化，如果某些知识，不止一次可被用来推断过程发展，即为规律。主体更需要就是这种精简的知识。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=a style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;马尔可夫过程正是具有一类普遍共性的过程。这类共性既是马尔可夫性，也称无后效性。由俄罗斯数学家马尔可夫于&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;1907&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;提出。所谓无后效性，指的是这样一种性质：某阶段的状态一旦确定，则此后过程的演变不再受此前各状态的影响。也就是说，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&amp;#8220;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;未来与过去无关&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&amp;#8221;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;，当前的状态是此前历史的一个完整总结，此前的历史只能通过当前的状态去影响过程未来的演变。具体地说，如果一个问题被划分各个阶段之后，阶段&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; I &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;中的状态只能通过状态转移方程去影响阶段&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; I+1 &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;中的状态的得来，与其他状态没有关系，特别是与未发生的状态没有关系，这就是无后效性。从更本质的的角度来理论，可以认为马尔可夫性来源于对因果性和时间的连续性以及单向性的认可。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=a style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;马尔可夫性用来描述过程的规律类似数学中使用递推公式描述数列一样，并且特点是递推式只用到了前面一项。做为区别，比如著名的斐波拉契&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;(Fibonacci)&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;数列，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;1&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;1&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;2&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;3&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;&amp;#8230;&amp;#8230;的递推公式&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;F(n)=F(n-1)+F(n-2)&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;就用到了前面的两项。假设我们构造一个过程，逐次去读取数列中的每一项，任何一个时刻的状态便是读取到的数字。那么，斐波拉契数列对应的便不是一个马尔可夫过程。描述规律的方式很多，把握&amp;#8220;当前的状态是此前历史的一个完整总结&amp;#8221;这一要点后，很多过程可以被转化描述为马尔可夫过程。当然，前提是，可以做到当前状态完整总结历史这点。但事实上完美总是相对而言的，从后面不确定性的讨论也可以看到。从这个角度来说，马尔可夫过程是一个很实用的理论。在马尔可夫过程上做决策的好处显而易见，我们可以忽略历史的影响，也无需再去不断的保存历史信息，一切规划都只要从当前状态出发即可。它所蕴含的思想是将智能体有限的规划能力引导至更有价值的方向。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=a style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;马尔可夫决策过程与马尔可夫过程的本质区别就是多了主体即决策者的介入。下面将依次简单介绍马尔可夫决策过程&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;(Markov Decision Processes, MDP)&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;，部分可观察马尔可夫决策过程&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;(Partially Observable Markov Decision Processes, POMDP)&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;，分布式部分马尔可夫决策过程（&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Decentralized-POMDP, DEC-POMDP&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;），部分可观察的随机博弈&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;(Partially Observable Stochastic Games, POSG)&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;及半马尔可夫决策过程&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;(Semi-MDP)&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;之间的区别与联系。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=a style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;50&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;年代&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;R.&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;贝尔曼研究动态规划时和&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;L.S.&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;沙普利研究随机对策时已出现马尔可夫决策过程的基本思想。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;R.A.&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;霍华德&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;(1960)&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;和&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;D.&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;布莱克韦尔&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;(1962)&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;等人的研究工作奠定了马尔可夫决策过程的理论基础。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;1965&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;年，布莱克韦尔关于一般状态空间的研究和&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;E.B.&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;丁金关于非时齐（非时间平稳性）的研究，推动了这一理论的发展。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;1960&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;年以来，马尔可夫决策过程理论得到迅速发展，应用领域不断扩大。凡是以马尔可夫过程作为数学模型的问题，只要能引入决策和效用结构，均可应用这种理论。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=a style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;在人工智能领域中，对决策类问题的求解过程也可以称为规划。经典规划一般基于确定式的环境模式，如搜索算法&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;A*&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;等。这类方法在现实应用中有很大的局限性。面对现实中的规划问题，主体对环境特性的把握常常是不完整的，正是由于这种知识的缺失，造成了不确定性。马尔可夫决策模型则可以处理这类问题。利用下图信息集合划分的方式，可以更清晰的理解不确定性，以及马尔可夫决策过程&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;(MDP)&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;与下面将提到部分可观察马尔可夫决策过程&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;(POMDP)&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;的区别。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=a style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;针对某个决策问题，从信息或者知识的角度我们区分出如下所示&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;3&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;个依次为包含关系的集合：&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=2 style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=a0 style="MARGIN: 6pt 0cm 12pt"&gt;&lt;A name=_Toc197916631&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=宋体&gt;&lt;BR&gt;图&lt;/FONT&gt;&lt;/B&gt;&lt;/A&gt;&lt;FONT face=宋体&gt;&lt;SPAN style="mso-bookmark: _Toc197916631"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN lang=EN-US&gt;&lt;SPAN style="mso-no-proof: yes"&gt;1&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-bookmark: _Toc197916631"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN lang=EN-US&gt;.&lt;/SPAN&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-bookmark: _Toc197916631"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN lang=EN-US&gt;&lt;SPAN style="mso-no-proof: yes"&gt;1&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-bookmark: _Toc197916631"&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;决策问题中的信息划分&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;IMG src="//blog.vckbase.com//images/vckbase_com/lostpencil/1245/o_model.JPG"&gt; 
&lt;P class=a style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;BR&gt;A&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;集合：为客观存在的影响过程的全部信息，是整个客观世界的世界状态中与问题所对应过程相关的因素。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=a style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;B&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;集合：为影响智能体主观决策的信息，进一步解释，是智能体主观上知道存在，并能够把握运用的一些信息。因为对于某些因素，即便智能体知道应该与过程相关，但无法把握运用，这些信息也不会影响智能体决策。比如，一般都认为掷硬币，正反面的概率各&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;50%&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;。事实上，风力，掷硬币的具体操作方式，抛出轨迹，用力情况，地面情况等都会影响过程结果，而这些因素通常无法把握运用，即使考虑进来，也难以改变决策。因此，这类智能体知道存在却无法把握利用的信息，及主观上根本不知道其存在而客观上却影响过程的因素，构成了&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;B&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;集合与&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;A&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;集合的差别。同时，也正是这些差别，造成了不确定性的存在。从另一个角度，只要&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;B&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;不是空集，基于应用的需求，就存在进行决策的意义。但对不确定性仍需进行刻画，于是便引入了统计意义上概率。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=a style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;C&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;集合：为智能体总是能观察到的信息。现实中很多决策过程，对于&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;B&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;集合中的信息，智能体有时观察不到。比如踢足球，自己身后球员的位置是会影响决策的，但却可能会观察不到。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=a style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;根据定义内容，首先有前提&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;A&amp;gt;=B&amp;gt;=C&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;，进而可以对问题做下面的分类：&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=a style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;1&amp;gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;当&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; A=B=C&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;时是一个确定性问题。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=a style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;2&amp;gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;当&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; A&amp;gt;=B=C&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;时是一个&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MDP&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;问题。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=a style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;3&amp;gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;当&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; A&amp;gt;=B&amp;gt;C&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;时是一个&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;POMDP&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;问题。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=a style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;MDP&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;本身既可以处理确定性问题，也可处理不确定性问题。而&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;POMDP&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;在&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MDP&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;模型上进行了一定扩展，引入了对观察不确定性的处理。从一定意义上也可以认为，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MDP&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;是&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;POMDP&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;的一种极端的情况，即决策相关信息全部可观察。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=a style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;MDP&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;及&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;POMDP&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;模型中都认为决策的智能体只有一个，并把其它一切因素都归于客观环境。这些因素一部分是确定性的知识；另一部分则是已归入统计概率的不确定性，认为在当前条件下，从处理问题的实际情况出发，不适合再进行探究，只作概率推理。当一个过程中，有多个智能体同时决策合作来解决一个问题时，上述模型是否适用的关键因素即其他智能体的策略是否已知。策略是决策的结果，指出在过程某个状态要采用哪个行动。如果认为其他智能体策略已知，无论是确定性的策略亦或含概率表示的不确定性策略，那么其他智能体一样可以归入环境，仍可使用&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MDP&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;或&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;POMDP&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;模型处理。否则，其它智能体会采用何种策略也是需要纳入考虑的，在生成智能体自身决策的同时，也要生成其他智能体的决策，这是其客观过程本身的模型决定的。分布式马尔可夫决策过程&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;(DEC-MDP)&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;及分布式部分可观察马尔可夫决策过程&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;(DEC-POMDP)&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;可以处理这类多智能体合作问题。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=a style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;在现实应用中，多智能体间除了合作也可能存在对抗，这类问题可以归为博弈。其中本质的区别即智能体间收益评价的不同。合作类问题，各个智能体有相同的收益评价，或者说有共同的目标；而博弈类问题，各个智能体收益评价存在区别，甚至完全对立。部分可观察的随机博弈&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;(POSG)&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;便是进一步扩展的一个决策模型，可以处理这类带有不确定性的博弈问题。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=a style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;半马尔可夫过程又可以称为非时齐马尔可夫过程，这是相对于一般的时齐马尔可夫过程而言的。所谓时齐是指过程的每两个相邻状态点间的时间间隔是一致的，对应决策过程则是每步行动的执行时间是定长的。非时齐则是描述了一类更一般的情况，对应决策过程中行动的执行时间并不固定，甚至是时间上的一个概率分布。&lt;BR&gt;&lt;BR&gt;我的收获：早些年研究的东西，基本思路是有一定的科学理论依据的，只是出发点有了问题，所以难逃计算量的恐怖。就像目前的彩票研究者一样，最终的常理的结论是预知性不明朗，靠运气吧。现在想想其实换一个研究层面去研究，然后按原来的方法计算，很多层面的东西还是相当有可能的。感谢数学，感谢马尔可夫。&lt;/SPAN&gt;&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/lostpencil/aggbug/35154.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>lostpencil</dc:creator><title>系统问题求助各位大侠</title><link>http://blog.vckbase.com/lostpencil/archive/2008/09/24/35114.html</link><pubDate>Wed, 24 Sep 2008 15:27:00 GMT</pubDate><guid>http://blog.vckbase.com/lostpencil/archive/2008/09/24/35114.html</guid><wfw:comment>http://blog.vckbase.com/lostpencil/comments/35114.html</wfw:comment><comments>http://blog.vckbase.com/lostpencil/archive/2008/09/24/35114.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://blog.vckbase.com/lostpencil/comments/commentRss/35114.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/lostpencil/services/trackbacks/35114.html</trackback:ping><description>我的电脑系统是XP, C盘是ntfs格式的，然后D盘是fat32格式的，这样DOS窗口里面怎么也cd 不进D盘去。&lt;BR&gt;有没有什么办法，不重装系统或者格式化D盘，就可以轻松的CD D:\进去啊&lt;BR&gt;因为之前D盘装了很多东西，格式化了太麻烦了&lt;BR&gt;&lt;BR&gt;修改：&lt;BR&gt;2008-09-25 08:13 by OneZ&lt;BR&gt;进入D盘，只要在CMD窗口下输入D:，就可以了。前面不需要CD。&lt;img src ="http://blog.vckbase.com/lostpencil/aggbug/35114.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>lostpencil</dc:creator><title>“Cannot find -lphonon”问题的解决</title><link>http://blog.vckbase.com/lostpencil/archive/2008/09/24/35110.html</link><pubDate>Wed, 24 Sep 2008 03:12:00 GMT</pubDate><guid>http://blog.vckbase.com/lostpencil/archive/2008/09/24/35110.html</guid><wfw:comment>http://blog.vckbase.com/lostpencil/comments/35110.html</wfw:comment><comments>http://blog.vckbase.com/lostpencil/archive/2008/09/24/35110.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://blog.vckbase.com/lostpencil/comments/commentRss/35110.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/lostpencil/services/trackbacks/35110.html</trackback:ping><description>起因：通过MingW和qt-win-opensource-4.4.2-mingw.exe在windows下安装QT开源版的情况，在运行QT-demos时候会发现mediaplayer那个程序launch不起来，原因是本身那个程序就没有编译成可执行文件。然后自己找到那个模块后，qmake ，make，结果发现老有错误“Cannot find -lphonon”. 网上一搜同样的问题很多，答案比较少，超级复杂，还是有点乱说的成份在。包括那些英文网站上也没有有效的解决方案。&lt;BR&gt;&lt;BR&gt;关于phonon:&lt;BR&gt;Phonon是一个跨平台多媒体编程开发平台，可使具有不同编程经验的编程人员更便捷地将多媒体功能移植到他们的应用程序中去。&lt;BR&gt;Phonon起初由KDE团队开发，是发布的KDE 4.0的一个组成部分。目前，奇趣科技将Phonon进行了扩展，使其可用于如Windows和 Mac OS X在内的所有主流桌面操作系统上。此外，奇趣科技已将该源程序代码编入KDE的源代码库中，并将其采用LGPL授权。&lt;BR&gt;编程人员利用Phonon，可以更方便地将多媒体回放功能运用到C＋＋应用程序中，很多操作程序仅利用极少的几个代码便可以实现。Phonon的源代码，包括仅在UNIX 和Linux平台上使用的、基于Xine的单一后端。而奇趣科技为Linux的GStreamer创建了其它的后端实施工具，同时为Windows和Mac OS X操作系统也创建了新的后端工具。&lt;BR&gt;奇趣科技把Phonon纳入公司发布的Qt 4.4之中，目前该版本已在2008年第一季度末正式发布。&lt;BR&gt;&lt;BR&gt;办法：会出现这个问题可能是qt-win-opensource-4.4.2-mingw.exe制作者的疏忽，把Phonon模块以及相关的程序没有编译到，&lt;BR&gt;解决办法其实很简单，不要受那些答案的误导，只要在src下面找到phonon文件夹，然后编译下就好了。&lt;BR&gt;这样会生成2个文件，一个是lib下面的libphonon4.a, 还有一个是bin下的 phonon4.dll, 也可以直接网上下到这2个文件，copy过去也能用。&lt;BR&gt;&lt;BR&gt;注：仅验证了MingW + qt-win-opensource-4.4.2-mingw.exe的情况， 其他办法安装的有没有问题不清楚，Phonon是QT4以后才有的，要是用老版本是很难有办法用的。&lt;BR&gt;&lt;BR&gt;&lt;img src ="http://blog.vckbase.com/lostpencil/aggbug/35110.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>lostpencil</dc:creator><title>怎么禁止搜索引擎收录?(转)</title><link>http://blog.vckbase.com/lostpencil/archive/2008/08/24/34781.html</link><pubDate>Sun, 24 Aug 2008 08:20:00 GMT</pubDate><guid>http://blog.vckbase.com/lostpencil/archive/2008/08/24/34781.html</guid><wfw:comment>http://blog.vckbase.com/lostpencil/comments/34781.html</wfw:comment><comments>http://blog.vckbase.com/lostpencil/archive/2008/08/24/34781.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blog.vckbase.com/lostpencil/comments/commentRss/34781.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/lostpencil/services/trackbacks/34781.html</trackback:ping><description>&lt;DIV align=left&gt;什么是robots.txt文件?&amp;nbsp;搜索引擎通过一种程序robot（又称spider），自动访问互联网上的网页并获取网页信息。您可以在您的网站中创建一个纯文本文件robots.txt，在这个文件中声明该网站中不想被robot访问的部分，这样，该网站的部分或全部内容就可以不被搜索引擎收录了，或者指定搜索引擎只收录指定的内容。&lt;BR&gt;&lt;BR&gt;robots.txt文件放在哪里?&amp;nbsp;&lt;BR&gt;robots.txt文件应该放在网站根目录下。举例来说，当robots访问一个网站（比如http://www.abc.com）时，首先会检查该网站中是否存在http://www.abc.com/robots.txt这个文件，如果机器人找到这个文件，它就会根据这个文件的内容，来确定它访问权限的范围。&lt;BR&gt;网站&amp;nbsp;url&amp;nbsp;相应的&amp;nbsp;robots.txt的&amp;nbsp;url&amp;nbsp;&lt;BR&gt;http://www.w3.org/&amp;nbsp;http://www.w3.org/robots.txt&amp;nbsp;&lt;BR&gt;http://www.w3.org:80/&amp;nbsp;http://www.w3.org:80/robots.txt&amp;nbsp;&lt;BR&gt;http://www.w3.org:1234/&amp;nbsp;http: ... 234/robots.txt&amp;nbsp;&lt;BR&gt;http://w3.org/&amp;nbsp;http://w3.org/robots.txt&amp;nbsp;&lt;BR&gt;&lt;BR&gt;robots.txt文件的格式&amp;nbsp;&lt;BR&gt;"robots.txt"文件包含一条或更多的记录，这些记录通过空行分开（以cr,cr/nl,&amp;nbsp;or&amp;nbsp;nl作为结束符），每一条记录的格式如下所示：&lt;BR&gt;"&lt;FIELD&gt;:&lt;OPTIONALSPACE&gt;&lt;VALUE&gt;&lt;OPTIONALSPACE&gt;"。&lt;BR&gt;&lt;BR&gt;在该文件中可以使用#进行注解，具体使用方法和unix中的惯例一样。该文件中的记录通常以一行或多行user-agent开始，后面加上若干disallow行,详细情况如下：&lt;BR&gt;&lt;BR&gt;user-agent:&lt;BR&gt;　　该项的值用于描述搜索引擎robot的名字，在"robots.txt"文件中，如果有多条user-agent记录说明有多个robot会受到该协议的限制，对该文件来说，至少要有一条user-agent记录。如果该项的值设为*，则该协议对任何机器人均有效，在"robots.txt"文件中，"user-agent:*"这样的记录只能有一条。&lt;BR&gt;&lt;BR&gt;disallow:&lt;BR&gt;　　该项的值用于描述不希望被访问到的一个url，这个url可以是一条完整的路径，也可以是部分的，任何以disallow开头的url均不会被robot访问到。例如"disallow:/help"对/help.html&amp;nbsp;和/help/index.html都不允许搜索引擎访问，而"disallow:/help/"则允许robot访问/help.html，而不能访问/help/index.html。任何一条disallow记录为空，说明该网站的所有部分都允许被访问，在"/robots.txt"文件中，至少要有一条disallow记录。如果"/robots.txt"是一个空文件，则对于所有的搜索引擎robot，该网站都是开放的。&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;robots.txt文件用法举例&amp;nbsp;例1.&amp;nbsp;禁止所有搜索引擎访问网站的任何部分&amp;nbsp;&lt;BR&gt;下载该robots.txt文件&amp;nbsp;user-agent:&amp;nbsp;*&amp;nbsp;&lt;BR&gt;disallow:&amp;nbsp;/&amp;nbsp;&lt;BR&gt;例2.&amp;nbsp;允许所有的robot访问&amp;nbsp;(或者也可以建一个空文件&amp;nbsp;"/robots.txt"&amp;nbsp;file)&amp;nbsp;user-agent:&amp;nbsp;*&lt;BR&gt;disallow:&amp;nbsp;&lt;BR&gt;例3.&amp;nbsp;禁止某个搜索引擎的访问&amp;nbsp;user-agent:&amp;nbsp;badbot&lt;BR&gt;disallow:&amp;nbsp;/&amp;nbsp;&lt;BR&gt;例4.&amp;nbsp;允许某个搜索引擎的访问&amp;nbsp;user-agent:&amp;nbsp;baiduspider&lt;BR&gt;disallow:&amp;nbsp;&lt;BR&gt;&lt;BR&gt;user-agent:&amp;nbsp;*&lt;BR&gt;disallow:&amp;nbsp;/&amp;nbsp;&lt;BR&gt;例5.一个简单例子&lt;BR&gt;　　在这个例子中，该网站有三个目录对搜索引擎的访问做了限制，即搜索引擎不会访问这三个目录。&lt;BR&gt;　　需要注意的是对每一个目录必须分开声明，而不要写成&amp;nbsp;"disallow:&amp;nbsp;/cgi-bin/&amp;nbsp;/tmp/"。&lt;BR&gt;　　user-agent:后的*具有特殊的含义，代表"any&amp;nbsp;robot"，所以在该文件中不能有"disallow:&amp;nbsp;/tmp/*"&amp;nbsp;or&amp;nbsp;"disallow:*.gif"这样的记录出现.&amp;nbsp;user-agent:&amp;nbsp;*&lt;BR&gt;disallow:&amp;nbsp;/cgi-bin/&lt;BR&gt;disallow:&amp;nbsp;/tmp/&lt;BR&gt;disallow:&amp;nbsp;/~joe/&amp;nbsp;&lt;BR&gt;&lt;/DIV&gt;&lt;img src ="http://blog.vckbase.com/lostpencil/aggbug/34781.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>lostpencil</dc:creator><title>101道算法题--转的</title><link>http://blog.vckbase.com/lostpencil/archive/2008/08/01/34560.html</link><pubDate>Fri, 01 Aug 2008 07:59:00 GMT</pubDate><guid>http://blog.vckbase.com/lostpencil/archive/2008/08/01/34560.html</guid><wfw:comment>http://blog.vckbase.com/lostpencil/comments/34560.html</wfw:comment><comments>http://blog.vckbase.com/lostpencil/archive/2008/08/01/34560.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://blog.vckbase.com/lostpencil/comments/commentRss/34560.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/lostpencil/services/trackbacks/34560.html</trackback:ping><description>1. Given a rectangular (cuboidal for the puritans) cake with a rectangular piece removed (any size or orientation), how would you cut the remainder of the cake into two equal halves with one straight cut of a knife ?&lt;BR&gt;2. You're given an array containing both positive and negative integers and required to find the sub-array with the largest sum (O(N) a la KBL). Write a routine in C for the above.&lt;BR&gt;3. Given an array of size N in which every number is between 1 and N, determine if there are any duplicates in it. You are allowed to destroy the array if you like. [ I ended up giving about 4 or 5 different solutions for this, each supposedly better than the others ].&lt;BR&gt;4. Write a routine to draw a circle (x ** 2 + y ** 2 = r ** 2) without making use of any floating point computations at all. [ This one had me stuck for quite some time and I first gave a solution that did have floating point computations&lt;BR&gt;5. Given only putchar (no sprintf, itoa, etc.) write a routine putlong that prints out an unsigned long in decimal. [ I gave the obvious solution of taking % 10 and / 10, which gives us the decimal value in reverse order. This requires an array since we need to print it out in the correct order. The interviewer wasn't too pleased and asked me to give a solution which didn't need the array&lt;BR&gt;6. Give a one-line C expression to test whether a number is a power of 2. [No loops allowed - it's a simple test.&lt;BR&gt;7. Given an array of characters which form a sentence of words, give an efficient algorithm to reverse the order of the words (not characters) in it.&lt;BR&gt;8. How many points are there on the globe where by walking one mile south, one mile east and one mile north you reach the place where you started.&lt;BR&gt;9. Give a very good method to count the number of ones in a "n" (e.g. 32) bit number.&lt;BR&gt;ANS. Given below are simple solutions, find a solution that does it in log (n) steps.&lt;BR&gt;Iterativefunction iterativecount (unsigned int n)beginint count=0;while (n)begincount += n &amp;amp; 0x1 ;n &amp;gt;&amp;gt;= 1;endreturn count;endSparse Countfunction sparsecount (unsigned int n)beginint count=0;while (n)begincount++;n &amp;amp;= (n-1);endreturn count ;end&lt;BR&gt;10. What are the different ways to implement a condition where the value of x can be either a 0 or a 1. Apparently the if then else solution has a jump when&lt;BR&gt;written out in assembly. if (x == 0) y=a else y=b There is a logical, arithmetic and a data structure solution to the above problem.&lt;BR&gt;11. Reverse a linked list.&lt;BR&gt;12. Insert in a sorted list&lt;BR&gt;13. In a X's and 0's game (i.e. TIC TAC TOE) if you write a program for this give a fast way to generate the moves by the computer. I mean this should be the fastest way possible.&lt;BR&gt;The answer is that you need to store all possible configurations of the board and the move that is associated with that. Then it boils down to just accessing the right element and getting the corresponding move for it. Do some analysis and do some more optimization in storage since otherwise it becomes infeasible to get the required storage in a DOS machine.&lt;BR&gt;14. I was given two lines of assembly code which found the absolute value of a number stored in two's complement form. I had to recognize what the code was doing. Pretty simple if you know some assembly and some fundaes on number representation.&lt;BR&gt;15. Give a fast way to multiply a number by 7.&lt;BR&gt;16. How would go about finding out where to find a book in a library. (You don't know how exactly the books are organized beforehand).&lt;BR&gt;17. Linked list manipulation.&lt;BR&gt;18. Tradeoff between time spent in testing a product and getting into the market first.&lt;BR&gt;19. What to test for given that there isn't enough time to test everything you want to.&lt;BR&gt;20. First some definitions for this problem: a) An ASCII character is one byte long and the most significant bit in the byte is always '0'. b) A Kanji character is two bytes long. The only characteristic of a Kanji character is that in its first byte the most significant bit is '1'.&lt;BR&gt;Now you are given an array of a characters (both ASCII and Kanji) and, an index into the array. The index points to the start of some character. Now you need to write a function to do a backspace (i.e. delete the character before the given index).&lt;BR&gt;21. Delete an element from a doubly linked list.&lt;BR&gt;22. Write a function to find the depth of a binary tree.&lt;BR&gt;23. Given two strings S1 and S2. Delete from S2 all those characters which occur in S1 also and finally create a clean S2 with the relevant characters deleted.&lt;BR&gt;24. Assuming that locks are the only reason due to which deadlocks can occur in a system. What would be a foolproof method of avoiding deadlocks in the system.&lt;BR&gt;25. Reverse a linked list.&lt;BR&gt;Ans: Possible answers -&lt;BR&gt;iterative loop&lt;BR&gt;curr-&amp;gt;next = prev;&lt;BR&gt;prev = curr;&lt;BR&gt;curr = next;&lt;BR&gt;next = curr-&amp;gt;next&lt;BR&gt;endloop&lt;BR&gt;recursive reverse(ptr)&lt;BR&gt;if (ptr-&amp;gt;next == NULL)&lt;BR&gt;return ptr;&lt;BR&gt;temp = reverse(ptr-&amp;gt;next);&lt;BR&gt;temp-&amp;gt;next = ptr;&lt;BR&gt;return ptr;&lt;BR&gt;end&lt;BR&gt;26. Write a small lexical analyzer - interviewer gave tokens. expressions like "a*b" etc.&lt;BR&gt;27. Besides communication cost, what is the other source of inefficiency in RPC? (answer : context switches, excessive buffer copying). How can you optimize the communication? (ans : communicate through shared memory on same machine, bypassing the kernel _ A Univ. of Wash. thesis)&lt;BR&gt;28. Write a routine that prints out a 2-D array in spiral order!&lt;BR&gt;29. How is the readers-writers problem solved? - using semaphores/ada .. etc.&lt;BR&gt;30. Ways of optimizing symbol table storage in compilers.&lt;BR&gt;31. A walk-through through the symbol table functions, lookup() implementation etc. - The interviewer was on the Microsoft C team.&lt;BR&gt;32. A version of the "There are three persons X Y Z, one of which always lies".. etc..&lt;BR&gt;33. There are 3 ants at 3 corners of a triangle, they randomly start moving towards another corner.. what is the probability that they don't collide.&lt;BR&gt;34. Write an efficient algorithm and C code to shuffle a pack of cards.. this one was a feedback process until we came up with one with no extra storage.&lt;BR&gt;35. The if (x == 0) y = 0 etc..&lt;BR&gt;36. Some more bitwise optimization at assembly level&lt;BR&gt;37. Some general questions on Lex, Yacc etc.&lt;BR&gt;38. Given an array t[100] which contains numbers between 1..99. Return the duplicated value. Try both O(n) and O(n-square).&lt;BR&gt;39. Given an array of characters. How would you reverse it. ? How would you reverse it without using indexing in the array.&lt;BR&gt;40. Given a sequence of characters. How will you convert the lower case characters to upper case characters. ( Try using bit vector - solutions given in the C lib -typec.h)&lt;BR&gt;41. Fundamentals of RPC.&lt;BR&gt;42. Given a linked list which is sorted. How will u insert in sorted way.&lt;BR&gt;43. Given a linked list How will you reverse it.&lt;BR&gt;44. Give a good data structure for having n queues ( n not fixed) in a finite memory segment. You can have some data-structure separate for each queue. Try to use at least 90% of the memory space.&lt;BR&gt;45. Do a breadth first traversal of a tree.&lt;BR&gt;46. Write code for reversing a linked list.&lt;BR&gt;47. Write, efficient code for extracting unique elements from a sorted list of array. e.g. (1, 1, 3, 3, 3, 5, 5, 5, 9, 9, 9, 9) -&amp;gt; (1, 3, 5, 9).&lt;BR&gt;48. Given an array of integers, find the contiguous sub-array with the largest sum.&lt;BR&gt;ANS. Can be done in O(n) time and O(1) extra space. Scan array from 1 to n. Remember the best sub-array seen so far and the best sub-array ending in i.&lt;BR&gt;49. Given an array of length N containing integers between 1 and N, determine if it contains any duplicates.&lt;BR&gt;ANS.&lt;BR&gt;50. Sort an array of size n containing integers between 1 and K, given a temporary scratch integer array of size K.&lt;BR&gt;ANS. Compute cumulative counts of integers in the auxiliary array. Now scan the original array, rotating cycles! [Can someone word this more nicely?&lt;BR&gt;51. An array of size k contains integers between 1 and n. You are given an additional scratch array of size n. Compress the original array by removing duplicates in it. What if k &amp;lt;&amp;lt; n?&lt;BR&gt;ANS. Can be done in O(k) time i.e. without initializing the