[译]The Python Tutorial#Input and Output
Python中有多种展示程序输出的方式;数据可以以人类可读的方式打印出来,也可以输出到文件中以后使用。本章节将会详细讨论。
7.1 Fancier Output Formatting
目前为止已经介绍过两种输出值的方式:表达式语句和print()
函数。(第三种方式是使用对象的write()
方法;使用sys.stdout
引用标准输出文件。详细信息参考库文件参考手册。)
有时候需要对输出有更多的控制,而不是简单的使用空格分开值。有两种方式格式化输出:第一种方式是手动处理字符串,使用字符串的切片和连接操
本文来源gaodai.ma#com搞##代!^码@网3
作,创建任何可以想象到的输出布局。字符串类型提供了一些将字符串填充到指定列宽的有用方法,马上会讨论这点。第二种方式是使用格式化字符串或者str.format()
方法。
string
模块包含Template
类,该类提供向字符串代入值的方法。
当然还有一个问题:如何将值转换为字符串?Python提供了将任何值转换为字符串的方法:将值传递给repr()
或者str()
函数即可。
str()
函数返回值的人类可读的形式,而repr()
生成值的解释器可读形式(如果没有等价语法,将会强制抛出SyntaxError
)。对于没有提供特定适应人类阅读形式的对象,str()
函数会返回与repr()
相同的值。许多值使用str()
和repr()
函数将得到相同的返回值,如数字或者像列表和字典的结构体。特别地,字符串有两种区别明显的表示形式。
以下是一些示例:
<code class="sourceCode python"><span class="op">>>></span> s <span class="op">=</span> <span class="st">'Hello, world.'</span><span class="op">>>></span> <span class="bu">str</span>(s)<span class="co">'Hello, world.'</span><span class="op">>>></span> <span class="bu">repr</span>(s)<span class="co">"'Hello, world.'"</span><span class="op">>>></span> <span class="bu">str</span>(<span class="dv">1</span><span class="op">/</span><span class="dv">7</span>)<span class="co">'0.14285714285714285'</span><span class="op">>>></span> x <span class="op">=</span> <span class="dv">10</span> <span class="op">*</span> <span class="fl">3.25</span><span class="op">>>></span> y <span class="op">=</span> <span class="dv">200</span> <span class="op">*</span> <span class="dv">200</span><span class="op">>>></span> s <span class="op">=</span> <span class="st">'The value of x is '</span> <span class="op">+</span> <span class="bu">repr</span>(x) <span class="op">+</span> <span class="st">', and y is '</span> <span class="op">+</span> <span class="bu">repr</span>(y) <span class="op">+</span> <span class="st">'...'</span><span class="op">>>></span> <span class="bu">print</span>(s)The value of x <span class="op">is</span> <span class="fl">32.5</span>, <span class="op">and</span> y <span class="op">is</span> <span class="dv">40000</span>...<span class="op">>>></span> <span class="co"># The repr() of a string adds string quotes and backslashes:</span>... hello <span class="op">=</span> <span class="st">'hello, world</span><span class="ch">\n</span><span class="st">'</span><span class="op">>>></span> hellos <span class="op">=</span> <span class="bu">repr</span>(hello)<span class="op">>>></span> <span class="bu">print</span>(hellos)<span class="co">'hello, world\n'</span><span class="op">>>></span> <span class="co"># The argument to repr() may be any Python object:</span>... <span class="bu">repr</span>((x, y, (<span class="st">'spam'</span>, <span class="st">'eggs'</span>)))<span class="co">"(32.5, 40000, ('spam', 'eggs'))"</span></code>