﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><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>BlogJava-xylz-文章分类-Python</title><link>http://www.blogjava.net/xylz/category/44738.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 01 Jul 2010 17:05:37 GMT</lastBuildDate><pubDate>Thu, 01 Jul 2010 17:05:37 GMT</pubDate><ttl>60</ttl><item><title>Core Python Programming Exercises P09-22</title><link>http://www.blogjava.net/xylz/articles/324779.html</link><dc:creator>xylz</dc:creator><author>xylz</author><pubDate>Tue, 29 Jun 2010 06:56:00 GMT</pubDate><guid>http://www.blogjava.net/xylz/articles/324779.html</guid><wfw:comment>http://www.blogjava.net/xylz/comments/324779.html</wfw:comment><comments>http://www.blogjava.net/xylz/articles/324779.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xylz/comments/commentRss/324779.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xylz/services/trackbacks/324779.html</trackback:ping><description><![CDATA[<table border="0" cellspacing="16" cellpadding="0">
    <tbody>
        <tr valign="top">
            <td class="docText" width="50" align="right"><a name="ch09qa1q22"></a><strong>9-22.</strong></td>
            <td>
            <p class="docText"><span class="docEmphasis">ZIP Archive Files</span>. The <tt>unzip -l</tt> command to dump the contents of ZIP archive is boring. Create a Python script called <tt>lszip.py</tt> that gives additional information such as: the compressed file size, the compressed percentage of each file (by comparing the original and compressed file sizes), and a full <tt>time.ctime()</tt> timestamp instead of the unzip output (of just the date and HH:MM). Hint: The <tt>date_time</tt> attribute of an archived file does not contain enough information to feed to <tt>time.mktime()</tt>... it is up to you!</p>
            </td>
        </tr>
    </tbody>
</table>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #008000">#</span><span style="color: #008000">!/usr/bin/env&nbsp;python</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#</span><span style="color: #008000">-*-&nbsp;coding:utf-8&nbsp;-*-</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#</span><span style="color: #008000">$Id:&nbsp;p0922.py&nbsp;168&nbsp;2010-06-29&nbsp;06:34:01Z&nbsp;xylz&nbsp;$</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #800000">'''</span><span style="color: #800000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />This&nbsp;is&nbsp;a&nbsp;'python'&nbsp;study&nbsp;plan&nbsp;for&nbsp;xylz.<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />Copyright&nbsp;(C)2010&nbsp;xylz&nbsp;(www.imxylz.info)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #800000">'''</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;zipfile<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;os<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;datetime<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">def</span><span style="color: #000000">&nbsp;list&nbsp;(zip_file,files):<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">list&nbsp;%s&nbsp;files&nbsp;from&nbsp;%s</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">&nbsp;(len(files)&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;files</span><span style="color: #000000">!=</span><span style="color: #800000">'</span><span style="color: #800000">*</span><span style="color: #800000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">total</span><span style="color: #800000">'</span><span style="color: #000000">,zip_file)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;f_in&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;zipfile.ZipFile(zip_file,&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">r</span><span style="color: #800000">'</span><span style="color: #000000">)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;infoes&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;None<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">*</span><span style="color: #800000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;files:<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;infoes&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;f_in.infolist()<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">:<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;infoes&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;[]<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;f&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;files:<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;infoes.append(f_in.getinfo(f))<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">filename:\t\tuncompress\tcompress\tpercent\tcreatetime</span><span style="color: #800000">"</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">-----------------------------------------</span><span style="color: #800000">"</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;total_usize,total_csize&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(0,0)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;info&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;infoes:<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(year,&nbsp;month,&nbsp;day,&nbsp;hour,&nbsp;minute,&nbsp;second)&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;info.date_time<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dtime&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;datetime.datetime(year,&nbsp;month,&nbsp;day,&nbsp;hour,&nbsp;minute,&nbsp;second)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename,usize,csize&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;info.filename,info.file_size,info.compress_size&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">%s:\t\t%d\t%d\t%d%%\t%s</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">&nbsp;(filename,usize,csize,(csize</span><span style="color: #000000">*</span><span style="color: #000000">100</span><span style="color: #000000">/</span><span style="color: #000000">(usize</span><span style="color: #000000">+</span><span style="color: #000000">0.01</span><span style="color: #000000">)),dtime.ctime())<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;total_usize&nbsp;</span><span style="color: #000000">+=</span><span style="color: #000000">&nbsp;usize<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;total_csize&nbsp;</span><span style="color: #000000">+=</span><span style="color: #000000">&nbsp;csize<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;f_in.close()<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">-----------------------------------------</span><span style="color: #800000">"</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">compressed&nbsp;size&nbsp;%d&nbsp;bytes,&nbsp;uncompressed&nbsp;size&nbsp;%d&nbsp;bytes,&nbsp;%d%%</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">&nbsp;(total_csize,total_usize,(total_csize</span><span style="color: #000000">*</span><span style="color: #000000">100</span><span style="color: #000000">/</span><span style="color: #000000">total_usize))<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">__name__</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">__main__</span><span style="color: #800000">'</span><span style="color: #000000">:<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;sys<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;len(sys.argv)</span><span style="color: #000000">&lt;</span><span style="color: #000000">2</span><span style="color: #000000">:<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">List&nbsp;files&nbsp;in&nbsp;zip&nbsp;file</span><span style="color: #800000">"</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">Usage:&nbsp;%s&nbsp;&lt;zipfile&gt;&nbsp;[files]<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">&nbsp;(sys.argv[0],)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys.exit(0)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;zip_file&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sys.argv[</span><span style="color: #000000">1</span><span style="color: #000000">]<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;files&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">*</span><span style="color: #800000">'</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;len(sys.argv)</span><span style="color: #000000">&gt;</span><span style="color: #000000">2</span><span style="color: #000000">:<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;files&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;[]<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;f&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;sys.argv[</span><span style="color: #000000">2</span><span style="color: #000000">:]:<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;files.append(f)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;list(zip_file,files)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></div><img src ="http://www.blogjava.net/xylz/aggbug/324779.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xylz/" target="_blank">xylz</a> 2010-06-29 14:56 <a href="http://www.blogjava.net/xylz/articles/324779.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Core Python Programming Exercises P09-21</title><link>http://www.blogjava.net/xylz/articles/324773.html</link><dc:creator>xylz</dc:creator><author>xylz</author><pubDate>Tue, 29 Jun 2010 06:05:00 GMT</pubDate><guid>http://www.blogjava.net/xylz/articles/324773.html</guid><wfw:comment>http://www.blogjava.net/xylz/comments/324773.html</wfw:comment><comments>http://www.blogjava.net/xylz/articles/324773.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xylz/comments/commentRss/324773.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xylz/services/trackbacks/324773.html</trackback:ping><description><![CDATA[<table border="0" cellspacing="16" cellpadding="0">
    <tbody>
        <tr valign="top">
            <td class="docText" width="50" align="right"><a name="ch09qa1q21"></a><strong>9-21.</strong></td>
            <td>
            <p class="docText"><span class="docEmphasis">ZIP Archive Files</span>. Create a program that can extract files from or add files to, and perhaps creating, a ZIP archive file.</p>
            </td>
        </tr>
    </tbody>
