Learn Python the hard way 是2.7的,很多语法不对,只好看手册了。http://docs.pythontab.com/python/python3.4/inputoutput.html#tut-formatting
练习:
- 打印出平方和立方的两种办法:
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