本文采用Python doctest单元测试的方法,直接用代码学习代码,滚雪球式的迭代学习。
doctest是一个python标准库自带的轻量单元测试工具,适合实现一些简单的单元测试。它可以在docstring中寻找测试用例并执行,比较输出结果与期望值是否符合。
运行命令
python -m doctest -v dtest.py
如果doctest通过,不会有任何输出。可以加-v参数来查看测试细节。
关于doctest的简单使用请参考:http://mickhan.blog.51cto.com/2517040/944294
'''
Python 提供了两种字符串格式化⽅方法,除了熟悉的 C 样式外,还有更强⼤的 format。
*******************************************************
格式:%[(key)][flags][width][.precision]typecode
标记:- 左对⻬齐,+ 数字符号,# 进制前缀,或者⽤用空格、0 填充。
*******************************************************
>>> dictA = dict(key='a', value=23); print(dictA)
{'key': 'a', 'value': 23}
>>> '%(key)s = %(value)d' % dictA
'a = 23'
>>> "[%-10s]" % 'abc' # 左对齐
'[abc ]'
>>> "[%10s]" % 'abc' # 右对齐
'[ abc]'
>>> "%+d, %+d" % (5, -6)
'+5, -6'
>>> "%05d" % 12 # 填充
'00012'
>>> "%0.2f" % 2.345 # 小数
'2.35'
>>> "%#X; %x" % (100,100)
'0X64; 64'
********************************************************************
format 方法⽀支持更多的数据类型,包括列表、字典、对象成员等。
{field!convertflag:formatspec}
格式化规范:
formatspec: [[fill]align][sign][#][0][width][.precision][typecode]
********************************************************************
>>> "{key}={value}".format(key='a',value=10)
'a=10'
>>> "{0},{1},{0}".format(12,34) # filed可多次使用
'12,34,12'
>>> "{0:,}; {1:,.2f}; {1:.2f}".format(1234567,123456.789) # 千分位,带小数
'1,234,567; 123,456.79; 123456.79'
>>> "{0:<5};{1:^5};{2:>5};{3:*^5}".format('a','b','c','d')
'a ; b ; c;**d**'
>>> import sys
>>> "{0.platform}".format(sys)
'darwin'
'''
if __name__ == "__main__":
import doctest
doctest.testmod()