</table>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #008000">#</span><span style="color: #008000">!/usr/bin/env&nbsp;python</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#</span><span style="color: #008000">-*-&nbsp;coding:utf-8&nbsp;-*-</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#</span><span style="color: #008000">$Id:&nbsp;p0921.py&nbsp;167&nbsp;2010-06-29&nbsp;06:03:11Z&nbsp;xylz&nbsp;$</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #800000">'''</span><span style="color: #800000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />This&nbsp;is&nbsp;a&nbsp;'python'&nbsp;study&nbsp;plan&nbsp;for&nbsp;xylz.<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />Copyright&nbsp;(C)2010&nbsp;xylz&nbsp;(www.imxylz.info)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #800000">'''</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;zipfile<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;os<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">def</span><span style="color: #000000">&nbsp;compress&nbsp;(zip_file,files):<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">compress&nbsp;%s&nbsp;files&nbsp;to&nbsp;%s</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">&nbsp;(len(files),zip_file)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;f_mode&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">a</span><span style="color: #800000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;os.path.exist(zip_file)&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">w</span><span style="color: #800000">'</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;f_out&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;zipfile.ZipFile(zip_file,&nbsp;f_mode)&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;in_size&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;0<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;f&nbsp;&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;files:<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f_out.write(f)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in_size&nbsp;</span><span style="color: #000000">+=</span><span style="color: #000000">&nbsp;os.path.getsize(f)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;f_out.close()<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;out_size&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;os.path.getsize(zip_file)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">source&nbsp;size&nbsp;%d&nbsp;bytes,&nbsp;target&nbsp;size&nbsp;%d&nbsp;bytes,&nbsp;%d%%</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">&nbsp;(in_size,out_size,(out_size</span><span style="color: #000000">*</span><span style="color: #000000">100</span><span style="color: #000000">/</span><span style="color: #000000">in_size))<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">def</span><span style="color: #000000">&nbsp;decompress&nbsp;(zip_file,dstdir,files</span><span style="color: #000000">=</span><span style="color: #800000">'</span><span style="color: #800000">*</span><span style="color: #800000">'</span><span style="color: #000000">):<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">decompress&nbsp;%s&nbsp;&nbsp;to&nbsp;%s</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">&nbsp;(zip_file,dstdir)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;f_in&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;zipfile.ZipFile(zip_file,</span><span style="color: #800000">'</span><span style="color: #800000">r</span><span style="color: #800000">'</span><span style="color: #000000">)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;files&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">*</span><span style="color: #800000">'</span><span style="color: #000000">:<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f_in.extractall(dstdir)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">:<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;f&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;files:<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f_in.extract(f,dstdir)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">extract&nbsp;file</span><span style="color: #800000">"</span><span style="color: #000000">,f<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;f_in.close()<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">__name__</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">__main__</span><span style="color: #800000">'</span><span style="color: #000000">:<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;sys<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;len(sys.argv)</span><span style="color: #000000">&lt;</span><span style="color: #000000">4</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">or</span><span style="color: #000000">&nbsp;(</span><span style="color: #800000">'</span><span style="color: #800000">c</span><span style="color: #800000">'</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;sys.argv[</span><span style="color: #000000">1</span><span style="color: #000000">]&nbsp;</span><span style="color: #0000ff">and</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">x</span><span style="color: #800000">'</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;sys.argv[</span><span style="color: #000000">1</span><span style="color: #000000">]&nbsp;</span><span style="color: #0000ff">and</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">a</span><span style="color: #800000">'</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;sys.argv[</span><span style="color: #000000">1</span><span style="color: #000000">]):<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">Usage:&nbsp;%s&nbsp;c&nbsp;&lt;zipfile&gt;&nbsp;&lt;srcfile&gt;..</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">&nbsp;(sys.argv[0],)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">Usage:&nbsp;%s&nbsp;a&nbsp;&lt;zipfile&gt;&nbsp;&lt;srcfile&gt;..</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">&nbsp;(sys.argv[0],)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">Usage:&nbsp;%s&nbsp;x&nbsp;&lt;zipfile&gt;&nbsp;&lt;destdir&gt;&nbsp;[srcfile]..</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">&nbsp;(sys.argv[0],)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys.exit(0)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;zip_file&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sys.argv[</span><span style="color: #000000">2</span><span style="color: #000000">]<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">c</span><span style="color: #800000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;sys.argv[</span><span style="color: #000000">1</span><span style="color: #000000">]&nbsp;</span><span style="color: #0000ff">or</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">a</span><span style="color: #800000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;sys.argv[</span><span style="color: #000000">1</span><span style="color: #000000">]:<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;src_files&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;[]<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;f&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;sys.argv[</span><span style="color: #000000">3</span><span style="color: #000000">:]:<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;src_files.append(f)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;compress(zip_file,src_files)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">:<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dst_dir&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sys.argv[</span><span style="color: #000000">3</span><span style="color: #000000">]<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;files&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">*</span><span style="color: #800000">'</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;len(sys.argv)</span><span style="color: #000000">&gt;</span><span style="color: #000000">4</span><span style="color: #000000">:<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;files&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;[]<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;f&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;sys.argv[</span><span style="color: #000000">4</span><span style="color: #000000">:]:<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;files.append(f)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;decompress&nbsp;(zip_file,dst_dir,files)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></div><img src ="http://www.blogjava.net/xylz/aggbug/324773.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xylz/" target="_blank">xylz</a> 2010-06-29 14:05 <a href="http://www.blogjava.net/xylz/articles/324773.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Core Python Programming Exercises P09-20</title><link>http://www.blogjava.net/xylz/articles/324759.html</link><dc:creator>xylz</dc:creator><author>xylz</author><pubDate>Tue, 29 Jun 2010 03:51:00 GMT</pubDate><guid>http://www.blogjava.net/xylz/articles/324759.html</guid><wfw:comment>http://www.blogjava.net/xylz/comments/324759.html</wfw:comment><comments>http://www.blogjava.net/xylz/articles/324759.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xylz/comments/commentRss/324759.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xylz/services/trackbacks/324759.html</trackback:ping><description><![CDATA[<table border="0" cellspacing="16" cellpadding="0">
    <tbody>
        <tr valign="top">
            <td class="docText" width="50" align="right"><a name="ch09qa1q20"></a><strong>9-20.</strong></td>
            <td>
            <p class="docText"><span class="docEmphasis">Compressed Files</span>. Write a short piece of code that will compress and decompress gzipped or bzipped files. Confirm your solution works by using the command-line <tt>gzip</tt> or <tt>bzip2</tt> programs or a GUI program like PowerArchiver, StuffIt, and/or WinZip.</p>
            </td>
        </tr>
    </tbody>
