<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[阿粥的博客 - Python]]></title>
<link>http://www.iamwawa.cn/blog/</link>
<description><![CDATA[学习别人的知识，分享自己的经验，学习&amp;分享Python,Symbian,VB,PS,CSS,JS,SEO等]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[azoon@163.com(阿粥)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>阿粥的博客</title>
	<url>http://www.iamwawa.cn/blog/images/logos.gif</url>
	<link>http://www.iamwawa.cn/blog/</link>
	<description>阿粥的博客</description>
</image>

			<item>
			<link>http://www.iamwawa.cn/blog/article.asp?id=59</link>
			<title><![CDATA[[PY教程转载]Python for S60 文本内容追加 ]]></title>
			<author>azoon@163.com(admin)</author>
			<category><![CDATA[Python]]></category>
			<pubDate>Mon,08 Sep 2008 19:05:36 +0800</pubDate>
			<guid>http://www.iamwawa.cn/blog/default.asp?id=59</guid>
		<description><![CDATA[本教程转自[冰冰智能网]由[从始没有*hen6600]编写<br/><br/>首先看看源码<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code34640);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.iamwawa.cn/blog/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code34640><br/>file=open(&#34;e:\\sett1.txt&#34;,&#34;r&#34;)<br/>f=file.read()<br/>file.close()<br/>print f.decode(&#34;utf8&#34;)<br/>txt=open(&#34;e:\\stt.txt&#34;,&#34;r&#34;) <br/>text=txt.read() <br/>txt.close() <br/>print text.decode(&#34;utf8&#34;)<br/>temp=open(&#34;e:\\temp.txt&#34;,&#34;a&#34;)<br/>temp.write(text+&#34;,&#34;+f)<br/>temp.close()<br/></div></div><br/><br/><img src="http://www.iamwawa.cn/blog/attachments/month_0809/920089819159.jpg" border="0" alt=""/><br/>想在手机上测试的话，复制上面源码到笔记本，并把后缀改为.py。并在E盘创建已下3个文本，sett1.txt ，stt.txt&nbsp;&nbsp;， temp.txt ，第1个和第2个文本里面随便写点东西。<br/><br/>需要用到下面的程序<br/><a target="_blank" href="http://www.iamwawa.cn/blog/article/31.htm" rel="external">[Python手机软件]更新下载,Ped2.19手机上编辑运行python的程序</a><br/><a href="http://www.iamwawa.cn/blog/article/31.htm" target="_blank" rel="external">http://www.iamwawa.cn/blog/article/31.htm</a><br/><br/>下面是教程。<br/><br/>#开始前我们要准备两个.txt文件，编码为utf8 <br/>file=open(&#34;e:\\sett1.txt&#34;,&#34;r&#34;) <br/>#之前说过了open中r的应用,r就是read的意思 <br/>f=file.read() <br/>#那么file.read()就是读取file的内容，而file我们在上面看到file=open(&#34;e:\\sett1.txt&#34;,&#34;r&#34;)而我们将他付于f <br/>file.close() <br/>#file.close()就是停止使用file中提供的内容，这也是必要的，为什么呢？其实很简单，因为当你open一个文件的时候，如e:\\sett1.txt，他在你的编辑器中的状态是正在使用，如果我们不定义.close()，这个文件也只能在我们当前的编辑器中使用。 <br/>print f.decode(&#34;utf8&#34;) <br/>#print打印的意思，我们可以在这里停停，运行一下，他打印的内容就是他后面跟着的f，而f就是我刚和各位说的f=file.read()，那么f.decode(&#34;utf8&#34;)是什么意思呢，decode就是编码的意思，我们定义f.decode(&#34;utf8&#34;)就是定义f的内容通过utf8编码(utf8:是一种，储存存和传送的格式，每个unicode/ucs字符都以2或4个bytes来储存)，而我们想在python/ped中想显示中文，我们就必需定义编码.decode(&#34;utf8&#34;)，当然还有很多的编码，以后会说到 <br/>txt=open(&#34;e:\\stt.txt&#34;,&#34;r&#34;) <br/>text=txt.read() <br/>txt.close() <br/>print text.decode(&#34;utf8&#34;) <br/>#这里的意思和刚说的一样，我们在这里打开了另一个文件e:\\stt.txt <br/>temp=open(&#34;e:\\temp.txt&#34;,&#34;a&#34;) <br/>#我们定义temp而我们利利用open打开一个文件，temp.txt,而我们会发觉,我们这时候定义的不是w,r而是a，a的意思就是追加的状态，什么叫追加，它的意思是，打开一个文件，而保持文件中的内容不变的意思而我们添加的内容将会在文件的内容的尾步添加。如果我们这时用w不是用a的话，那么我们就是创建一个文件，不管文件的内容是否已经编辑，都以新建打开 <br/>temp.write(text+&#34;,&#34;+f) <br/>#temp.write()我们发现()中内容是我们刚刚text和f,我们用()将他包括在temp.write中，这里的意思也就是跟w，中的一样()中的内容就是我们要写进去的内容。我们用+将不同的内容分开，我们不能写成temp.write(text&#34;,&#34;f)，这样的话python会意为text&#34;,&#34;f是一个已经付于的。 <br/>temp.close() <br/>#定义关闭文件的使用 <br/>#好了程序写好了，我们打开e:\\temp.txt，我们会发现，temp中的内容就是我们sett.txt和sett1.txt的内容，而且用&#34;,&#34;分格。]]></description>
		</item>
		
			<item>
			<link>http://www.iamwawa.cn/blog/article.asp?id=50</link>
			<title><![CDATA[[PYTHON手机软件]一个python计数器(更新v0.11)]]></title>
			<author>azoon@163.com(admin)</author>
			<category><![CDATA[Python]]></category>
			<pubDate>Sun,02 Mar 2008 14:35:08 +0800</pubDate>
			<guid>http://www.iamwawa.cn/blog/default.asp?id=50</guid>
		<description><![CDATA[作者：<strong>tcalbert at OPDA</strong><br/>原文：<br/><img src="http://www.iamwawa.cn/blog/attachments/month_0803/b200832143329.jpg" border="0" alt=""/><img src="http://www.iamwawa.cn/blog/attachments/month_0803/0200832143340.jpg" border="0" alt=""/><br/><img src="http://www.iamwawa.cn/blog/attachments/month_0803/6200832143357.jpg" border="0" alt=""/><img src="http://www.iamwawa.cn/blog/attachments/month_0803/g20083214347.jpg" border="0" alt=""/><br/><img src="http://www.iamwawa.cn/blog/attachments/month_0803/t200832143430.jpg" border="0" alt=""/><img src="http://www.iamwawa.cn/blog/attachments/month_0803/9200832143438.jpg" border="0" alt=""/><br/><br/>昨天发了一个功能简陋pyton编写的计算器软件(只能用来解一元二次方程 - - ).但还是得到了大家的热情支持,很是感动.所以奋斗了一个晚上一边学理论,一边进行实践操作.多少还是掌握了点东西.所以也就迫不及待地更新我的软件(simple calc 简单计算器).<br/>以下为更新内容:<br/>加入了一些函数计算功能,支持三角函数,幂指函数及对数函数.<br/>增加了支持方程的种类:一元二次方程(原版本的唯一功能 - - ),一元三次方程(正在调试),二元一次方程组以及三元衣次方程组.增加了软件运行的稳定性:比如,万一输入了不合定义的数据,软件也不会被强行弹出.调整了菜单项.<br/>ps:虽然本&#34;软件&#34;还称不上是软件,但我有信心做好它,不断地更新总会变得越来越完善的.我相信等出到v1.00以上版本时就能说&#34;很好，很强大了!&#34;<br/>您的支持是我前进的最大动力!<br/><br/>还是习惯性的传下源代码吧...<br/><br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code9618);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.iamwawa.cn/blog/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code9618># Simple Calc v0.11<br/># Designed by tcalbert<br/># 2008.03.02<br/># The former version was v0.03<br/># Many more functions have <br/># been added in this version.<br/><br/>import appuifw<br/>import e32<br/>import math<br/>appuifw.app.title=u&#39;Simple Calc v0.11&#39;<br/>appuifw.app.body=appuifw.Text(u&#39;please press the &#34;Options&#34; ...&#39;)<br/>def exit_key_handler():<br/>&nbsp;&nbsp;app_lock.signal()<br/>app_lock=e32.Ao_lock()<br/>appuifw.app.exit_key_handler=exit_key_handler<br/>def about():<br/>&nbsp;&nbsp;appuifw.app.body=appuifw.Text(u&#39;Simple Calc v0.11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Designed by tcalbert, 08.03.02. To see more detailed information, please visit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.opda.net.cn" target="_blank" rel="external">http://www.opda.net.cn</a>&#39;)<br/>def help():<br/>&nbsp;&nbsp;appuifw.app.body=appuifw.Text(u&#39;I think there is no problem for you to use such a simple software.But if you do have problems, please write to me. My e-mail address is&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 694169531@qq.com&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; And also, I am waiting for your good ideas and valuable suggestions.&#39;)<br/>def eqsubitem1():<br/>&nbsp;&nbsp;a=appuifw.query(u&#39;a&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;if a==None:<br/>&nbsp;&nbsp;&nbsp;&nbsp;a=0<br/>&nbsp;&nbsp;if a==0:<br/>&nbsp;&nbsp;&nbsp;&nbsp;appuifw.note(u&#39;a=0 is not permitted!&#39;,&#39;error&#39;)<br/>&nbsp;&nbsp;else:<br/>&nbsp;&nbsp;&nbsp;&nbsp;b=appuifw.query(u&#39;b&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;c=appuifw.query(u&#39;c&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;if b==None:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b=0<br/>&nbsp;&nbsp;&nbsp;&nbsp;if c==None:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c=0<br/>&nbsp;&nbsp;&nbsp;&nbsp;delta=math.pow(b,2)-4*a*c<br/>&nbsp;&nbsp;&nbsp;&nbsp;if delta&lt;0:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;appuifw.note(u&#39;no real root&#39;,&#39;info&#39;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;else:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x1=(0-b+math.sqrt(delta))/(2*a)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x2=(0-b-math.sqrt(delta))/(2*a)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;appuifw.app.body=appuifw.Text(u&#39;x1=&#39;+str(x1)+u&#39;&nbsp;&nbsp;&nbsp;&nbsp;&#39;+u&#39;x2=&#39;+str(x2))<br/>def eqsubitem2():<br/>&nbsp;&nbsp;appuifw.note(u&#39;not available now&#39;,&#39;info&#39;)<br/>def eqsubitem3():<br/>&nbsp;&nbsp;a1=appuifw.query(u&#39;a1&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;b1=appuifw.query(u&#39;b1&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;c1=appuifw.query(u&#39;c1&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;a2=appuifw.query(u&#39;a2&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;b2=appuifw.query(u&#39;b2&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;c2=appuifw.query(u&#39;c2&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;if a1==None:<br/>&nbsp;&nbsp;&nbsp;&nbsp;a1=0.0<br/>&nbsp;&nbsp;if b1==None:<br/>&nbsp;&nbsp;&nbsp;&nbsp;b1=0.0<br/>&nbsp;&nbsp;if c1==None:<br/>&nbsp;&nbsp;&nbsp;&nbsp;c1=0.0<br/>&nbsp;&nbsp;if a2==None:<br/>&nbsp;&nbsp;&nbsp;&nbsp;a2=0.0<br/>&nbsp;&nbsp;if b2==None:<br/>&nbsp;&nbsp;&nbsp;&nbsp;b2=0.0<br/>&nbsp;&nbsp;if c2==None:<br/>&nbsp;&nbsp;&nbsp;&nbsp;c2=0.0<br/>&nbsp;&nbsp;delta=a1*b2-b1*a2<br/>&nbsp;&nbsp;if delta==0:<br/>&nbsp;&nbsp;&nbsp;&nbsp;appuifw.note(u&#39;error&#39;,&#39;error&#39;)<br/>&nbsp;&nbsp;else:<br/>&nbsp;&nbsp;&nbsp;&nbsp;x=(c1*b2-b1*c2)/delta<br/>&nbsp;&nbsp;&nbsp;&nbsp;y=(a1*c2-c1*a2)/delta<br/>&nbsp;&nbsp;&nbsp;&nbsp;appuifw.app.body=appuifw.Text(u&#39;x=&#39;+str(x)+u&#39;&nbsp;&nbsp;&nbsp;&nbsp;&#39;+u&#39;y=&#39;+str(y))<br/>def eqsubitem4():<br/>&nbsp;&nbsp;a1=appuifw.query(u&#39;a1&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;b1=appuifw.query(u&#39;b1&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;c1=appuifw.query(u&#39;c1&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;d1=appuifw.query(u&#39;d1&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;a2=appuifw.query(u&#39;a2&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;b2=appuifw.query(u&#39;b2&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;c2=appuifw.query(u&#39;c2&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;d2=appuifw.query(u&#39;d2&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;a3=appuifw.query(u&#39;a3&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;b3=appuifw.query(u&#39;b3&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;c3=appuifw.query(u&#39;c3&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;d3=appuifw.query(u&#39;d3&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;if a1==None:<br/>&nbsp;&nbsp;&nbsp;&nbsp;a1=0.0<br/>&nbsp;&nbsp;if b1==None:<br/>&nbsp;&nbsp;&nbsp;&nbsp;b1=0.0<br/>&nbsp;&nbsp;if c1==None:<br/>&nbsp;&nbsp;&nbsp;&nbsp;c1=0.0<br/>&nbsp;&nbsp;if d1==None:<br/>&nbsp;&nbsp;&nbsp;&nbsp;d1=0.0<br/>&nbsp;&nbsp;if a2==None:<br/>&nbsp;&nbsp;&nbsp;&nbsp;a2=0.0<br/>&nbsp;&nbsp;if b2==None:<br/>&nbsp;&nbsp;&nbsp;&nbsp;b2=0.0<br/>&nbsp;&nbsp;if c2==None:<br/>&nbsp;&nbsp;&nbsp;&nbsp;c2=0.0<br/>&nbsp;&nbsp;if d2==None:<br/>&nbsp;&nbsp;&nbsp;&nbsp;d2=0.0<br/>&nbsp;&nbsp;if a3==None:<br/>&nbsp;&nbsp;&nbsp;&nbsp;a3=0.0<br/>&nbsp;&nbsp;if b3==None:<br/>&nbsp;&nbsp;&nbsp;&nbsp;b3=0.0<br/>&nbsp;&nbsp;if c3==None:<br/>&nbsp;&nbsp;&nbsp;&nbsp;c3=0.0<br/>&nbsp;&nbsp;if d3==None:<br/>&nbsp;&nbsp;&nbsp;&nbsp;d3=0.0<br/>&nbsp;&nbsp;delta=a1*b2*c3+a2*b3*c1+a3*c2*b1-c1*b2*a3-c2*b3*a1-c3*a2*b1<br/>&nbsp;&nbsp;if delta==0:<br/>&nbsp;&nbsp;&nbsp;&nbsp;appuifw.note(u&#39;error&#39;,&#39;error&#39;)<br/>&nbsp;&nbsp;else:<br/>&nbsp;&nbsp;&nbsp;&nbsp;x=(d1*b2*c3+d2*b3*c1+d3*c2*b1-c1*b2*d3-c2*b3*d1-c3*d2*b1)/delta<br/>&nbsp;&nbsp;&nbsp;&nbsp;y=(a1*d2*c3+a2*d3*c1+a3*c2*d1-c1*d2*a3-c2*d3*a1-c3*a2*d1)/delta<br/>&nbsp;&nbsp;&nbsp;&nbsp;z=(a1*b2*d3+a2*b3*d1+a3*d2*b1-d1*b2*a3-d2*b3*a1-d3*a2*b1)/delta<br/>&nbsp;&nbsp;&nbsp;&nbsp;appuifw.app.body=appuifw.Text(u&#39;x=&#39;+str(x)+u&#39;&nbsp;&nbsp;&nbsp;&nbsp;&#39;+u&#39;y=&#39;+str(y)+u&#39;&nbsp;&nbsp;&nbsp;&nbsp;&#39;+u&#39;z=&#39;+str(z))<br/><br/>def funcsubitem1():<br/>&nbsp;&nbsp;sin_in1=appuifw.query(u&#39;sin&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;if sin_in1==None:<br/>&nbsp;&nbsp;&nbsp;&nbsp;print<br/>&nbsp;&nbsp;else:<br/>&nbsp;&nbsp;&nbsp;&nbsp;sin_in2=(math.pi)*(sin_in1/180)<br/>&nbsp;&nbsp;&nbsp;&nbsp;sin_out=math.sin(sin_in2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;appuifw.app.body=appuifw.Text(u&#39;sin&#39;+str(sin_in1)+u&#39;=&#39;+str(sin_out))<br/>def funcsubitem2():<br/>&nbsp;&nbsp;cos_in1=appuifw.query(u&#39;cos&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;if cos_in1==None:<br/>&nbsp;&nbsp;&nbsp;&nbsp;print <br/>&nbsp;&nbsp;else:<br/>&nbsp;&nbsp;&nbsp;&nbsp;cos_in2=(math.pi)*(cos_in1/180)<br/>&nbsp;&nbsp;&nbsp;&nbsp;cos_out=math.cos(cos_in2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;appuifw.app.body=appuifw.Text(u&#39;cos&#39;+str(cos_in1)+u&#39;=&#39;+str(cos_out))<br/>def funcsubitem3():<br/>&nbsp;&nbsp;tan_in1=appuifw.query(u&#39;tan&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;if tan_in1==None:<br/>&nbsp;&nbsp;&nbsp;&nbsp;print<br/>&nbsp;&nbsp;else:<br/>&nbsp;&nbsp;&nbsp;&nbsp;tan_in2=(math.pi)*(tan_in1/180)<br/>&nbsp;&nbsp;&nbsp;&nbsp;tan_out=math.tan(tan_in2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;appuifw.app.body=appuifw.Text(u&#39;tan&#39;+str(tan_in1)+u&#39;=&#39;+str(tan_out))<br/>def funcsubitem4():<br/>&nbsp;&nbsp;log_e=appuifw.query(u&#39;ln&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;if log_e==None:<br/>&nbsp;&nbsp;&nbsp;&nbsp;print<br/>&nbsp;&nbsp;if log_e&lt;=0:<br/>&nbsp;&nbsp;&nbsp;&nbsp;appuifw.note(u&#39;error&#39;,&#39;error&#39;)<br/>&nbsp;&nbsp;else:<br/>&nbsp;&nbsp;&nbsp;&nbsp;log_e_out=math.log(log_e)<br/>&nbsp;&nbsp;&nbsp;&nbsp;appuifw.app.body=appuifw.Text(u&#39;ln&#39;+str(log_e)+u&#39;=&#39;+str(log_e_out))<br/>def funcsubitem5():<br/>&nbsp;&nbsp;log_10=appuifw.query(u&#39;lg&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;if log_10==None:<br/>&nbsp;&nbsp;&nbsp;&nbsp;print<br/>&nbsp;&nbsp;if log_10&lt;=0:<br/>&nbsp;&nbsp;&nbsp;&nbsp;appuifw.note(u&#39;error&#39;,&#39;error&#39;)<br/>&nbsp;&nbsp;else:<br/>&nbsp;&nbsp;&nbsp;&nbsp;log_10_out=(math.log(log_10))/(math.log(10))<br/>&nbsp;&nbsp;&nbsp;&nbsp;appuifw.app.body=appuifw.Text(u&#39;lg&#39;+str(log_10)+u&#39;=&#39;+str(log_10_out))<br/>def funcsubitem6():<br/>&nbsp;&nbsp;log_a=appuifw.query(u&#39;a&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;if log_a==None:<br/>&nbsp;&nbsp;&nbsp;&nbsp;print<br/>&nbsp;&nbsp;if log_a&lt;=0:<br/>&nbsp;&nbsp;&nbsp;&nbsp;appuifw.note(u&#39;error&#39;,&#39;error&#39;)<br/>&nbsp;&nbsp;else:<br/>&nbsp;&nbsp;&nbsp;&nbsp;log_b=appuifw.query(u&#39;b&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;if log_b==None:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print<br/>&nbsp;&nbsp;&nbsp;&nbsp;if log_b&lt;=0:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;appuifw.note(u&#39;error&#39;,&#39;error&#39;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;else:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log_a_b_out=(math.log(log_b))/(math.log(log_a))<br/>&nbsp;&nbsp;&nbsp;&nbsp;appuifw.app.body=appuifw.Text(u&#39;log&#39;+u&#39;(&#39;+str(log_a)+u&#39;)&#39;+str(log_b)+u&#39;=&#39;+str(log_a_b_out))<br/>def funcsubitem7():<br/>&nbsp;&nbsp;base_a1=appuifw.query(u&#39;a&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;base_a2=base_a1*1.0<br/>&nbsp;&nbsp;power_b1=appuifw.query(u&#39;b&#39;,&#39;float&#39;)<br/>&nbsp;&nbsp;power_b2=power_b1*1.0<br/>&nbsp;&nbsp;result=math.pow(base_a2,power_b2)<br/>&nbsp;&nbsp;appuifw.app.body=appuifw.Text(u&#39;(&#39;+str(base_a2)+u&#39;)&#39;+u&#39;^&#39;+str(power_b2)+u&#39;=&#39;+str(result))<br/>appuifw.app.menu=[(u&#39;Function&#39;,((u&#39;sin&#39;,funcsubitem1),(u&#39;cos&#39;,funcsubitem2),(u&#39;tan&#39;,funcsubitem3),(u&#39;(a)^b&#39;,funcsubitem7),(u&#39;log&#39;,funcsubitem6),(u&#39;ln&#39;,funcsubitem4),(u&#39;lg&#39;,funcsubitem5))),(u&#39;Equation&#39;,((u&#39;x^2&#39;,eqsubitem1),(u&#39;x^3&#39;,eqsubitem2),(u&#39;xy&#39;,eqsubitem3),(u&#39;xyz&#39;,eqsubitem4))),(u&#39;help&#39;,help),(u&#39;about&#39;,about)]<br/>app_lock.wait()<br/><br/># To be up&#100;ated ...<br/>#</div></div><br/><br/>更多的功能,敬请期待下一版本......<br/><br/>原文件下载：<a target="_blank" href="http://www.cuteq.com.cn/UploadFile/python/simplecalc011.rar" rel="external">这里</a>]]></description>
		</item>
		
			<item>
			<link>http://www.iamwawa.cn/blog/article.asp?id=41</link>
			<title><![CDATA[[PYTHON代码]Python Keygen Ver:080124]]></title>
			<author>azoon@163.com(admin)</author>
			<category><![CDATA[Python]]></category>
			<pubDate>Thu,24 Jan 2008 19:50:16 +0800</pubDate>
			<guid>http://www.iamwawa.cn/blog/default.asp?id=41</guid>
		<description><![CDATA[最近比较忙很少跟新博客了，考完试后，就参加污染普查，时间都没了。<br/>下面这个PY程序是OPDA的一个朋友写的。大家可以学一下PY的算法。<br/><br/>下面是作者的话。<br/>绰号：Cater&nbsp;&nbsp;<br/>Q Q：24882688<br/>爱好：软件解密<br/>隶属：OPDA、一品堂[Y.P.T]<br/>关于本软件：<br/>&nbsp;&nbsp;&nbsp;&nbsp;写这个软件是学习Python For s60过程中的产物，以后我会陆续不定期加入新的注册机。<br/>声明：本程序逆向修改时请注明作者，不可用于商用。<br/><br/>Python Keygen Ver:080124<br/><br/>当前版本仅包含：<br/>Smart Movie 3.x PC Keygen<br/>USBKiller Keygen<br/><br/>算法分析及py代码由Cater制作<br/><br/><br/>这个程序可以在装有PY的S60手机上运行。<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code36675);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.iamwawa.cn/blog/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code36675><span style="color:Green">import appuifw<br/><br/>def cn(x):return x.decode(&#34;utf-8&#34;)<br/>def exit():<br/>&nbsp;&nbsp;&nbsp;&nbsp;appuifw.app.set_exit()<br/>def About_Me():<br/>&nbsp;&nbsp;&nbsp;&nbsp;appuifw.app.body = m = appuifw.Text()<br/>&nbsp;&nbsp;&nbsp;&nbsp;m.color=0x0000ff<br/>&nbsp;&nbsp;&nbsp;&nbsp;appuifw.app.body = m = appuifw.Text()<br/>&nbsp;&nbsp;&nbsp;&nbsp;m.set(cn(&#34;\t&nbsp;&nbsp;&nbsp;&nbsp;About Me\n&#34;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;m.add(cn(&#34;\n绰号：Cater&nbsp;&nbsp;QQ:24882688\n爱好：软件解密\n隶属：OPDA、一品堂[Y.P.T]\n关于本软件：\n&nbsp;&nbsp;&nbsp;&nbsp;写这个软件是学习Python For s60过程中的产物，以后我会陆续不定期加入新的注册机。\n声明：本程序逆向修改时请注明作者，不可用于商用\n\nPython Keygen Ver:080124&#34;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;appuifw.app.exit_key_handler=alist<br/><br/><br/>############################<br/>#Keygen Code Module<br/><br/>#========================<br/>def keygen():<br/>&nbsp;&nbsp;&nbsp;&nbsp;appuifw.app.body = m = appuifw.Text()<br/>&nbsp;&nbsp;&nbsp;&nbsp;m.set(&#34;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;appuifw.app.exit_key_handler=alist<br/>#========================<br/><br/><br/><br/>def USBKiller_keygen():<br/>#USBKiller Keygen<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;appuifw.app.title = cn(&#34;USBKiller 注册机 - Cater&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;appuifw.app.body = m = appuifw.Text()<br/>&nbsp;&nbsp;&nbsp;&nbsp;m.set(&#34;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;m.add(cn(&#39;\n\n\n\n\n\n\n\n\n USBKiller Keygen - PyS60\n\n介绍\n&nbsp;&nbsp;&nbsp;&nbsp;USBKiller是一款针对移动硬盘、U盘杀毒防毒的强劲软件，支持在线升级。软件官方地址：\n&nbsp;&nbsp; WwW.EasySoft.CoM.Cn\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Make By Cater\n&nbsp;&nbsp; 一品堂[Y.P.T]荣誉出品\n\t2008年01月21日&#39;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;if appuifw.query(cn(&#39;USBKiller 注册机\nMake By Cater\n\n 一品堂[Y.P.T]荣誉出品\n\t\t\t\t\t2008年01月21日&#39;), &#34;query&#34;):<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;code=appuifw.query(cn(&#34;请输入机器码：&#34;),&#39;text&#39;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sn=u&#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i in range(0,len(code)):<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key=ord(code[i]) + 2 + 2 * i<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if key &lt;48 o&#114; key &gt; 90 o&#114; (key &gt; 57 and key &lt; 65):<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;continue<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sn=sn+chr(key)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;serial=sn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;appuifw.query(cn(&#39;USBKiller - 注册机\n注册码：\n&#39;) + serial + cn(&#39;\n\tMake By Cater [Y.P.T]\n\t\t\t\t\t2008年01月21日\n&#39;), &#34;query&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m.add(cn(&#34;=====================\n\t注册信息\n机器码：&#34;) + code + cn(&#34;\n注册码：&#34;)+ serial + cn(&#34;\n=====================&#34;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;else:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;appuifw.note(cn(&#39;USBKiller 注册机\n\t\t\t\t\t\t感谢您的使用\n\tCater QQ:24882688\n 一品堂[Y.P.T]荣誉出品\n\t\t\t\t\t2008年01月21日&#39;), &#34;conf&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;appuifw.app.exit_key_handler=alist<br/><br/><br/># USBKiller KeyGen<br/># Python S60 Version<br/># Make By Cater<br/># QQ:24882688<br/># 一品堂[Y.P.T]荣誉出品<br/>#&nbsp;&nbsp;&nbsp;&nbsp;2008.01.21<br/>#========================<br/>def SM_keygen():<br/>#Smart Movie 3.X PC端注册机<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;appuifw.app.title = cn(&#34;Smart Movie 3.x PC端注册机OPDA&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;appuifw.app.body = m = appuifw.Text()<br/>&nbsp;&nbsp;&nbsp;&nbsp;m.set(&#34;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;m.add(cn(&#34;Smart Movie 3.x PC KeyGen\n\n介绍\n&nbsp;&nbsp;&nbsp;&nbsp;大家都知道吧，不过感觉CorePlayer，DivxPlayer在视频播放上非常棒。\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Make BY Cater\n&nbsp;&nbsp;&nbsp;&nbsp;OPDA-2008 荣誉出品\n&nbsp;&nbsp;&nbsp;&nbsp; WwW.Opda.Net.Cn\n&#34;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;if appuifw.query(cn(&#39;Smart Movie 3.X PC端注册机-OPDA\n\nOPDA-2008 荣誉出品\n\tWwW.Opda.Net.Cn&#39;), &#34;query&#34;):<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;applycode=appuifw.query(cn(&#34;请输入PC端申请码：&#34;),&#39;number&#39;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a=0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i in range(0,len(str(applycode))):<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a = 3468 - i + o&#114;d(str(applycode)[i] ) * 1438 - a * 13<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tem=u&#39;&#39;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sn=a % 65536<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if 5-len(str(sn))&gt;0:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for f in range(0,5-len(str(sn))):<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tem=tem+ u&#39;0&#39;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sn=tem+str(sn)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;appuifw.query(cn(&#39;Keygen - OPDA\n注册码：&#39;) + str(sn) + cn(&#39;\n请拷贝注册码到电脑端\nMake BY Cater [OPDA]\nQQ:24882688 08.01&#39;), &#34;query&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m.add(cn(&#34;\n申请码：&#34;) + str(applycode) +cn(&#34;\n注册码：&#34;)+ str(sn)+cn(&#34;\n&nbsp;&nbsp;&nbsp;&nbsp; 请拷贝注册码到电脑端&#34;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;else:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;appuifw.note(cn(&#39;Smart Movie 3.x 注册机 For PyS60\n\t\t\t\t\t感谢您的使用\nOPDA-2008 荣誉出品\n\tWwW.Opda.Net.Cn&#39;), &#34;conf&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;appuifw.app.exit_key_handler=alist<br/><br/>#========================<br/><br/>#END Keygen Module<br/>############################<br/><br/><br/>def alist():<br/>&nbsp;&nbsp;&nbsp;&nbsp;def press():<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cater=3<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index =&nbsp;&nbsp;listbox.current()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if index == 0:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;About_Me()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id=cater-index<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if id==2:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USBKiller_keygen()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if id == 1:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SM_keygen()&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;list = [cn(&#34;About Me&#34;),cn(&#34;[PC] USBKiller - KG&#34;),cn(&#34;Smart Movie 3.x - KG&#34;)]<br/>&nbsp;&nbsp;&nbsp;&nbsp;appuifw.app.body = listbox = appuifw.Listbox(list,press)<br/>&nbsp;&nbsp;&nbsp;&nbsp;appuifw.app.menu = [(cn(&#34;退出&#34;),exit)]<br/>&nbsp;&nbsp;&nbsp;&nbsp;appuifw.app.exit_key_handler = exit<br/><br/>appuifw.app.screen=&#39;full&#39;<br/><br/>alist()<br/></span></div></div><br/><br/>OPDA上的原贴 <a target="_blank" href="http://www.opda.net.cn/viewthread.php?tid=21578&amp;extra=page%3D1" rel="external">点这里</a>]]></description>
		</item>
		
			<item>
			<link>http://www.iamwawa.cn/blog/article.asp?id=37</link>
			<title><![CDATA[[Python软件汉化]mbmtool1.00,手机上的MBMTOOL工具]]></title>
			<author>azoon@163.com(admin)</author>
			<category><![CDATA[Python]]></category>
			<pubDate>Fri,21 Dec 2007 13:48:59 +0800</pubDate>
			<guid>http://www.iamwawa.cn/blog/default.asp?id=37</guid>
		<description><![CDATA[<div class="UBBPanel quotePanel"><div class="UBBTitle"><img src="http://www.iamwawa.cn/blog/images/quote.gif" style="margin:0px 2px -3px 0px" alt="引用内容"/> 引用内容</div><div class="UBBContent">软件：mbmtool1.00<br/>平台：python for s60<br/>支持手机：s60第三版，例如N73，E50，N95等</div></div><br/><div class="UBBPanel quotePanel"><div class="UBBTitle"><img src="http://www.iamwawa.cn/blog/images/quote.gif" style="margin:0px 2px -3px 0px" alt="引用内容"/> 引用内容</div><div class="UBBContent">软件说明：大家应该都清楚电脑上的MBMTOOL工具，可以很方便的转换MBM格式。现在只要你有一台S60手机就可以帮你在手机上方便的转换MBM了。<br/><br/>使用说明：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;将MBM文件放在e:/python/mbmtool/mbm/<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;将PNG文件放在e:/python/mbmtool/png/<br/>汉化说明：这个软件是我在手机上汉化的，用smartsis打包。</div></div><br/>汉化作者：azoon--www.iamwawa.cn<br/><strong>软件截图：</strong><br/><img src="http://www.iamwawa.cn/blog/attachments/month_0712/420071221134547.jpg" border="0" alt=""/><img src="http://www.iamwawa.cn/blog/attachments/month_0712/i20071221134552.jpg" border="0" alt=""/><br/><img src="http://www.iamwawa.cn/blog/attachments/month_0712/w20071221134557.jpg" border="0" alt=""/><img src="http://www.iamwawa.cn/blog/attachments/month_0712/n2007122113462.jpg" border="0" alt=""/><br/><br/><div class="UBBPanel quotePanel"><div class="UBBTitle"><img src="http://www.iamwawa.cn/blog/images/quote.gif" style="margin:0px 2px -3px 0px" alt="引用内容"/> 引用内容</div><div class="UBBContent"><strong>下载：</strong><br/>已签名版：<a target="_blank" href="http://www.fileden.com/files/2007/12/11/1639294/mbmtool_signed.sis" rel="external">点击下载</a><br/>未签名版：<a target="_blank" href="http://www.fileden.com/files/2007/12/11/1639294/mbmtool_unsign.sis" rel="external">点击下载</a></div></div>]]></description>
		</item>
		
			<item>
			<link>http://www.iamwawa.cn/blog/article.asp?id=34</link>
			<title><![CDATA[[python手机软件][附下载]手机上的解包打包工具SmartSIS 1.81汉化版更新]]></title>
			<author>azoon@163.com(admin)</author>
			<category><![CDATA[Python]]></category>
			<pubDate>Sun,16 Dec 2007 23:50:58 +0800</pubDate>
			<guid>http://www.iamwawa.cn/blog/default.asp?id=34</guid>
		<description><![CDATA[&nbsp;&nbsp; 我觉得最好的功能就是可以在手机上将PY程序打包成SIS，这样自己在手机上写的程序就可以直接运行了！实在太爽了！而且增加了签名和去掉签名功能，方便多了！不过签名还是推介用leftup的moible signer！呵呵，现在在电脑上做的东西在手机上实现了，没电脑在身边的时候方便多了。强烈推介！<br/><br/><strong>截图预览：</strong><br/><div align="center"><img src="http://www.iamwawa.cn/blog/attachments/month_0712/h20071216234953.jpg" border="0" alt=""/><img src="http://www.iamwawa.cn/blog/attachments/month_0712/320071216234957.jpg" border="0" alt=""/><br/><img src="http://www.iamwawa.cn/blog/attachments/month_0712/p2007121623501.jpg" border="0" alt=""/><img src="http://www.iamwawa.cn/blog/attachments/month_0712/v2007121623505.jpg" border="0" alt=""/></div><br/><br/><div class="UBBPanel quotePanel"><div class="UBBTitle"><img src="http://www.iamwawa.cn/blog/images/quote.gif" style="margin:0px 2px -3px 0px" alt="引用内容"/> 引用内容</div><div class="UBBContent"><strong>主要功能:</strong><br/>主程序和插件要签名安装<br/>安装次序,首先删除C盘的所有PY相关程序,然后安装插件,跟着装平台,最后装主程序...<br/>本次更新终于可以打包了,不过比较遗憾的是还不支持中文名称,而且打包较大文件时会很慢....<br/>打包方法很简单,到C盘smartSIS文件夹,找到sis.pkg,用文本编辑打开,选择ANSII编码...按照原来格式,不要改动..</div></div><br/><div class="UBBPanel quotePanel"><div class="UBBTitle"><img src="http://www.iamwawa.cn/blog/images/quote.gif" style="margin:0px 2px -3px 0px" alt="引用内容"/> 引用内容</div><div class="UBBContent">第一行,打包文件路径<br/>第二行,安装时显示的程序名称<br/>第三行,软件的版本<br/>第四行,软件UID<br/>第五行,作者<br/>第六行,安装时的提示信息,一样只能使用ANSII编辑,即是不支持中文名<br/>你可以按上面提示改动相应内容<br/>先把程序解包,获取相应的打包信息,然后把解包的文件移进比如:C:\myprogram目录,然后编写好PKG,就可以打包了,会有相关信息出现...<br/>1.081更新支持签名功能:<br/>签证自用,要到设置里设置...支持去除签名,支持密码功能....<br/>完美支持中文名打包！</div></div><br/><br/><div class="UBBPanel quotePanel"><div class="UBBTitle"><img src="http://www.iamwawa.cn/blog/images/quote.gif" style="margin:0px 2px -3px 0px" alt="引用内容"/> 引用内容</div><div class="UBBContent">英文名称：SmartSIS<br/>中文名称：智能解包<br/>授权方式：请签名<br/>软件版本：1.81<br/>软件类型：工具<br/>测试机型：3250<br/>测试人员：龙飞飞龙<br/>汉化人员：龙飞飞龙<br/>软件支持机型：只支持S60三版机型</div></div><br/><br/><div class="UBBPanel quotePanel"><div class="UBBTitle"><img src="http://www.iamwawa.cn/blog/images/quote.gif" style="margin:0px 2px -3px 0px" alt="引用内容"/> 引用内容</div><div class="UBBContent">要先安装python for s60。按安装插件，然后再安装smartsis！如果你以前装过PY的程序请删除，否则将出现更新失败的提示！安装完smartsis后可以安装你原理的PY程序！<br/>1.<a target="_blank" href="http://www.fileden.com/files/2007/12/11/1639294/PythonForS60_1_4_1_3rdEd.SIS" rel="external">PythonForS60_1_4_1_3rdEd</a><br/>2.<a target="_blank" href="http://www.fileden.com/files/2007/12/11/1639294/SmartSIS%20cj.sis" rel="external">插件下载</a><br/>3.<a target="_blank" href="http://www.fileden.com/files/2007/12/11/1639294/SmartSIS1.081.SIS" rel="external">smartsis1.81下载</a></div></div>]]></description>
		</item>
		
			<item>
			<link>http://www.iamwawa.cn/blog/article.asp?id=32</link>
			<title><![CDATA[[python程序]附下载,函数绘图,可在手机上输入函数,并画出函数图像]]></title>
			<author>azoon@163.com(admin)</author>
			<category><![CDATA[Python]]></category>
			<pubDate>Thu,13 Dec 2007 00:07:13 +0800</pubDate>
			<guid>http://www.iamwawa.cn/blog/default.asp?id=32</guid>
		<description><![CDATA[此程序又CNPDA的dozer47528编写。<br/>虽然作者是为S60V2的，不过S60V3的朋友可以用ped打开程序再运行，效果是一样的。<br/><div class="UBBPanel quotePanel"><div class="UBBTitle"><img src="http://www.iamwawa.cn/blog/images/quote.gif" style="margin:0px 2px -3px 0px" alt="引用内容"/> 引用内容</div><div class="UBBContent"><strong>说明：</strong><br/>画多函数，最多五条<br/>快速移动，查看函数<br/>放大缩小（重绘图像比较慢）<br/>最有用的功能！移动一个点可以查看坐标！<br/>完美支持三角正弦函数，余弦函数，不完美支持正切函数…<br/>输入格式：x^2+sin(x)+cos(x)+tan(x)-1/x+x*5</div></div><br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code50915);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.iamwawa.cn/blog/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code50915><strong>部分代码预览：</strong><br/>import appuifw<br/>import graphics<br/>import e32<br/>import math<br/>from key_codes import *<br/>#==========定义函数<br/>#==========定义按键事件<br/>class Keyboard(object):<br/>&nbsp;&nbsp;&nbsp;&nbsp;def __init__(self,onevent=lambda:None):<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self._keyboard_state={}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self._downs={}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self._onevent=onevent<br/>&nbsp;&nbsp;&nbsp;&nbsp;def handle_event(self,event):<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if event[&#39;type&#39;] == appuifw.EEventKeyDown:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;code=event[&#39;scancode&#39;]<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if not self.is_down(code):<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self._downs[code]=self._downs.get(code,0)+1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self._keyboard_state[code]=1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elif event[&#39;type&#39;] == appuifw.EEventKeyUp:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self._keyboard_state[event[&#39;scancode&#39;]]=0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self._onevent()<br/>&nbsp;&nbsp;&nbsp;&nbsp;def is_down(self,scancode):<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return self._keyboard_state.get(scancode,0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;def pressed(self,scancode):<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if self._downs.get(scancode,0):<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self._downs[scancode]-=1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return True<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return False<br/>keyboard=Keyboard()</div></div><br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code54524);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.iamwawa.cn/blog/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code54524>原贴地址：<a target="_blank" href="http://www.cnpda.com.cn/viewthread.php?tid=66587" rel="external">这里</a><br/>完整代码下载：<a target="_blank" href="http://www.fileden.com/files/2007/12/11/1639294/function%20draw%20V1.5.py" rel="external">draw 1.5.py</a></div></div>]]></description>
		</item>
		
			<item>
			<link>http://www.iamwawa.cn/blog/article.asp?id=31</link>
			<title><![CDATA[[Python手机软件]更新下载,Ped2.19手机上编辑运行python的程序]]></title>
			<author>azoon@163.com(admin)</author>
			<category><![CDATA[Python]]></category>
			<pubDate>Wed,12 Dec 2007 23:27:02 +0800</pubDate>
			<guid>http://www.iamwawa.cn/blog/default.asp?id=31</guid>
		<description><![CDATA[<div class="UBBPanel quotePanel"><div class="UBBTitle"><img src="http://www.iamwawa.cn/blog/images/quote.gif" style="margin:0px 2px -3px 0px" alt="引用内容"/> 引用内容</div><div class="UBBContent">英文名称：Ped&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;中文名称：脚本编辑<br/>授权方式：直装&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;软件版本：2.19&nbsp;&nbsp; 软件类型：工具<br/>测试机型：3250&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;测试人员：龙飞飞龙<br/>汉化人员：龙飞飞龙&nbsp;&nbsp;<br/>软件支持机型：只支持S60三版机型</div></div><br/><br/><strong>软件截图：</strong><br/><div align="center"><img src="http://www.iamwawa.cn/blog/attachments/month_0712/z20071212232526.jpg" border="0" alt=""/><img src="http://www.iamwawa.cn/blog/attachments/month_0712/220071212232534.jpg" border="0" alt=""/><br/><img src="http://www.iamwawa.cn/blog/attachments/month_0712/t20071212232538.jpg" border="0" alt=""/><img src="http://www.iamwawa.cn/blog/attachments/month_0712/e20071212232542.jpg" border="0" alt=""/></div><br/><br/><div class="UBBPanel quotePanel"><div class="UBBTitle"><img src="http://www.iamwawa.cn/blog/images/quote.gif" style="margin:0px 2px -3px 0px" alt="引用内容"/> 引用内容</div><div class="UBBContent"><strong>主要特点： </strong><br/>超强的手机编程序工具和文本编辑工具<br/>支持浏览打开任何文件夹文件<br/>完美支持中文文件名 <br/>支持编辑纯文本文件和python脚本， <br/>可以对python脚本资源包文件进行修改（汉化）<br/>具体请看汉化python教程</div></div><br/><br/><div class="UBBPanel quotePanel"><div class="UBBTitle"><img src="http://www.iamwawa.cn/blog/images/quote.gif" style="margin:0px 2px -3px 0px" alt="引用内容"/> 引用内容</div><div class="UBBContent"><strong>常规设置：</strong><br/>可字体/文本：类型．颜色．页面大小．缩放．编码．自动保存．</div></div><br/><br/><div class="UBBPanel quotePanel"><div class="UBBTitle"><img src="http://www.iamwawa.cn/blog/images/quote.gif" style="margin:0px 2px -3px 0px" alt="引用内容"/> 引用内容</div><div class="UBBContent"><strong>更新:</strong><br/>- 视图更改:待机屏幕是一个特别窗口(根目录窗口),可以轻易添加热键,也允许在组件中清除<br/>- 新建热键: 绿键+*,打开脚本解释器<br/>- 新建热键: 绿键+0,打开文件对话框和运行标记脚本<br/>- 新建热键: 绿键+#,打开文件对话框和读取文件编辑器<br/>- 新建热键: 绿键+9,保存当前文件<br/>- 新建热键: 绿键+1,运行当前脚本<br/>- 更改热键: 绿键+8,浏览代码(之前为绿键+0)</div></div><br/><br/><div class="UBBPanel quotePanel"><div class="UBBTitle"><img src="http://www.iamwawa.cn/blog/images/quote.gif" style="margin:0px 2px -3px 0px" alt="引用内容"/> 引用内容</div><div class="UBBContent">下载：先安装PythonForS60_1_4_1_3rdEd.SIS，再安装ped<br/>&nbsp;&nbsp;<a target="_blank" href="http://www.fileden.com/files/2007/12/11/1639294/PythonForS60_1_4_1_3rdEd.SIS" rel="external">pythonfors60下载</a><br/>&nbsp;&nbsp;<a target="_blank" href="http://www.fileden.com/files/2007/12/11/1639294/Ped2.19betacn.sisx" rel="external">ped下载</a></div></div>]]></description>
		</item>
		
			<item>
			<link>http://www.iamwawa.cn/blog/article.asp?id=13</link>
			<title><![CDATA[看了两天的python，于是在手机上用ped写了几个简单的脚本]]></title>
			<author>azoon@163.com(admin)</author>
			<category><![CDATA[Python]]></category>
			<pubDate>Wed,14 Nov 2007 10:49:47 +0800</pubDate>
			<guid>http://www.iamwawa.cn/blog/default.asp?id=13</guid>
		<description><![CDATA[&nbsp;&nbsp; 看了两天的python，于是在手机上用ped写了几个简单的脚本。这几个脚本比较适合新手，因为我自己也只是新手。希望对大家有用。下面有原程序及电脑端，手机端软件下载。<br/><br/><span style="color:Green">1.1加到50</span><br/><br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.iamwawa.cn/blog/images/html.gif" style="margin:0px 2px -3px 0px"> HTML代码</div><div class="UBBContent"><TEXTAREA rows="8" id="temp70970">#1addto50
result=0
for i in range(1,51):result=result+i
print result</TEXTAREA><br/><INPUT onclick="runEx('temp70970')"  type="button" class="userbutton" value="运行此代码"/> <INPUT onclick="doCopy('temp70970')"  type="button" class="userbutton" value="复制此代码"/> <INPUT onclick="saveCode('temp70970')" type="button" class="userbutton" value="保存此代码"><br/> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</div></div><br/><br/><span style="color:Green">2.简单计算</span><br/><br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.iamwawa.cn/blog/images/html.gif" style="margin:0px 2px -3px 0px"> HTML代码</div><div class="UBBContent"><TEXTAREA rows="8" id="temp74579">#简单计算
a=2
b=3
c=a+b**2
print c</TEXTAREA><br/><INPUT onclick="runEx('temp74579')"  type="button" class="userbutton" value="运行此代码"/> <INPUT onclick="doCopy('temp74579')"  type="button" class="userbutton" value="复制此代码"/> <INPUT onclick="saveCode('temp74579')" type="button" class="userbutton" value="保存此代码"><br/> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</div></div><br/><br/><span style="color:Green">3.显示中文</span><br/><br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.iamwawa.cn/blog/images/html.gif" style="margin:0px 2px -3px 0px"> HTML代码</div><div class="UBBContent"><TEXTAREA rows="8" id="temp37195"># 显示中文字体测试
print '中文字体测试'.decode(&#34;utf-8&#34;)</TEXTAREA><br/><INPUT onclick="runEx('temp37195')"  type="button" class="userbutton" value="运行此代码"/> <INPUT onclick="doCopy('temp37195')"  type="button" class="userbutton" value="复制此代码"/> <INPUT onclick="saveCode('temp37195')" type="button" class="userbutton" value="保存此代码"><br/> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</div></div><br/><br/><span style="color:Green">4.弹出提示信息</span><br/><br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.iamwawa.cn/blog/images/html.gif" style="margin:0px 2px -3px 0px"> HTML代码</div><div class="UBBContent"><TEXTAREA rows="8" id="temp49349">#中文提示测试
import appuifw
import e32
appuifw.app.screen='large'
appuifw.app.title='提示测试'.decode(&#34;utf-8&#34;)
appuifw.note('我爱我老婆\n我老婆爱我\n爱爱爱爱爱\nwww.iamwawa.cn'.decode(&#34;utf-8&#34;), &#34;info&#34;)</TEXTAREA><br/><INPUT onclick="runEx('temp49349')"  type="button" class="userbutton" value="运行此代码"/> <INPUT onclick="doCopy('temp49349')"  type="button" class="userbutton" value="复制此代码"/> <INPUT onclick="saveCode('temp49349')" type="button" class="userbutton" value="保存此代码"><br/> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</div></div><br/>注意：这个只能在s60系统手机上才能运行。<br/><br/><span style="color:Green">5.for循环测试</span><br/><br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.iamwawa.cn/blog/images/html.gif" style="margin:0px 2px -3px 0px"> HTML代码</div><div class="UBBContent"><TEXTAREA rows="8" id="temp86329">#for循环测试
for i in range(1,5):
    print i
else:
    print 'The for loop is over'[/code]

[color=Green]6.while运用,判断输入数字位数。</TEXTAREA><br/><INPUT onclick="runEx('temp86329')"  type="button" class="userbutton" value="运行此代码"/> <INPUT onclick="doCopy('temp86329')"  type="button" class="userbutton" value="复制此代码"/> <INPUT onclick="saveCode('temp86329')" type="button" class="userbutton" value="保存此代码"><br/> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</div></div><br/><br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.iamwawa.cn/blog/images/html.gif" style="margin:0px 2px -3px 0px"> HTML代码</div><div class="UBBContent"><TEXTAREA rows="8" id="temp1946"># while运用
s=6
running=True
while running:
	mun=raw_input('请输入一个六位数字:'.decode(&#34;utf-8&#34;) )
	if len(mun)==s:
		print '你输入的一个六位数字是:'.decode(&#34;utf-8&#34;),mun
		running=False
	elif len(mun)<s:
		print '你输入的数字位数过小请重新输入'.decode(&#34;utf-8&#34;)
	else:
		print '你输入的数字位数过大请重新输入'.decode(&#34;utf-8&#34;)
else:
	print '输入正确'.decode(&#34;utf-8&#34;)
print '确认'.decode(&#34;utf-8&#34;)</TEXTAREA><br/><INPUT onclick="runEx('temp1946')"  type="button" class="userbutton" value="运行此代码"/> <INPUT onclick="doCopy('temp1946')"  type="button" class="userbutton" value="复制此代码"/> <INPUT onclick="saveCode('temp1946')" type="button" class="userbutton" value="保存此代码"><br/> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</div></div><br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code28649);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.iamwawa.cn/blog/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code28649>上面所有的原程序下载：<a target="_blank" href="http://www.fileden.com/files/2007/12/11/1639294/example.rar" rel="external">点这里</a></div></div><br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code74984);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.iamwawa.cn/blog/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code74984>如果你想在电脑上运行，请到<a href="http://python.org/download/" target="_blank" rel="external">http://python.org/download/</a>&nbsp;&nbsp;&nbsp;&nbsp;，下载你所需要的版本。windos的下载Python 2.5.1 Windows installer 。<br/><br/>如果你想在你的s60v3手机上编辑,运行，请按序安装下列文件：<br/><br/>PythonForS60_1_4_1_3rdEd<br/>PythonScriptShell_1_4_1_3rdEd<br/>Ped2.17<br/><br/><a href="http://webdisk.cech.com.cn/download/7899181/949975d23765ac0c8b12/Python.rar" target="_blank" rel="external">http://webdisk.cech.com.cn/download/7899181/949975d23765ac0c8b12/Python.rar</a></div></div>]]></description>
		</item>
		
			<item>
			<link>http://www.iamwawa.cn/blog/article.asp?id=12</link>
			<title><![CDATA[课上偷偷看python教程]]></title>
			<author>azoon@163.com(admin)</author>
			<category><![CDATA[Python]]></category>
			<pubDate>Mon,12 Nov 2007 22:47:07 +0800</pubDate>
			<guid>http://www.iamwawa.cn/blog/default.asp?id=12</guid>
		<description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; 上物理导论课，实在是一生的一大折磨，老师用纯正的四川口音给我们上课，我们似乎听他在念咒语。我为了不浪费时间，我多数自己在看书。而今天我足足看了两节课的python教程，我深深的被这种语言迷住了。这种编程语言简单，就像读普通英语那样，但是功能却很强大。看过资料，google的内核也用到了python。这种语言有很大的优势。相比Perl，python更惹人喜欢。<br/><br/>写一个由1加到50的程序。<br/><br/>在VB下要这样写：<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code81652);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.iamwawa.cn/blog/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code81652><span style="color:Green">Dim a As Integer, sum As Integer<br/>sum = 0<br/>For a = 0 To 50<br/>sum = a + sum<br/>Next a<br/>Print ; sum</span></div></div><br/><br/>在python下只有这样就行了：<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code42535);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.iamwawa.cn/blog/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code42535><span style="color:Green">sum_=0<br/>for i in range(1,51):sum_=sum_+i<br/>print sum_</span></div></div><br/><br/>(注：是sum_)<br/><br/>我只看了两节课，已经对python有了很好的理解，可想而知，这种语言是很容易学会的，很适合新手。<br/><br/>下面这个网址是简明 Python 教程（Swaroop, C. H. 著）<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code33327);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.iamwawa.cn/blog/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code33327>http://www.woodpecker.org.cn:9081/doc/abyteofpython_cn/chinese/index.html</div></div><br/><br/>大家可以上去学习一下。]]></description>
		</item>
		
			<item>
			<link>http://www.iamwawa.cn/blog/article.asp?id=27</link>
			<title><![CDATA[[python教程]Python开发编码规范]]></title>
			<author>azoon@163.com(admin)</author>
			<category><![CDATA[Python]]></category>
			<pubDate>Thu,08 Nov 2007 10:53:10 +0800</pubDate>
			<guid>http://www.iamwawa.cn/blog/default.asp?id=27</guid>
		<description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 这篇文档所给出的编码约定适用于在主要的Python发布版本中组成标准库的Python&nbsp;&nbsp; 代码，请查阅相关的关于在Python的C实现中C代码风格指南的描述。 <br/>&nbsp;&nbsp; 这篇文档改编自Guido最初的《Python风格指南》一文，并从《Barry&#39;s style guide》中添加了部分内容。在有冲突的地方，Guide的风格规则应该是符合本PEP的意图(译注：指当有冲突时，应以Guido风格为准)。这篇PEP仍然尚未完成(实际上，它可能永远都不会完成)。 <br/>&nbsp;&nbsp; 在这篇风格指导中的一致性是重要的。在一个项目内的一致性更重要。在一个模块或函数内的一致性最重要。但最重要的是：知道何时会不一致——有时只是没有实施风格指导。当出现疑惑时，运用你的最佳判断，看看别的例子，然后决定怎样看起来更好。并且要不耻下问！ <br/>&nbsp;&nbsp; 打破一条既定规则的两个好理由： <br/>(1)&nbsp;&nbsp;&nbsp;&nbsp; 当应用这个规则是将导致代码可读性下降，即便对某人来说，他已经习惯于按这条规则来阅读代码了。 <br/>(2)&nbsp;&nbsp;&nbsp;&nbsp; 为了和周围的代码保持一致而打破规则(也许是历史原因)，虽然这也是个清除其它混乱的好机会(真正的XP风格)。 <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>代码的布局</strong> <br/><strong>缩进 </strong><br/>&nbsp;&nbsp; 使用Emacs的Python-mode的默认值：4个空格一个缩进层次。对于确实古老的代码，你不希望产生混乱，可以继续使用8空格的制表符(8-space tabs)。Emacs Python-mode自动发现文件中主要的缩进层次，依此设定缩进参数。 <br/>制表符还是空格 <br/>&nbsp;&nbsp;永远不要混用制表符和空格。最流行的Python缩进方式是仅使用空格，其次是仅使用制表符，混合着制表符和空格缩进的代码将被转换成仅使用空格。(在Emacs中，选中整个缓冲区，按ESC-x去除制表符。)调用Python命令行解释器时使用-t选项，可对代码中不合法得混合制表符和空格发出警告，使用-tt时警告将变成错误。这些选项是被高度推荐的。 <br/>&nbsp;&nbsp;对于新的项目，强烈推荐仅使用空格而不是制表符。许多编辑器拥有使之易于实现的功能(在Emacs中，确认indent-tabs-mode是nil)。 <br/>行的最大长度 <br/>&nbsp;&nbsp;周围仍然有许多设备被限制在每行80字符：而且，窗口限制在80个字符。使将多个窗口并排放置成为可能。在这些设备上使用默认的折叠方式看起来有点丑陋。因此，请将所有行限制在最大79字符(Emacs准确得将行限制为长80字符)，对顺序排放的大块文本(文档字符串或注释)，推荐将长度限制在72字符。 <br/>&nbsp;&nbsp;折叠长行的首选方法是使用Pyhon支持的圆括号，方括号和花括号内的行延续。如果需要，你可以在表达式周围增加一对额外的圆括号，但是有时使用反斜杠看起来更好，确认恰当得缩进了延续的行。 <br/>&nbsp;&nbsp;Emacs的Python-mode正确得完成了这些。一些例子： <br/>#!Python <br/>&nbsp;&nbsp;class Rectangle(Blob)： <br/>&nbsp;&nbsp;&nbsp;&nbsp;def __init__(self，width，height，color=&#39;black&#39;，emphasis=None，highlight=0)： <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if width == 0 and height == 0 and \ <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;color == &#39;red&#39; and emphasis == &#39;strong&#39; o&#114; \ <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;highlight &gt; 100： <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;raise ValueError， &#34;sorry， you lose&#34; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if width == 0 and height == 0 and (color == &#39;red&#39; o&#114; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;emphasis is None)： <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;raise ValueError，&#34;I don&#39;t think so&#34; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Blob.__init__(self，width，height，color，emphasis，highlight) <br/><br/>&nbsp;&nbsp;<strong>空行</strong> <br/>&nbsp;&nbsp;用两行空行分割顶层函数和类的定义，类内方法的定义用单个空行分割，额外的空行可被用于(保守的)分割相关函数组成的群，在一组相关的单句中间可以省略空行。(例如：一组哑元素)。 <br/>&nbsp;&nbsp;当空行用于分割方法的定义时，在‘class&#39;行和第一个方法定义之间也要有一个空行。在函数中使用空行时，请谨慎的用于表示一个逻辑段落。Python接受contol-L(即^L)换页符作为空格：Emacs(和一些打印工具)，视这个字符为页面分割符，因此在你的文件中，可以用他们来为相关片段分页。 <br/>编码 <br/>&nbsp;&nbsp;Python核心发布中的代码必须始终使用ASCII或Latin-1编码(又名 ISO-8859-1)，使用ASCII的文件不必有编码cookie，Latin-1仅当注释或文档字符串涉及作者名字需要Latin-1时才被使用： <br/>&nbsp;&nbsp;另外使用\x转义字符是在字符串中包含非ASCII(non-ASCII)数据的首选方法。 <br/>&nbsp;&nbsp;作为PEP 263实现代码的测试套件的部分文件是个例外。 <br/>导入 <br/>&nbsp;&nbsp;通常应该在单独的行中导入(Imports)，例如： <br/>No：import sys， os <br/>Yes：import sys <br/>&nbsp;&nbsp;&nbsp;&nbsp;import os <br/>&nbsp;&nbsp;但是这样也是可以的： <br/>&nbsp;&nbsp;from types import StringType， ListType <br/>&nbsp;&nbsp;Imports 通常被放置在文件的顶部，仅在模块注释和文档字符串之后，在模块的全局变量和常量之前。Imports应该有顺序地成组安放： <br/>1、标准库的导入(Imports ) <br/>&nbsp;&nbsp;2、相关的主包(major package)的导入(即，所有的email包在随后导入) <br/>&nbsp;&nbsp;3、特定应用的导入(imports) <br/>&nbsp;&nbsp;你应该在每组导入之间放置一个空行，对于内部包的导入是不推荐使用相对导入的，对所有导入都要使用包的绝对路径。 <br/>&nbsp;&nbsp;从一个包含类的模块中导入类时，通常可以写成这样： <br/>&nbsp;&nbsp;&nbsp;&nbsp;from MyClass import MyClass <br/>&nbsp;&nbsp;&nbsp;&nbsp;from foo.bar.YourClass import YourClass <br/>&nbsp;&nbsp;如果这样写导致了本地名字冲突，那么就这样写 <br/>&nbsp;&nbsp;&nbsp;&nbsp;import MyClass <br/>&nbsp;&nbsp;&nbsp;&nbsp;import foo.bar.YourClass <br/>&nbsp;&nbsp;即使用&#34;MyClass.MyClass&#34;和&#34;foo.bar.YourClass.YourClass&#34; <br/>表达式和语句中的空格 <br/>&nbsp;&nbsp;Guido不喜欢在以下地方出现空格： <br/>&nbsp;&nbsp;紧挨着圆括号，方括号和花括号的，如：&#34;spam( ham[ 1 ]，{ eggs：2 } )&#34;。要始终将它写成&#34;spam(ham[1]，{eggs： 2})&#34;。 <br/>&nbsp;&nbsp;紧贴在逗号，分号或冒号前的，如： <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#34;if x == 4：print x，y：x，y = y，x&#34;。要始终将它写成 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#34;if x == 4：print x，y：x，y = y，x&#34;。 <br/>紧贴着函数调用的参数列表前开式括号(open parenthesis )的，如&#34;spam (1)&#34;。要始终将它写成&#34;spam(1)&#34;。 <br/>紧贴在索引或切片，开始的开式括号前的，如： <br/>&nbsp;&nbsp;&#34;dict [&#39;key&#39;] = list [index]&#34;。要始终将它写成&#34;dict[&#39;key&#39;] = list[index]&#34;。 <br/>&nbsp;&nbsp;在赋值(或其它)运算符周围的用于和其它并排的一个以上的空格，如： <br/>#!Python <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x= 1 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y= 2 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;long_variable = 3 <br/>要始终将它写成 <br/>#!Python <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = 1 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y = 2 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;long_variable = 3 <br/>&nbsp;&nbsp;(不要对以上任意一条和他争论——Guido 养成这样的风格超过20年了。) <br/>其它建议 <br/>&nbsp;&nbsp;始终在这些二元运算符两边放置一个空格：赋值(=)， 比较(==，&lt;，&gt;，!=，&lt;&gt;，&lt;=，&nbsp;&nbsp;&nbsp;&nbsp; &gt;=，in，not in，is，is not)，布尔运算 (and，or，not)。 <br/>&nbsp;&nbsp;按你的看法在算术运算符周围插入空格。 始终保持二元运算符两边空格的一致。 <br/>&nbsp;&nbsp;一些例子： <br/>#!Python <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i = i+1 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;submitted = submitted + 1 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = x*2 - 1 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hypot2 = x*x + y*y <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c = (a+b) * (a-b) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c = (a + b) * (a - b) <br/>&nbsp;&nbsp;不要在用于指定关键字参数或默认参数值的&#39;=&#39;号周围使用空格，例如： <br/>#!Python <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def complex(real， imag=0。0)： <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return magic(r=real， i=imag) <br/>&nbsp;&nbsp;不要将多条语句写在同一行上： <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;No： if foo == &#39;blah&#39;：do_blah_thing() <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Yes：if foo == &#39;blah&#39;： <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do_blah_thing() <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;No：do_one()：do_two()：do_three() <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Yes： do_one() <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do_two() <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do_three() <br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<strong>注释 </strong><br/>同代码不一致的注释比没注释更差。当代码修改时，始终优先更新注释!注释应该是完整的句子，如果注释是一个短语或句子，首字母应该大写，除非他是一个以小写字母开头的标识符(永远不要修改标识符的大小写)。 <br/>&nbsp;&nbsp;如果注释很短，最好省略末尾的句号。注释块通常由一个或多个由完整句子构成的段落组成，每个句子应该以句号结尾。你应该在句末，句号后使用两个空格，以便使Emacs的断行和填充工作协调一致。 <br/>&nbsp;&nbsp;用英语书写时，断词和空格是可用的。非英语国家的Python程序员：请用英语书写你的注释，除非你120%的确信这些代码不会被不懂你的语言的人阅读。 <br/>注释块 <br/>&nbsp;&nbsp;注释块通常应用于跟随着一些(或者全部)代码并和这些代码有着相同的缩进层次。注释块中每行以‘#&#39;和一个空格开始(除非他是注释内的缩进文本)。注释块内的段落以仅含单个‘#&#39;的行分割。注释块上下方最好有一空行包围(或上方两行下方一行，对一个新函数定义段的注释)。 <br/>行内注释 <br/>&nbsp;&nbsp;一个行内注释是和语句在同一行的注释，行内注释应该谨慎适用，行内注释应该至少用两个空格和语句分开，它们应该以&#39;#&#39;和单个空格开始。 <br/>&nbsp;&nbsp;&nbsp;&nbsp;x = x+1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Increment x <br/>&nbsp;&nbsp;如果语意是很明了的，那么行内注释是不必要的，事实上是应该被移除的。不要这样写： <br/>&nbsp;&nbsp;&nbsp;&nbsp;x = x+1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Increment x <br/>&nbsp;&nbsp;&nbsp;&nbsp;x = x+1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Compensate for border <br/>&nbsp;&nbsp;但是有时，这样是有益的： <br/>&nbsp;&nbsp;&nbsp;&nbsp;x = x+1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Compensate for border <br/><br/>&nbsp;&nbsp; <strong>文档字符串 </strong><br/>&nbsp;&nbsp;应该一直遵守编写好的文档字符串的约定PEP 257 [3]。为所有公共模块，函数，类和方法编写文档字符串。文档字符串对非公开的方法不是必要的，但你应该有一个描述这个方法做什么的注释。这个注释应该在&#34;def&#34;这行后。 <br/>PEP 257 描述了好的文档字符串的约定。一定注意，多行文档字符串结尾的&#34;&#34;&#34;应该单独成行，例如： <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#34;&#34;&#34;Return a foobang <br/>&nbsp;&nbsp;&nbsp;&nbsp;Optional plotz says to frobnicate the bizbaz first。 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#34;&#34;&#34; <br/>对单行的文档字符串，结尾的&#34;&#34;&#34;在同一行也可以。 <br/><br/>&nbsp;&nbsp; <strong>版本注记 </strong><br/>&nbsp;&nbsp; 如果你要将RCS或CVS的杂项(crud)包含在你的源文件中，按如下做。 <br/>#!Python <br/>&nbsp;&nbsp;&nbsp;&nbsp;__version__ = &#34;$Revision： 1。4 $&#34; <br/>&nbsp;&nbsp;&nbsp;&nbsp;# $Source： E：/cvsroot/Python_doc/pep8。txt，v $ <br/>这个行应该包含在模块的文档字符串之后，所有代码之前，上下用一个空行分割。 <br/>命名约定 <br/>&nbsp;&nbsp;Python库的命名约定有点混乱，所以我们将永远不能使之变得完全一致，不过还是有公认的命名规范的。新的模块和包(包括第三方的框架)必须符合这些标准，但对已有的库存在不同风格的，保持内部的一致性是首选的。 <br/>描述：命名风格 <br/>&nbsp;&nbsp;有许多不同的命名风格。以下的有助于辨认正在使用的命名风格，独立于它们的作用。&nbsp;&nbsp; 以下的命名风格是众所周知的： <br/>&nbsp;&nbsp;b (单个小写字母) <br/>&nbsp;&nbsp;B (单个大写字母) <br/>&nbsp;&nbsp;Lowercase（小写） <br/>&nbsp;&nbsp;lower_case_with_underscores（有下划线的小写） <br/>&nbsp;&nbsp;UPPERCASE（大写） <br/>&nbsp;&nbsp;UPPER_CASE_WITH_UNDERSCORES（有下划线的大写） <br/>&nbsp;&nbsp;CapitalizedWords (或 CapWords，CamelCase这样命名是因为可从字母的大小写分出单词。这有时也被当作StudlyCaps。 <br/>&nbsp;&nbsp;mixedCase (与CapitalizedWords的不同在于首字母小写!) <br/>&nbsp;&nbsp;Capitalized_Words_With_Underscores（有下划线的首字母大写） (丑陋!) <br/>&nbsp;&nbsp;还有用短的特别前缀将相关的名字聚合在一起的风格。这在Python中不常用，但是出于完整性要提一下，例如，os.stat()函数返回一个元组，他的元素传统上说名如st_mode， st_size，st_mtime等等。 <br/>&nbsp;&nbsp;X11库的所有公开函数以X开头。(在Python中，这个风格通常认为是不必要的，因为属性和方法名以对象作前缀，而函数名以模块名作前缀。) <br/>另外，以下用下划线作前导或结尾的特殊形式是被公认的(这些通常可以和任何习惯组合)： <br/>_single_leading_underscore(单个下划线作前导)：弱的“内部使用(internal use)”标志。 (例如，“from M import *”不会导入以下划线开头的对象)。 <br/>single_trailing_underscore_(单个下划线结尾)： 用于避免与Python关键词的冲突，例如：“Tkinter.Toplevel(master，class_=&#39;ClassName&#39;)”。 <br/>&nbsp;&nbsp;_double_leading_underscore(双下划线)：从Python 1.4起为类私有名。 <br/>&nbsp;&nbsp;_double_leading_and_trailing_underscore_：“magic”对象或属性，存在于用户控制的(user-controlled)名字空间，例如：_init_， _import_ 或_file_。有时它们被用户定义用于触发某个魔法行为(例如：运算符重载)：有时被构造器插入，以便自己使用或为了调试。因此，在未来的版本中，构造器(松散得定义为Python解释器和标准库)可能打算建立自己的魔法属性列表，用户代码通常应该限制将这种约定作为己用。欲成为构造器的一部分的用户代码可以在下滑线中结合使用短前缀，例如： <br/>_bobo_magic_attr__。 <br/>说明：命名约定 <br/>应避免的名字。永远不要用字符‘l&#39;(小写字母el(就是读音，下同))，‘O&#39;(大写字母oh)，或‘I&#39;(大写字母eye)作为单字符的变量名。在某些字体中这些字符不能与数字1和0分辨。试着在使用‘l&#39;时用‘L&#39;代替。 <br/><br/>&nbsp;&nbsp; <strong>模块名 </strong><br/>&nbsp;&nbsp;模块应该是不含下划线的，简短的，小写的名字。因为模块名被映射到文件名，有些文件系统大小写不敏感并且截短长名字，模块名被选为相当短是重要的，这在Unix上不是问题，但当代码传到Mac或Windows上就可能是个问题了。 <br/>当用C或C++编写的扩展模块有一个伴随Python模块提供高层(例如进一步的面向对象)接口时，C/C++模块有下划线前导(如：_socket)。Python包应该是不含下划线的，简短的，全小写的名字。 <br/>类名 <br/>几乎不出意料，类名使用CapWords约定。内部使用的类外加一个前导下划线。 <br/>异常名 <br/>如果模块对所有情况定义了单个异常，它通常被叫做“error”或“Error”。似乎内建(扩展)的模块使用“error”(例如：os.error)，而Python模块通常用“Error” (例如：xdrlib.Error)。趋势似乎是倾向使用CapWords异常名。 <br/> <br/>&nbsp;&nbsp;<strong>全局变量名 </strong><br/>(让我们祈祷这些变量仅在一个模块的内部有意义) <br/>&nbsp;&nbsp;这些约定和在函数中的一样。模块是被设计为通过“from M import *”来使用的，必须用一个下划线作全局变量(及内部函数和类)的前缀防止其被导出(exporting)。 <br/><br/>&nbsp;&nbsp; <strong>函数名 </strong><br/>函数名应该为小写，可能用下划线风格单词以增加可读性。mixedCase仅被允许用于这种风格已经占优势的上下文(如：threading.py)，以便保持向后兼容。 <br/>方法名和实例变量 <br/>这段大体上和函数相同：通常使用小写单词，必要时用下划线分隔增加可读性。仅为不打算作为类的公共界面的内部方法和实例使用一个前导下划线，Python不强制要求这样：它取决于程序员是否遵守这个约定。 <br/>使用两个前导下划线以表示类私有的名字，Python将这些名字和类名连接在一起： <br/>如果类Foo有一个属性名为_a，它不能以Foo._a访问。(固执的用户还是可以通过Foo._Foo__a得到访问权。) <br/>通常双前导下划线仅被用于避免含子类的类中的属性名的名字冲突。 <br/>继承的设计 <br/>始终要确定一个类中的方法和实例变量是否要被公开。通常，永远不要将数据变量公开，除非你实现的本质上只是记录，人们几乎总是更喜欢代之给出一个函数作为类的界面(Python 2.2 的一些开发者在这点上做得非常漂亮)。 <br/>同样，确定你的属性是否应为私有的。私有和非私有的区别在于模板将永远不会对原有的类(导出类)有效，而后者可以。你应该在大脑中就用继承设计好了你的类，私有属性必须有两个前导下划线，无后置下划线，非公有属性必须有一个前导下划线，无后置下划线，公共属性没有前导和后置下划线，除非它们与保留字冲突，在此情况下，单个后置下划线比前置或混乱的拼写要好，例如：class_优于klass。 <br/>最后一点有些争议：如果相比class_你更喜欢klass，那么这只是一致性问题。 <br/> <br/>&nbsp;&nbsp; <strong>设计建议 </strong><br/>单个元素(singletons)的比较，如None 应该永远用：‘is&#39;或‘is not&#39;来做。当你本意是“if x is not None”时，对写成“if x”要小心。例如当你测试一个默认为None的变量或参数是否被设置为其它值时，这个值也许在布尔上下文(Boolean context)中是false！ <br/>基于类的异常总是好过基于字符串的异常。模块和包应该定义它们自己的域内特定的基异常类，基类应该是内建的Exception类的子类。还始终包含一个类的文档字符串。例如： <br/>#!Python <br/>&nbsp;&nbsp;&nbsp;&nbsp;class MessageError(Exception)： <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;&#34;&#34;Base class for errors in the email package。&#34;&#34;&#34; <br/>使用字符串方法(methods)代替字符串模块，除非必须向后兼容Python 2.0以前的版本。字符串方法总是非常快，而且和unicode字符串共用同样的API(应用程序接口)在检查前缀或后缀时避免对字符串进行切片。用startswith()和endswith()代替，因为它们是明确的并且错误更少。例如： <br/>&nbsp;&nbsp;&nbsp;&nbsp;No： if foo[：3] == &#39;bar&#39;： <br/>&nbsp;&nbsp;&nbsp;&nbsp;Yes： if foo。startswith(&#39;bar&#39;)： <br/>例外是如果你的代码必须工作在Python 1.5.2 (但是我们希望它不会发生！)，对象类型的比较应该始终用isinstance()代替直接比较类型，例如： <br/>&nbsp;&nbsp;&nbsp;&nbsp;No： if type(obj) is type(1)： <br/>&nbsp;&nbsp;&nbsp;&nbsp;Yes： if isinstance(obj， int)： <br/>检查一个对象是否是字符串时，紧记它也可能是unicode字符串！在Python 2.3，str和unicode有公共的基类，basestring，所以你可以这样做： <br/>&nbsp;&nbsp;&nbsp;&nbsp;if isinstance(obj， basestring)： <br/>在Python 2.2类型模块为此定义了StringTypes类型，例如： <br/>#!Python <br/>&nbsp;&nbsp;&nbsp;&nbsp;from types import StringTypes <br/>&nbsp;&nbsp;&nbsp;&nbsp;if isinstance(obj， StringTypes)： <br/>在Python 2.0和2.1，你应该这样做： <br/>#!Python <br/>&nbsp;&nbsp;&nbsp;&nbsp;from types import StringType， UnicodeType <br/>&nbsp;&nbsp;&nbsp;&nbsp;if isinstance(obj， StringType) o&#114; \ <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isinstance(obj， UnicodeType) ： <br/>对序列，(字符串，列表，元组)，使用空列表是false这个事实，因此“if not seq”或“if seq”比“if len(seq)”或“if not len(seq)”好。书写字符串文字时不要依赖于有意义的后置空格。这种后置空格在视觉上是不可辨别的，并且有些编辑器(特别是近来，reindent.py)会将它们修整掉。不要用==来比较布尔型的值以确定是True或False(布尔型是Pythn 2.3中新增的) <br/>&nbsp;&nbsp;&nbsp;&nbsp;No： if greeting == True： <br/>&nbsp;&nbsp;&nbsp;&nbsp;Yes： if greeting： <br/>&nbsp;&nbsp;&nbsp;&nbsp;No： if greeting == True： <br/>&nbsp;&nbsp;&nbsp;&nbsp;Yes： if greeting：]]></description>
		</item>
		
</channel>
</rss>
