3.4学习|7.1格式化输出

Learn Python the hard way 是2.7的,很多语法不对,只好看手册了。http://docs.pythontab.com/python/python3.4/inputoutput.html#tut-formatting

练习:

  1. 打印出平方和立方的两种办法:
for x in range(1,11):
    print('{0:4d}{1:4d}{2:4d}'.format(x,x*x,x*x*x))

for x in range(1,11):
    print(repr(x).rjust(2),repr(x*x).rjust(3),end='')
    print(repr(x*x*x).rjust(4))

repr(), 面向python 编译器的输入。
rjust(3), 3格的围之内向右对齐。

比如:

a = '3'
print (a)
print (a.rjust(3))

结果会是:

3
  3

同样作用的还有:str.ljust() 和 str.center() ,或者str.zfill(),它用于向数值的字符串表达左侧填充 0。该函数可以正确理解正负号.

所有的都尝试一遍:

a = '3'
print (a)
print (a.rjust(3))
print (a.ljust(3))
print (a.center(3))
print (a.zfill(3))

得到的结果会是:

3
   3
3  
 3 
003

Str.format()的用法

方法 str.format() 的基本用法如下:

>>> print('We are the {} who say "{}!"'.format('knights', 'Ni'))
We are the knights who say "Ni!"

其中,'We are the {} who say "{}"!' 是一个字符串str.
以上是一个str.format(参数1,参数2)的格式,其中参数1,2分别被传递到了字符中的大括号处,形成了最后的输出结果。

也可以和定位参数一起使用:定位从0开始。


>>>print('The story of {1}, {0}, and {other}.'.format('Bill', 'Manfred',other = 'Gerog'))

>>>print('The story of {0}, {1}, and {other}.'.format('Bill', 'Manfred',other = 'Gerog'))

结果会是:

The story of Manfred, Bill, and Gerog.
The story of Bill, Manfred, and Gerog.

可以使用变量/常量名称。

>>>print('This {food} is {adjective}.'.format(food='spam', adjective='absolutely horrible'))
This spam is absolutely horrible.

'!a' (应用 ascii()), '!s' (应用 str() ) 和 '!r' (应用 repr() ) 可以在格式化之前转换值:
字段名后允许可选的 ':' 和格式指令。这允许对值的格式化加以更深入的控制。下例将 Pi 转为三位精度。

在字段后的 ':' 后面加一个整数会限定该字段的最小宽度,这在美化表格时很有用。

table = {'Sjoerd':4127,'Jack':4098,'Dcab':7678}
for name,phone in table.items():
    print('{0:10} ==> {1:10}'.format(name,phone))

结果是:

Jack       ==>       4098
Sjoerd     ==>       4127
Dcab       ==>       7678

你可能感兴趣的:(3.4学习|7.1格式化输出)