</table>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">&nbsp;1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #008000">#</span><span style="color: #008000">!/usr/bin/env&nbsp;python</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #008000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#</span><span style="color: #008000">-*-&nbsp;coding:utf-8&nbsp;-*-</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #008000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#</span><span style="color: #008000">$Id:&nbsp;p0920.py&nbsp;166&nbsp;2010-06-29&nbsp;03:46:56Z&nbsp;xylz&nbsp;$</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #008000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #800000">'''</span><span style="color: #800000"><br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />This&nbsp;is&nbsp;a&nbsp;'python'&nbsp;study&nbsp;plan&nbsp;for&nbsp;xylz.<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />Copyright&nbsp;(C)2010&nbsp;xylz&nbsp;(www.imxylz.info)<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #800000">'''</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;gzip<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;os<br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">def</span><span style="color: #000000">&nbsp;compress&nbsp;(dst,f):<br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">compress&nbsp;%s&nbsp;to&nbsp;%s</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">&nbsp;(f,dst)<br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;f_out&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;gzip.open(dst,</span><span style="color: #800000">'</span><span style="color: #800000">wb</span><span style="color: #800000">'</span><span style="color: #000000">)<br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;f_in&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;open(f,</span><span style="color: #800000">'</span><span style="color: #800000">rb</span><span style="color: #800000">'</span><span style="color: #000000">)<br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;f_out.writelines(f_in)<br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;f_in.close()<br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;f_out.close()<br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;in_size&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;os.path.getsize(f)<br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;out_size&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;os.path.getsize(dst)<br />
</span><span style="color: #008080">22</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">source&nbsp;size&nbsp;%d&nbsp;bytes,&nbsp;target&nbsp;size&nbsp;%d&nbsp;bytes,&nbsp;%d%%</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">&nbsp;(in_size,out_size,(out_size</span><span style="color: #000000">*</span><span style="color: #000000">100</span><span style="color: #000000">/</span><span style="color: #000000">in_size))<br />
</span><span style="color: #008080">23</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">24</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">def</span><span style="color: #000000">&nbsp;decompress&nbsp;(f,dst):<br />
</span><span style="color: #008080">25</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">decompress&nbsp;%s&nbsp;to&nbsp;%s</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">&nbsp;(f,dst)<br />
</span><span style="color: #008080">26</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;f_in&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;gzip.open(f,</span><span style="color: #800000">'</span><span style="color: #800000">rb</span><span style="color: #800000">'</span><span style="color: #000000">)<br />
</span><span style="color: #008080">27</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;f_out&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;open(dst,</span><span style="color: #800000">'</span><span style="color: #800000">wb</span><span style="color: #800000">'</span><span style="color: #000000">)<br />
</span><span style="color: #008080">28</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;f_out.writelines(f_in)<br />
</span><span style="color: #008080">29</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;f_in.close()<br />
</span><span style="color: #008080">30</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;f_out.close()<br />
</span><span style="color: #008080">31</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;in_size&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;os.path.getsize(f)<br />
</span><span style="color: #008080">32</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;out_size&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;os.path.getsize(dst)<br />
</span><span style="color: #008080">33</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">source&nbsp;size&nbsp;%d&nbsp;bytes,&nbsp;target&nbsp;size&nbsp;%d&nbsp;bytes,&nbsp;%d%%</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">&nbsp;(in_size,out_size,(in_size</span><span style="color: #000000">*</span><span style="color: #000000">100</span><span style="color: #000000">/</span><span style="color: #000000">out_size))<br />
</span><span style="color: #008080">34</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">35</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">36</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">__name__</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">__main__</span><span style="color: #800000">'</span><span style="color: #000000">:<br />
</span><span style="color: #008080">37</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;sys<br />
</span><span style="color: #008080">38</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;len(sys.argv)</span><span style="color: #000000">&lt;</span><span style="color: #000000">3</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">or</span><span style="color: #000000">&nbsp;(</span><span style="color: #800000">'</span><span style="color: #800000">c</span><span style="color: #800000">'</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;sys.argv[</span><span style="color: #000000">1</span><span style="color: #000000">]&nbsp;</span><span style="color: #0000ff">and</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">x</span><span style="color: #800000">'</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;sys.argv[</span><span style="color: #000000">1</span><span style="color: #000000">]):<br />
</span><span style="color: #008080">39</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">Usage:&nbsp;%s&nbsp;&lt;c|x&gt;&nbsp;&lt;file&gt;&nbsp;[destfile]</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">&nbsp;(sys.argv[0],)<br />
</span><span style="color: #008080">40</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys.exit(0)<br />
</span><span style="color: #008080">41</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;src_file&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sys.argv[</span><span style="color: #000000">2</span><span style="color: #000000">]<br />
</span><span style="color: #008080">42</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;dest_file&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;None<br />
</span><span style="color: #008080">43</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;len(sys.argv)</span><span style="color: #000000">&gt;</span><span style="color: #000000">3</span><span style="color: #000000">:<br />
</span><span style="color: #008080">44</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dest_file&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sys.argv[</span><span style="color: #000000">3</span><span style="color: #000000">]<br />
</span><span style="color: #008080">45</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">46</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">47</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">c</span><span style="color: #800000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;sys.argv[</span><span style="color: #000000">1</span><span style="color: #000000">]:<br />
</span><span style="color: #008080">48</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">not</span><span style="color: #000000">&nbsp;dest_file:<br />
</span><span style="color: #008080">49</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dest_file&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;src_file</span><span style="color: #000000">+</span><span style="color: #800000">"</span><span style="color: #800000">.gz</span><span style="color: #800000">"</span><span style="color: #000000"><br />
</span><span style="color: #008080">50</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;compress(dest_file,src_file)<br />
</span><span style="color: #008080">51</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">52</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">:<br />
</span><span style="color: #008080">53</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">not</span><span style="color: #000000">&nbsp;dest_file:<br />
</span><span style="color: #008080">54</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dest_file&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;src_file[:src_file.index(</span><span style="color: #800000">'</span><span style="color: #800000">.gz</span><span style="color: #800000">'</span><span style="color: #000000">)]&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">raise&nbsp;exception&nbsp;if&nbsp;file&nbsp;error</span><span style="color: #008000"><br />
</span><span style="color: #008080">55</span><span style="color: #008000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;decompress(src_file,dest_file)<br />
</span><span style="color: #008080">56</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">57</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">58</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">59</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></div>
下面是一次执行的输出结果：<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">C:\Users\xylz\Desktop\core_python&gt;python&nbsp;p0920.py<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />Usage:&nbsp;p0920.py&nbsp;&lt;c|x&gt;&nbsp;&lt;file&gt;&nbsp;</span><span style="color: #800000; font-weight: bold">[</span><span style="color: #800000">destfile</span><span style="color: #800000; font-weight: bold">]</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />C:\Users\xylz\Desktop\core_python&gt;python&nbsp;p0920.py&nbsp;c&nbsp;p0920.py<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />compress&nbsp;p0920.py&nbsp;to&nbsp;p0920.py.gz<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />source&nbsp;size&nbsp;</span><span style="color: #000000">1587</span><span style="color: #000000">&nbsp;bytes</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;target&nbsp;size&nbsp;</span><span style="color: #000000">614</span><span style="color: #000000">&nbsp;bytes</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">38</span><span style="color: #000000">%<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />C:\Users\xylz\Desktop\core_python&gt;python&nbsp;p0920.py&nbsp;x&nbsp;p0920.py.gz&nbsp;p0920.py</span><span style="color: #000000">.2</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />decompress&nbsp;p0920.py.gz&nbsp;to&nbsp;p0920.py</span><span style="color: #000000">.2</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />source&nbsp;size&nbsp;</span><span style="color: #000000">614</span><span style="color: #000000">&nbsp;bytes</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;target&nbsp;size&nbsp;</span><span style="color: #000000">1587</span><span style="color: #000000">&nbsp;bytes</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">38</span><span style="color: #000000">%<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />C:\Users\xylz\Desktop\core_python&gt;md5sum&nbsp;p0920.py&nbsp;p0920.py</span><span style="color: #000000">.2</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />3383e1a05fbede400dd016feed8a55bf&nbsp;*p0920.py<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />3383e1a05fbede400dd016feed8a55bf&nbsp;*p0920.py</span><span style="color: #000000">.2</span></div><img src ="http://www.blogjava.net/xylz/aggbug/324759.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xylz/" target="_blank">xylz</a> 2010-06-29 11:51 <a href="http://www.blogjava.net/xylz/articles/324759.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Core Python Programming Exercises P08-04/05/06/07/11/12</title><link>http://www.blogjava.net/xylz/articles/324709.html</link><dc:creator>xylz</dc:creator><author>xylz</author><pubDate>Mon, 28 Jun 2010 12:56:00 GMT</pubDate><guid>http://www.blogjava.net/xylz/articles/324709.html</guid><wfw:comment>http://www.blogjava.net/xylz/comments/324709.html</wfw:comment><comments>http://www.blogjava.net/xylz/articles/324709.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xylz/comments/commentRss/324709.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xylz/services/trackbacks/324709.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 8-4.                        Prime Numbers. We presented some code in this chapter to determine a number's largest factor or if it is prime. Turn this code into a Boolean function called isprime() ...&nbsp;&nbsp;<a href='http://www.blogjava.net/xylz/articles/324709.html'>阅读全文</a><img src ="http://www.blogjava.net/xylz/aggbug/324709.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xylz/" target="_blank">xylz</a> 2010-06-28 20:56 <a href="http://www.blogjava.net/xylz/articles/324709.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Core Python Programming Exercises P07-10</title><link>http://www.blogjava.net/xylz/articles/324056.html</link><dc:creator>xylz</dc:creator><author>xylz</author><pubDate>Mon, 21 Jun 2010 04:25:00 GMT</pubDate><guid>http://www.blogjava.net/xylz/articles/324056.html</guid><wfw:comment>http://www.blogjava.net/xylz/comments/324056.html</wfw:comment><comments>http://www.blogjava.net/xylz/articles/324056.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xylz/comments/commentRss/324056.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xylz/services/trackbacks/324056.html</trackback:ping><description><![CDATA[<p><font style="background-color: #c7edcc">7-10. Encryption. Using your solution to the previous problem, and create a "rot13" translator. "rot13" is an old and fairly simplistic encryption routine whereby each letter of the alphabet is rotated 13 characters. Letters in the first half of the alphabet will be rotated to the equivalent letter in the second half and vice versa, retaining case. For example, a goes to n and X goes to K. Obviously, numbers and symbols are immune from translation.</font></p>
<p><font style="background-color: #c7edcc">(b) Add an application on top of your solution to prompt the user for strings to encrypt (and decrypt on reapplication of the algorithm), as in the following examples:</font></p>
<p><font style="background-color: #c7edcc">&nbsp;&nbsp;&nbsp; % rot13.py<br />
&nbsp;&nbsp;&nbsp; Enter string to rot13: This is a short sentence.<br />
&nbsp;&nbsp;&nbsp; Your string to en/decrypt was: [This is a short<br />
&nbsp;&nbsp;&nbsp; sentence.].<br />
&nbsp;&nbsp;&nbsp; The rot13 string is: [Guvf vf n fubeg fragrapr.].<br />
&nbsp;&nbsp;&nbsp; %<br />
&nbsp;&nbsp;&nbsp; % rot13.py<br />
&nbsp;&nbsp;&nbsp; Enter string to rot13: Guvf vf n fubeg fragrapr.<br />
&nbsp;&nbsp;&nbsp; Your string to en/decrypt was: [Guvf vf n fubeg<br />
&nbsp;&nbsp;&nbsp; fragrapr.].<br />
&nbsp;&nbsp;&nbsp; The rot13 string is: [This is a short sentence.].<br />
&nbsp;</font></p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">&nbsp;1</span><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="color: #008000">#</span><span style="color: #008000">!/usr/bin/env&nbsp;python</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #008000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />#</span><span style="color: #008000">-*-&nbsp;coding:utf-8&nbsp;-*-</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #008000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />#</span><span style="color: #008000">$Id:&nbsp;p0710.py&nbsp;153&nbsp;2010-06-21&nbsp;04:19:15Z&nbsp;xylz&nbsp;$</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #008000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #800000">'''</span><span style="color: #800000"><br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #800000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />This&nbsp;is&nbsp;a&nbsp;'python'&nbsp;study&nbsp;plan&nbsp;for&nbsp;xylz.<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #800000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />Copyright&nbsp;(C)2010&nbsp;xylz&nbsp;(www.imxylz.info)<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #800000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #800000">'''</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />endic&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;None<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">not</span><span style="color: #000000">&nbsp;endic:<br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;endic&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;{}<br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;string<br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;cc&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;(string.lowercase,string.uppercase):<br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;i,c&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;enumerate(cc):<br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">13</span><span style="color: #000000">:&nbsp;endic[c]</span><span style="color: #000000">=</span><span style="color: #000000">cc[i</span><span style="color: #000000">+</span><span style="color: #000000">13</span><span style="color: #000000">]<br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">:&nbsp;endic[c]</span><span style="color: #000000">=</span><span style="color: #000000">cc[i</span><span style="color: #000000">-</span><span style="color: #000000">13</span><span style="color: #000000">]<br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">def</span><span style="color: #000000">&nbsp;encrypt_decrypt(s):<br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;ret</span><span style="color: #000000">=</span><span style="color: #000000">[]<br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;c&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;s:<br />
</span><span style="color: #008080">22</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret.append(endic.get(c,c))<br />
</span><span style="color: #008080">23</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">""</span><span style="color: #000000">.join(ret)<br />
</span><span style="color: #008080">24</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
</span><span style="color: #008080">25</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">__name__</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">__main__</span><span style="color: #800000">'</span><span style="color: #000000">:<br />
</span><span style="color: #008080">26</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">&nbsp;True:<br />
</span><span style="color: #008080">27</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my_input&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;raw_input(</span><span style="color: #800000">'</span><span style="color: #800000">Enter&nbsp;string&nbsp;to&nbsp;rot13:&nbsp;</span><span style="color: #800000">'</span><span style="color: #000000">)<br />
</span><span style="color: #008080">28</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">not</span><span style="color: #000000">&nbsp;my_input:&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000"><br />
</span><span style="color: #008080">29</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">Your&nbsp;string&nbsp;to&nbsp;en/decrypt&nbsp;was:&nbsp;[</span><span style="color: #800000">"</span><span style="color: #000000">,encrypt_decrypt(my_input),</span><span style="color: #800000">"</span><span style="color: #800000">].</span><span style="color: #800000">"</span><span style="color: #000000"><br />
</span><span style="color: #008080">30</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span></div>
由于是对称的，所以在14,15行中只需要遍历一次所有大写字母就可以拿到所有对应关系了，包括加密、解密。另外在22行里面用到了dict的get方法，这样在非字母符号就可以保持原样了。<img src ="http://www.blogjava.net/xylz/aggbug/324056.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xylz/" target="_blank">xylz</a> 2010-06-21 12:25 <a href="http://www.blogjava.net/xylz/articles/324056.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Core Python Programming Exercises P06-13/14/15/16</title><link>http://www.blogjava.net/xylz/articles/322771.html</link><dc:creator>xylz</dc:creator><author>xylz</author><pubDate>Fri, 04 Jun 2010 09:03:00 GMT</pubDate><guid>http://www.blogjava.net/xylz/articles/322771.html</guid><wfw:comment>http://www.blogjava.net/xylz/comments/322771.html</wfw:comment><comments>http://www.blogjava.net/xylz/articles/322771.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xylz/comments/commentRss/322771.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xylz/services/trackbacks/322771.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 6-13. Strings. The string module contains three functions, atoi(), atol(), and atof(), that convert strings to integers, long integers, and floating point numbers, respectively. As of Python 1.5, the ...&nbsp;&nbsp;<a href='http://www.blogjava.net/xylz/articles/322771.html'>阅读全文</a><img src ="http://www.blogjava.net/xylz/aggbug/322771.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xylz/" target="_blank">xylz</a> 2010-06-04 17:03 <a href="http://www.blogjava.net/xylz/articles/322771.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Core Python Programming Exercises P06-12</title><link>http://www.blogjava.net/xylz/articles/322006.html</link><dc:creator>xylz</dc:creator><author>xylz</author><pubDate>Thu, 27 May 2010 04:13:00 GMT</pubDate><guid>http://www.blogjava.net/xylz/articles/322006.html</guid><wfw:comment>http://www.blogjava.net/xylz/comments/322006.html</wfw:comment><comments>http://www.blogjava.net/xylz/articles/322006.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xylz/comments/commentRss/322006.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xylz/services/trackbacks/322006.html</trackback:ping><description><![CDATA[<p><font style="background-color: #c7edcc">6-12. Strings.</font></p>
<p><font style="background-color: #c7edcc">(1)Create a function called findchr(), with the following declaration:</font></p>
<p><font style="background-color: #c7edcc">def findchr(string, char)<br />
findchr() will look for character char in string and return the index of the first occurrence of char, or -1 if that char is not part of string. You cannot use string.*find() or string.*index() functions or methods.</font></p>
<p><font style="background-color: #c7edcc">(2)Create another function called rfindchr() that will find the last occurrence of a character in a string. Naturally this works similarly to findchr(), but it starts its search from the end of the input string.</font></p>
<p><font style="background-color: #c7edcc">(3)Create a third function called subchr() with the following declaration:</font></p>
<p><font style="background-color: #c7edcc">def subchr(string, origchar, newchar)<br />
subchr() is similar to findchr() except that whenever origchar is found, it is replaced by newchar. The modified string is the return value.<br />
&nbsp;</font></p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">&nbsp;1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #008000">#</span><span style="color: #008000">!/usr/bin/env&nbsp;python</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #008000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#</span><span style="color: #008000">-*-&nbsp;coding:utf-8&nbsp;-*-</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #008000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#</span><span style="color: #008000">$Id:&nbsp;p0612.py&nbsp;140&nbsp;2010-05-27&nbsp;04:10:06Z&nbsp;xylz&nbsp;$</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #008000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #800000">'''</span><span style="color: #800000"><br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />This&nbsp;is&nbsp;a&nbsp;'python'&nbsp;study&nbsp;plan&nbsp;for&nbsp;xylz.<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />Copyright&nbsp;(C)2010&nbsp;xylz&nbsp;(www.imxylz.info)<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #800000">'''</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">def</span><span style="color: #000000">&nbsp;findchr(s,ch):<br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000">"""</span><span style="color: #800000"><br />
</span><span style="color: #008080">13</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;Look&nbsp;for&nbsp;character&nbsp;'ch'&nbsp;in&nbsp;'s'&nbsp;and&nbsp;return&nbsp;the&nbsp;index&nbsp;of&nbsp;the&nbsp;first&nbsp;occurrence&nbsp;of&nbsp;'ch',&nbsp;or&nbsp;-f&nbsp;if&nbsp;that&nbsp;'ch'&nbsp;is&nbsp;not&nbsp;part&nbsp;of&nbsp;'s'<br />
</span><span style="color: #008080">14</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000">"""</span><span style="color: #000000"><br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;s&nbsp;</span><span style="color: #0000ff">is</span><span style="color: #000000">&nbsp;None&nbsp;</span><span style="color: #0000ff">or</span><span style="color: #000000">&nbsp;len(s)</span><span style="color: #000000">==</span><span style="color: #000000">0:&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000"><br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;i,c&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;enumerate(s):<br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;c&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;ch:&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;i<br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000"><br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">def</span><span style="color: #000000">&nbsp;rfindchr(s,ch):<br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000">"""</span><span style="color: #800000"><br />
</span><span style="color: #008080">22</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;Look&nbsp;for&nbsp;character&nbsp;'ch'&nbsp;in&nbsp;'s'&nbsp;and&nbsp;return&nbsp;the&nbsp;index&nbsp;of&nbsp;the&nbsp;last&nbsp;occurrence&nbsp;of&nbsp;'ch',&nbsp;or&nbsp;-f&nbsp;if&nbsp;that&nbsp;'ch'&nbsp;is&nbsp;not&nbsp;part&nbsp;of&nbsp;'s'<br />
</span><span style="color: #008080">23</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000">"""</span><span style="color: #000000"><br />
</span><span style="color: #008080">24</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;s&nbsp;</span><span style="color: #0000ff">is</span><span style="color: #000000">&nbsp;None&nbsp;</span><span style="color: #0000ff">or</span><span style="color: #000000">&nbsp;len(s)</span><span style="color: #000000">==</span><span style="color: #000000">0:&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000"><br />
</span><span style="color: #008080">25</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;range(len(s)</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">,</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">,</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">):<br />
</span><span style="color: #008080">26</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;s[i]&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;ch:&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;i<br />
</span><span style="color: #008080">27</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000"><br />
</span><span style="color: #008080">28</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">29</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">def</span><span style="color: #000000">&nbsp;subchr(s,oldch,newch):<br />
</span><span style="color: #008080">30</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000">"""</span><span style="color: #800000"><br />
</span><span style="color: #008080">31</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;Look&nbsp;for&nbsp;character&nbsp;'oldch'&nbsp;in&nbsp;'newch'&nbsp;and&nbsp;replace&nbsp;each&nbsp;'oldch'&nbsp;with&nbsp;'newch'&nbsp;and&nbsp;return&nbsp;the&nbsp;string&nbsp;modified.<br />
</span><span style="color: #008080">32</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000">"""</span><span style="color: #000000"><br />
</span><span style="color: #008080">33</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;s&nbsp;</span><span style="color: #0000ff">is</span><span style="color: #000000">&nbsp;None&nbsp;</span><span style="color: #0000ff">or</span><span style="color: #000000">&nbsp;len(s)</span><span style="color: #000000">==</span><span style="color: #000000">0:&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;s<br />
</span><span style="color: #008080">34</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;ret</span><span style="color: #000000">=</span><span style="color: #000000">[]<br />
</span><span style="color: #008080">35</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;c&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;s:<br />
</span><span style="color: #008080">36</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret.append(c&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;c</span><span style="color: #000000">!=</span><span style="color: #000000">oldch&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;newch)<br />
</span><span style="color: #008080">37</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">''</span><span style="color: #000000">.join(ret)<br />
</span><span style="color: #008080">38</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">39</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">40</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">__name__</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">__main__</span><span style="color: #800000">'</span><span style="color: #000000">:<br />
</span><span style="color: #008080">41</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">assert</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;findchr(</span><span style="color: #800000">'</span><span style="color: #800000">Good</span><span style="color: #800000">'</span><span style="color: #000000">,</span><span style="color: #800000">'</span><span style="color: #800000">o</span><span style="color: #800000">'</span><span style="color: #000000">)<br />
</span><span style="color: #008080">42</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">:<br />
</span><span style="color: #008080">43</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">assert</span><span style="color: #000000">&nbsp;0&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;findchr(</span><span style="color: #800000">'</span><span style="color: #800000">Good</span><span style="color: #800000">'</span><span style="color: #000000">,</span><span style="color: #800000">'</span><span style="color: #800000">x</span><span style="color: #800000">'</span><span style="color: #000000">)<br />
</span><span style="color: #008080">44</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">raise</span><span style="color: #000000">&nbsp;ValueError,&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">Test&nbsp;fail.</span><span style="color: #800000">'</span><span style="color: #000000"><br />
</span><span style="color: #008080">45</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">except</span><span style="color: #000000">&nbsp;AssertionError&nbsp;as&nbsp;e:<br />
</span><span style="color: #008080">46</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;e<br />
</span><span style="color: #008080">47</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">assert</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">2</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;rfindchr(</span><span style="color: #800000">'</span><span style="color: #800000">Good</span><span style="color: #800000">'</span><span style="color: #000000">,</span><span style="color: #800000">'</span><span style="color: #800000">o</span><span style="color: #800000">'</span><span style="color: #000000">)<br />
</span><span style="color: #008080">48</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">assert</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">Gxxd</span><span style="color: #800000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;subchr(</span><span style="color: #800000">'</span><span style="color: #800000">Good</span><span style="color: #800000">'</span><span style="color: #000000">,</span><span style="color: #800000">'</span><span style="color: #800000">o</span><span style="color: #800000">'</span><span style="color: #000000">,</span><span style="color: #800000">'</span><span style="color: #800000">x</span><span style="color: #800000">'</span><span style="color: #000000">)<br />
</span><span style="color: #008080">49</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">50</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></div>
在此类的测试程序中，使用assert断言来测试正确性，如果测试失败会抛出一个AssertionError的异常。<br /><img src ="http://www.blogjava.net/xylz/aggbug/322006.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xylz/" target="_blank">xylz</a> 2010-05-27 12:13 <a href="http://www.blogjava.net/xylz/articles/322006.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Core Python Programming Exercises P06-11</title><link>http://www.blogjava.net/xylz/articles/321998.html</link><dc:creator>xylz</dc:creator><author>xylz</author><pubDate>Thu, 27 May 2010 03:42:00 GMT</pubDate><guid>http://www.blogjava.net/xylz/articles/321998.html</guid><wfw:comment>http://www.blogjava.net/xylz/comments/321998.html</wfw:comment><comments>http://www.blogjava.net/xylz/articles/321998.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xylz/comments/commentRss/321998.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xylz/services/trackbacks/321998.html</trackback:ping><description><![CDATA[<a id="Editor_Results_rprSelectionList_ctl01_LinkTitle" class="titlelink" href="http://www.blogjava.net/xylz/articles/321558.html">
<p><font style="background-color: #c7edcc">6-11. Conversion.</font></p>
<p><font style="background-color: #c7edcc">Create a program that will convert from an integer to an Internet Protocol (IP) address in the four-octet format of WWW.XXX.YYY.ZZZ.</font></p>
<p><font style="background-color: #c7edcc">Update your program to be able to do the vice versa of the above.<br />
&nbsp;</font></p>
</a>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">&nbsp;1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #008000">#</span><span style="color: #008000">!/usr/bin/env&nbsp;python</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #008000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#</span><span style="color: #008000">-*-&nbsp;coding:utf-8&nbsp;-*-</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #008000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#</span><span style="color: #008000">$Id:&nbsp;p0611.py&nbsp;139&nbsp;2010-05-21&nbsp;09:45:30Z&nbsp;xylz&nbsp;$</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #008000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #800000">'''</span><span style="color: #800000"><br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />This&nbsp;is&nbsp;a&nbsp;'python'&nbsp;study&nbsp;plan&nbsp;for&nbsp;xylz.<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />Copyright&nbsp;(C)2010&nbsp;xylz&nbsp;(www.imxylz.info)<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #800000">'''</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">def</span><span style="color: #000000">&nbsp;convertIp2Str(ip):<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">.</span><span style="color: #800000">'</span><span style="color: #000000">.join(&nbsp;(&nbsp;str((ip</span><span style="color: #000000">&gt;&gt;</span><span style="color: #000000">i)&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">0xFF</span><span style="color: #000000">)&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;(</span><span style="color: #000000">24</span><span style="color: #000000">,</span><span style="color: #000000">16</span><span style="color: #000000">,</span><span style="color: #000000">8</span><span style="color: #000000">,0))&nbsp;)<br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">def</span><span style="color: #000000">&nbsp;convertStr2Ip(s):<br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;r</span><span style="color: #000000">=</span><span style="color: #000000">0<br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;i,v&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;enumerate(s.split(</span><span style="color: #800000">'</span><span style="color: #800000">.</span><span style="color: #800000">'</span><span style="color: #000000">)):<br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r&nbsp;</span><span style="color: #000000">|=</span><span style="color: #000000">&nbsp;(&nbsp;int(v)&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;(</span><span style="color: #000000">24</span><span style="color: #000000">-</span><span style="color: #000000">i</span><span style="color: #000000">*</span><span style="color: #000000">8</span><span style="color: #000000">))<br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;r<br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">__name__</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">__main__</span><span style="color: #800000">'</span><span style="color: #000000">:<br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000">'''</span><span style="color: #800000"><br />
</span><span style="color: #008080">22</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;Convert&nbsp;ip&nbsp;from&nbsp;Integer&nbsp;number&nbsp;to&nbsp;string&nbsp;and&nbsp;do&nbsp;it&nbsp;versa.<br />
</span><span style="color: #008080">23</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000">'''</span><span style="color: #000000"><br />
</span><span style="color: #008080">24</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;sip&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">192.168.1.1</span><span style="color: #800000">'</span><span style="color: #000000"><br />
</span><span style="color: #008080">25</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;ip&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;convertStr2Ip(sip)<br />
</span><span style="color: #008080">26</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;sip2&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;convertIp2Str(ip)<br />
</span><span style="color: #008080">27</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;sip,ip,sip2</span></div>
很显然这里没有对IP有效性进行校验，这里假设IP地址都是有效的。<br />
在11行，首先构造一个4个数的迭代器，对于迭代器里面的每一项，将ip整数往右移一个字节，然后与0xFF，这样就得到了每一项的值。然后同string.join(s)将一个迭代器或者列表连接起来，构成一个"xxx.xxx.xxx.xxx"格式的字符串。<img src ="http://www.blogjava.net/xylz/aggbug/321998.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xylz/" target="_blank">xylz</a> 2010-05-27 11:42 <a href="http://www.blogjava.net/xylz/articles/321998.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Core Python Programming Exercises P06-10</title><link>http://www.blogjava.net/xylz/articles/321558.html</link><dc:creator>xylz</dc:creator><author>xylz</author><pubDate>Fri, 21 May 2010 09:14:00 GMT</pubDate><guid>http://www.blogjava.net/xylz/articles/321558.html</guid><wfw:comment>http://www.blogjava.net/xylz/comments/321558.html</wfw:comment><comments>http://www.blogjava.net/xylz/articles/321558.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xylz/comments/commentRss/321558.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xylz/services/trackbacks/321558.html</trackback:ping><description><![CDATA[<p><a name="ch06qa1q10"></a><strong>6-10.</strong>
<p>Strings. Create a function that will return another string similar to the input string, but with its case inverted. For example, input of "Mr. Ed" will result in "mR. eD" as the output string.
<p>&nbsp; <br />
</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">&nbsp;1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #008000">#</span><span style="color: #008000">!/usr/bin/env&nbsp;python</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #008000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#</span><span style="color: #008000">-*-&nbsp;coding:utf-8&nbsp;-*-</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #008000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#</span><span style="color: #008000">$Id:&nbsp;p0610.py&nbsp;138&nbsp;2010-05-21&nbsp;09:10:35Z&nbsp;xylz&nbsp;$</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #008000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #800000">'''</span><span style="color: #800000"><br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />This&nbsp;is&nbsp;a&nbsp;'python'&nbsp;study&nbsp;plan&nbsp;for&nbsp;xylz.<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />Copyright&nbsp;(C)2010&nbsp;xylz&nbsp;(www.imxylz.info)<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #800000">'''</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;string<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />_letters&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;string.ascii_letters<br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />_map&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;dict(zip(_letters,_letters[</span><span style="color: #000000">26</span><span style="color: #000000">:</span><span style="color: #000000">52</span><span style="color: #000000">]</span><span style="color: #000000">+</span><span style="color: #000000">_letters[0:</span><span style="color: #000000">26</span><span style="color: #000000">]))<br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">def</span><span style="color: #000000">&nbsp;caseInverted(s):<br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;s&nbsp;</span><span style="color: #0000ff">is</span><span style="color: #000000">&nbsp;None&nbsp;</span><span style="color: #0000ff">or</span><span style="color: #000000">&nbsp;len(s)&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">0:&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;s<br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;r</span><span style="color: #000000">=</span><span style="color: #000000">[]<br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;c&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;s:<br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r.append(_map.get(c,c))<br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">''</span><span style="color: #000000">.join(r)<br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">22</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">__name__</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">__main__</span><span style="color: #800000">'</span><span style="color: #000000">:<br />
</span><span style="color: #008080">23</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000">'''</span><span style="color: #800000"><br />
</span><span style="color: #008080">24</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;Create&nbsp;a&nbsp;function&nbsp;that&nbsp;will&nbsp;return&nbsp;another&nbsp;string&nbsp;similar&nbsp;to&nbsp;the&nbsp;input&nbsp;string,&nbsp;but&nbsp;with&nbsp;its&nbsp;case&nbsp;inverted.&nbsp;For&nbsp;example,&nbsp;input&nbsp;of&nbsp;"Mr.&nbsp;Ed"&nbsp;will&nbsp;result&nbsp;in&nbsp;"mR.&nbsp;eD"&nbsp;as&nbsp;the&nbsp;output&nbsp;string.<br />
</span><span style="color: #008080">25</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000">'''</span><span style="color: #000000"><br />
</span><span style="color: #008080">26</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;caseInverted(</span><span style="color: #800000">'</span><span style="color: #800000">Mr.Liu</span><span style="color: #800000">'</span><span style="color: #000000">)<br />
</span><span style="color: #008080">27</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></div>
第12行首先从string模块里面加载所有字母的字符串，这个需要导入string模块。<br />
最重要的是第13行，通过两个字符串（a-Z对应A-Z+a-z）来构造一个dic，这里用到了zip内置函数，同时通过dict包装下，这样就成了一个dict。<br />
而在19行里面需要注意的是，对于那些不再dict里面的字符需要原样返回，所以这里使用了get，如果直接使用下表操作[]，会触发一个异常。<br />
使用dict的另一个好处就是速度可能会快点，这个没有测试，搞不好直接遍历字符串找到对应关系可能更快。<br /><img src ="http://www.blogjava.net/xylz/aggbug/321558.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xylz/" target="_blank">xylz</a> 2010-05-21 17:14 <a href="http://www.blogjava.net/xylz/articles/321558.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Core Python Programming Exercises Chapter 6</title><link>http://www.blogjava.net/xylz/articles/319035.html</link><dc:creator>xylz</dc:creator><author>xylz</author><pubDate>Wed, 21 Apr 2010 14:25:00 GMT</pubDate><guid>http://www.blogjava.net/xylz/articles/319035.html</guid><wfw:comment>http://www.blogjava.net/xylz/comments/319035.html</wfw:comment><comments>http://www.blogjava.net/xylz/articles/319035.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xylz/comments/commentRss/319035.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xylz/services/trackbacks/319035.html</trackback:ping><description><![CDATA[<br />
<table border="0" cellspacing="16" cellpadding="0">
    <tbody>
        <tr valign="top">
            <td class="docText" width="50" align="right"><a name="ch06qa1q2"></a><strong><a class="docLink" href="app01lev1sec5.html#app01qa5q0a2">6-2.</a></strong></td>
            <td>
            <p class="docText"><span class="docEmphasis">String Identifiers</span>. Modify the <tt>idcheck.py</tt> script in <a class="docLink" href="ch06lev1sec3.html#ch06list01">Example 6-1</a> such that it will determine the validity of identifiers of length 1 as well as be able to detect if an identifier is a keyword. For the latter part of the exercise, you may use the <tt>keyword</tt> module (specifically the <tt>keyword.kwlist</tt> list) to aid in your cause.</p>
            </td>
        </tr>
    </tbody>
</table>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">&nbsp;1</span><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="color: #008000">#</span><span style="color: #008000">!/usr/bin/env&nbsp;python</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #008000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />#</span><span style="color: #008000">-*-&nbsp;coding:utf-8&nbsp;-*-</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #008000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />#</span><span style="color: #008000">$Id:&nbsp;p0602.py&nbsp;131&nbsp;2010-04-21&nbsp;14:20:10Z&nbsp;xylz&nbsp;$</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #008000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #800000">'''</span><span style="color: #800000"><br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #800000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />This&nbsp;is&nbsp;a&nbsp;'python'&nbsp;study&nbsp;plan&nbsp;for&nbsp;xylz.<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #800000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />Copyright&nbsp;(C)2010&nbsp;xylz&nbsp;(www.imxylz.info)<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #800000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #800000">'''</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;string<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;keyword<br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #800000">'''</span><span style="color: #800000"><br />
</span><span style="color: #008080">14</span><span style="color: #800000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #800000">'''</span><span style="color: #000000"><br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />alphas&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;string.letters&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">_</span><span style="color: #800000">'</span><span style="color: #000000"><br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />nums&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;string.digits<br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />alphas_nums&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;alphas</span><span style="color: #000000">+</span><span style="color: #000000">nums<br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />kwlist&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;keyword.kwlist<br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">def</span><span style="color: #000000">&nbsp;isPythonId(s):<br />
</span><span style="color: #008080">22</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">not</span><span style="color: #000000">&nbsp;s:&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;False<br />
</span><span style="color: #008080">23</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">not</span><span style="color: #000000">&nbsp;len(s):&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;False<br />
</span><span style="color: #008080">24</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;s[0]&nbsp;</span><span style="color: #0000ff">not</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;alphas:&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;False<br />
</span><span style="color: #008080">25</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;c&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;s:&nbsp;<br />
</span><span style="color: #008080">26</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;c&nbsp;</span><span style="color: #0000ff">not</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;alphas_nums:&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;False<br />
</span><span style="color: #008080">27</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;s&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;kwlist:&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;False<br />
</span><span style="color: #008080">28</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;True<br />
</span><span style="color: #008080">29</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
</span><span style="color: #008080">30</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">__name__</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">__main__</span><span style="color: #800000">'</span><span style="color: #000000">:<br />
</span><span style="color: #008080">31</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000">'''</span><span style="color: #800000"><br />
</span><span style="color: #008080">32</span><span style="color: #800000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;Identifiers.&nbsp;Modify&nbsp;the&nbsp;idcheck.py&nbsp;script&nbsp;in&nbsp;Example&nbsp;6-1&nbsp;such&nbsp;that&nbsp;it&nbsp;will&nbsp;determine&nbsp;the&nbsp;validity&nbsp;of&nbsp;identifiers&nbsp;of&nbsp;length&nbsp;1&nbsp;as&nbsp;well&nbsp;as&nbsp;be&nbsp;able&nbsp;to&nbsp;detect&nbsp;if&nbsp;an&nbsp;identifier&nbsp;is&nbsp;a&nbsp;keyword.&nbsp;For&nbsp;the&nbsp;latter&nbsp;part&nbsp;of&nbsp;the&nbsp;exercise,&nbsp;you&nbsp;may&nbsp;use&nbsp;the&nbsp;keyword&nbsp;module&nbsp;(specifically&nbsp;the&nbsp;keyword.kwlist&nbsp;list)&nbsp;to&nbsp;aid&nbsp;in&nbsp;your&nbsp;cause.<br />
</span><span style="color: #008080">33</span><span style="color: #800000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000">'''</span><span style="color: #000000"><br />
</span><span style="color: #008080">34</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">&nbsp;True:<br />
</span><span style="color: #008080">35</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myInput&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;raw_input(</span><span style="color: #800000">"</span><span style="color: #800000">Identifier&nbsp;to&nbsp;test?&nbsp;('exit'&nbsp;for&nbsp;over).\n&gt;&gt;&gt;</span><span style="color: #800000">"</span><span style="color: #000000">)<br />
</span><span style="color: #008080">36</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;myInput&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">exit</span><span style="color: #800000">'</span><span style="color: #000000">:</span><span style="color: #0000ff">break</span><span style="color: #000000"><br />
</span><span style="color: #008080">37</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;isPythonId(myInput):<br />
</span><span style="color: #008080">38</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">'%s'&nbsp;is&nbsp;a&nbsp;valid&nbsp;id</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">&nbsp;myInput<br />
</span><span style="color: #008080">39</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">:<br />
</span><span style="color: #008080">40</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">'%s'&nbsp;is&nbsp;an&nbsp;invalid&nbsp;id</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">&nbsp;myInput<br />
</span><span style="color: #008080">41</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
</span><span style="color: #008080">42</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span></div>
<font style="background-color: #c7edcc">6-3. Sorting.<br />
Enter a list of numbers and sort the values in largest-to-smallest order.<br />
Do the same thing, but for strings and in reverse alphabetical (largest-to-smallest lexicographic) order.</font><br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">&nbsp;1</span><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="color: #008000">#</span><span style="color: #008000">!/usr/bin/env&nbsp;python</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #008000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />#</span><span style="color: #008000">-*-&nbsp;coding:utf-8&nbsp;-*-</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #008000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />#</span><span style="color: #008000">$Id:&nbsp;p0603.py&nbsp;132&nbsp;2010-04-25&nbsp;10:22:05Z&nbsp;xylz&nbsp;$</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #008000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #800000">'''</span><span style="color: #800000"><br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #800000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />This&nbsp;is&nbsp;a&nbsp;'python'&nbsp;study&nbsp;plan&nbsp;for&nbsp;xylz.<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #800000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />Copyright&nbsp;(C)2010&nbsp;xylz&nbsp;(www.imxylz.info)<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #800000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #800000">'''</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #800000">'''</span><span style="color: #800000"><br />
</span><span style="color: #008080">12</span><span style="color: #800000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #800000">'''</span><span style="color: #000000"><br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">__name__</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">__main__</span><span style="color: #800000">'</span><span style="color: #000000">:<br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000">'''</span><span style="color: #800000"><br />
</span><span style="color: #008080">17</span><span style="color: #800000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000">'''</span><span style="color: #000000"><br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;nums</span><span style="color: #000000">=</span><span style="color: #000000">[]<br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">&nbsp;True:<br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myInput&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;raw_input(</span><span style="color: #800000">"</span><span style="color: #800000">Enter&nbsp;an&nbsp;Integer&nbsp;('exit'&nbsp;for&nbsp;over).\n&gt;&gt;&gt;</span><span style="color: #800000">"</span><span style="color: #000000">)<br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;myInput&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">exit</span><span style="color: #800000">'</span><span style="color: #000000">:</span><span style="color: #0000ff">break</span><span style="color: #000000"><br />
</span><span style="color: #008080">22</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">:<br />
</span><span style="color: #008080">23</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">int(myInput)<br />
</span><span style="color: #008080">24</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nums.append(i)<br />
</span><span style="color: #008080">25</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">except</span><span style="color: #000000">:<br />
</span><span style="color: #008080">26</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">Error&nbsp;Number</span><span style="color: #800000">'</span><span style="color: #000000">,<br />
</span><span style="color: #008080">27</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">28</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;templist</span><span style="color: #000000">=</span><span style="color: #000000">list(nums)&nbsp;<br />
</span><span style="color: #008080">29</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;nums.sort()<br />
</span><span style="color: #008080">30</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;nums.reverse()<br />
</span><span style="color: #008080">31</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;nums<br />
</span><span style="color: #008080">32</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;range(0,len(templist),</span><span style="color: #000000">1</span><span style="color: #000000">):<br />
</span><span style="color: #008080">33</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;j&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;range(i</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">,len(templist),</span><span style="color: #000000">1</span><span style="color: #000000">):<br />
</span><span style="color: #008080">34</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;str(templist[i])</span><span style="color: #000000">&lt;</span><span style="color: #000000">str(templist[j]):<br />
</span><span style="color: #008080">35</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;templist[i],templist[j]</span><span style="color: #000000">=</span><span style="color: #000000">templist[j],templist[i]<br />
</span><span style="color: #008080">36</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;templist<br />
</span><span style="color: #008080">37</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
</span><span style="color: #008080">38</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span></div>
<table border="0" cellspacing="16" cellpadding="0">
    <tbody>
        <tr valign="top">
            <td class="docText" width="50" align="right"><a name="ch06qa1q6"></a><strong>6-6.</strong></td>
            <td>
            <p class="docText"><span class="docEmphasis">Strings</span>. Create the equivalent to <tt>string.strip()</tt>: Take a string and remove all leading and trailing whitespace. (Use of <tt>string.*strip()</tt> defeats the purpose of this exercise.)</p>
            </td>
        </tr>
    </tbody>
</table>
<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">&nbsp;1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #008000">#</span><span style="color: #008000">!/usr/bin/env&nbsp;python</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #008000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#</span><span style="color: #008000">-*-&nbsp;coding:utf-8&nbsp;-*-</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #008000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#</span><span style="color: #008000">$Id:&nbsp;p0605.py&nbsp;133&nbsp;2010-04-25&nbsp;11:16:34Z&nbsp;xylz&nbsp;$</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #008000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #800000">'''</span><span style="color: #800000"><br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />This&nbsp;is&nbsp;a&nbsp;'python'&nbsp;study&nbsp;plan&nbsp;for&nbsp;xylz.<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />Copyright&nbsp;(C)2010&nbsp;xylz&nbsp;(www.imxylz.info)<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #800000">'''</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">def</span><span style="color: #000000">&nbsp;trim(s):<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000">'''</span><span style="color: #800000"><br />
</span><span style="color: #008080">12</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;Take&nbsp;a&nbsp;string&nbsp;and&nbsp;remove&nbsp;all&nbsp;leading&nbsp;and&nbsp;trailing&nbsp;whitespace.<br />
</span><span style="color: #008080">13</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000">'''</span><span style="color: #000000"><br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;s&nbsp;</span><span style="color: #0000ff">is</span><span style="color: #000000">&nbsp;None:</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;None<br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;len(s)</span><span style="color: #000000">==</span><span style="color: #000000">0:</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">''</span><span style="color: #000000"><br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;ret</span><span style="color: #000000">=</span><span style="color: #000000">[]<br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;range(0,len(s),</span><span style="color: #000000">1</span><span style="color: #000000">):<br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c</span><span style="color: #000000">=</span><span style="color: #000000">s[i]<br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;c&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">and</span><span style="color: #000000">&nbsp;c&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">\t</span><span style="color: #800000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">and</span><span style="color: #000000">&nbsp;c</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">\r</span><span style="color: #800000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">and</span><span style="color: #000000">&nbsp;c</span><span style="color: #000000">!=</span><span style="color: #800000">'</span><span style="color: #800000">\n</span><span style="color: #800000">'</span><span style="color: #000000">:<br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s</span><span style="color: #000000">=</span><span style="color: #000000">s[i:]<br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000"><br />
</span><span style="color: #008080">22</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;i</span><span style="color: #000000">==</span><span style="color: #000000">len(s)</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">:</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">''</span><span style="color: #000000"><br />
</span><span style="color: #008080">23</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;j&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;range(len(s)</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">,</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">,</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">):<br />
</span><span style="color: #008080">24</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c</span><span style="color: #000000">=</span><span style="color: #000000">s[j]<br />
</span><span style="color: #008080">25</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;c</span><span style="color: #000000">!=</span><span style="color: #800000">'</span><span style="color: #800000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">and</span><span style="color: #000000">&nbsp;c</span><span style="color: #000000">!=</span><span style="color: #800000">'</span><span style="color: #800000">\t</span><span style="color: #800000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">and</span><span style="color: #000000">&nbsp;c</span><span style="color: #000000">!=</span><span style="color: #800000">'</span><span style="color: #800000">\r</span><span style="color: #800000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">and</span><span style="color: #000000">&nbsp;c</span><span style="color: #000000">!=</span><span style="color: #800000">'</span><span style="color: #800000">\n</span><span style="color: #800000">'</span><span style="color: #000000">:<br />
</span><span style="color: #008080">26</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s</span><span style="color: #000000">=</span><span style="color: #000000">s[:j</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">]<br />
</span><span style="color: #008080">27</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000"><br />
</span><span style="color: #008080">28</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;j</span><span style="color: #000000">==</span><span style="color: #000000">0:</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">''</span><span style="color: #000000"><br />
</span><span style="color: #008080">29</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;s<br />
</span><span style="color: #008080">30</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">31</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">32</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">__name__</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">__main__</span><span style="color: #800000">'</span><span style="color: #000000">:<br />
</span><span style="color: #008080">33</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000">'''</span><span style="color: #800000"><br />
</span><span style="color: #008080">34</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;Create&nbsp;the&nbsp;equivalent&nbsp;to&nbsp;string.strip():&nbsp;Take&nbsp;a&nbsp;string&nbsp;and&nbsp;remove&nbsp;all&nbsp;leading&nbsp;and&nbsp;trailing&nbsp;whitespace.&nbsp;(Use&nbsp;of&nbsp;string.*strip()&nbsp;defeats&nbsp;the&nbsp;purpose&nbsp;of&nbsp;this&nbsp;exercise.)<br />
</span><span style="color: #008080">35</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000">'''</span><span style="color: #000000"><br />
</span><span style="color: #008080">36</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;s&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;[</span><span style="color: #800000">"</span><span style="color: #800000">&nbsp;a&nbsp;book&nbsp;</span><span style="color: #800000">"</span><span style="color: #000000">,</span><span style="color: #800000">"</span><span style="color: #800000">&nbsp;a&nbsp;book</span><span style="color: #800000">"</span><span style="color: #000000">,</span><span style="color: #800000">"</span><span style="color: #800000">a&nbsp;book</span><span style="color: #800000">"</span><span style="color: #000000">,</span><span style="color: #800000">""</span><span style="color: #000000">,</span><span style="color: #800000">"</span><span style="color: #800000">&nbsp;\r\n</span><span style="color: #800000">"</span><span style="color: #000000">]:<br />
</span><span style="color: #008080">37</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ns</span><span style="color: #000000">=</span><span style="color: #000000">trim(s)<br />
</span><span style="color: #008080">38</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">'%s'&nbsp;=&gt;&nbsp;'%s',&nbsp;len=%d</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">&nbsp;(s,ns,len(ns))<br />
</span><span style="color: #008080">39</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></div><img src ="http://www.blogjava.net/xylz/aggbug/319035.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xylz/" target="_blank">xylz</a> 2010-04-21 22:25 <a href="http://www.blogjava.net/xylz/articles/319035.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Core Python Programming Exercises Chapter 5</title><link>http://www.blogjava.net/xylz/articles/318818.html</link><dc:creator>xylz</dc:creator><author>xylz</author><pubDate>Tue, 20 Apr 2010 02:31:00 GMT</pubDate><guid>http://www.blogjava.net/xylz/articles/318818.html</guid><wfw:comment>http://www.blogjava.net/xylz/comments/318818.html</wfw:comment><comments>http://www.blogjava.net/xylz/articles/318818.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xylz/comments/commentRss/318818.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xylz/services/trackbacks/318818.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 5-3.                        Standard Type Operators. Take test score input from the user and output letter grades                        &nbsp;1#!/usr/bin/env&nbsp;python&nbsp;2#-*-&nb...&nbsp;&nbsp;<a href='http://www.blogjava.net/xylz/articles/318818.html'>阅读全文</a><img src ="http://www.blogjava.net/xylz/aggbug/318818.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xylz/" target="_blank">xylz</a> 2010-04-20 10:31 <a href="http://www.blogjava.net/xylz/articles/318818.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Core Python Programming Exercises Chapter 2</title><link>http://www.blogjava.net/xylz/articles/318782.html</link><dc:creator>xylz</dc:creator><author>xylz</author><pubDate>Mon, 19 Apr 2010 14:46:00 GMT</pubDate><guid>http://www.blogjava.net/xylz/articles/318782.html</guid><wfw:comment>http://www.blogjava.net/xylz/comments/318782.html</wfw:comment><comments>http://www.blogjava.net/xylz/articles/318782.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xylz/comments/commentRss/318782.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xylz/services/trackbacks/318782.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 2-5.                        Loops and Numbers. Create some loops using both while and for.                                                                        Write a loop that counts...&nbsp;&nbsp;<a href='http://www.blogjava.net/xylz/articles/318782.html'>阅读全文</a><img src ="http://www.blogjava.net/xylz/aggbug/318782.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xylz/" target="_blank">xylz</a> 2010-04-19 22:46 <a href="http://www.blogjava.net/xylz/articles/318782.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>