Python格式化输出
来源:互联网 发布:综漫之知世 编辑:程序博客网 时间:2024/05/19 04:50
Python格式化输出和C真是非常的相似
1. 打印字符串
>>> a='AAAA'>>> b='BBBB'>>> print('a=%s b=%s' %(a,b));a=AAAA b=BBBB
2.打印整数
>>> a=10>>> b=20>>> print('a=%d b=%d' %(a,b));a=10 b=20>>>
3.打印浮点数
>>> a=1.1234>>> b=3.14159;>>> print('a=%d b=%d' %(a,b));a=1 b=3>>> print('a=%f b=%f' %(a,b));a=1.123400 b=3.141590>>>python2.5 python3.5默认浮点数都保留6位小数
4.打印浮点数(指定保留小数点位数)
>>> a=1.1234>>> b=3.14159;>>> print('a=%.2f b=%.3f' %(a,b));a=1.12 b=3.142
%f里指定保留小数位数时具有自动四舍五入的功能,比如b=3.14159 使用%.3f格式化之后输出的结果变成了b=3.142
5.指定占位符宽度
>>> a='ABC'>>> b='DEFF'>>> print('a=%4s b=%6s' %(a,b));a= ABC b= DEFF
还可以指定特定的占位符
>>> a='ABC'>>> b='DEFF'>>> d=125>>> print('a=%4s b=%6s d=%04d' %(a,b,d));a= ABC b= DEFF d=0125指定输出d使用4个字符宽度,如果不够在前面补零,输出字符串时,默认右对齐,其实可以调整的
6.指定占位符宽度,指定对其方式
>>> a='ABC'>>> b='DEFF'>>> d=125>>> print('a=%-4s b=%-6s d=%-06d' %(a,b,d));a=ABC b=DEFF d=125可以看到在格式字符里面加了减号字符之后,输出的内容变成了左对齐。最后的125后面其实有3个空格字符
其实还可以在运行时动态指定浮点数的精度
python的神奇之处在于它又提供了一种非常方便的语法。只需要在 typecode(这里是f)之前加一个 *,浮点数的精度就用它前面的数字来指定
来个DEOM看看
>>> for i in range(10):print('%.*f' %(i,3.14159265358249));33.13.143.1423.14163.141593.1415933.14159273.141592653.141592654
还可以更好玩
>>> d=3.14159265358>>> for i in range(10):print('%.11f %%.*%df = %.*f' %(d,i,i,d));3.14159265358 %.*0f = 33.14159265358 %.*1f = 3.13.14159265358 %.*2f = 3.143.14159265358 %.*3f = 3.1423.14159265358 %.*4f = 3.14163.14159265358 %.*5f = 3.141593.14159265358 %.*6f = 3.1415933.14159265358 %.*7f = 3.14159273.14159265358 %.*8f = 3.141592653.14159265358 %.*9f = 3.141592654
这样就非常直观的看到d=3.14159265358 这个数字经过不同的格式,输出的不同的结果。
使用 String Formatting Method Calls 可以更简洁地完成功能。
>>> for i in range(5):'{0:.{1}f}'.format(1/3.0,i);'0''0.3''0.33''0.333''0.3333'
我们来实现一个简单的模板工具
Django提供的模板语言,可以让我们通过一个dict(字典)把python变量绑定的html文件中,其实利用python的格式化输出我们也可以仅仅做一个文本替换功能。
>>> replay = """... Hello World Cup...... Germany vs Brazil... %(germany)d : %(brazil)d""">>> print(replay % {'germany': 7, 'brazil': 1})... Hello World Cup...... Germany vs Brazil... 7 : 1>>>
还能这样玩
>>> a=1>>> b=2>>> print('a=%(a)d, b=%(b)d ' % vars());a=1, b=2 >>>
vars函数是实现返回对象object的属性和属性值的字典对象,在上面的定义里面,%(a)d 表示使用a这变量的值。
测试下看看
>>> a=1>>> b=2>>> c=3>>> d=4>>> print(vars()){'__spec__': None, '__package__': None, 'i': 4, 'replay': '\n... Hello World Cup...\n... Germany vs Brazil\n... %(germany)d : %(brazil)d', '__doc__': None, '__builtins__': <module 'builtins' (built-in)>, 'd': 4, 'a': 1, 'c': 3, 'b': 2, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': '__main__'}
可以看出来,会输出当前所有的对象的属性和值。
其实我们还可在格式化字符串中访问对象属性和字典键值
>>> import sys>>> print('My {1[kind]} runs {0.platform}'.format(sys, {'kind': 'pc'}));My pc runs win32
0 0
- python中的格式化输出
- python 格式化输出
- python 格式化输出
- python格式化dict输出
- python格式化输出
- python 格式化输出
- Python 的格式化输出
- python 字符串格式化 输出
- Python格式化输出
- Python print 格式化输出
- python 格式化输出
- python 格式化输出
- python格式化输出
- python格式化输出
- python 格式化输出
- Python格式化输出
- [python]格式化输出
- python print格式化输出
- 基于matlab程序对PID控制算法的理解
- Shiro权限管理的过滤器解释
- Asterisk AMI 接口整理
- Android 改变状态栏颜色
- js刷新页面
- Python格式化输出
- java冒泡排序详解
- PowerManager和WakeLock的操作步骤
- 我的caffe学习之路<第十七天>
- Shiro的标签应用
- 《从零开始学Swift》学习笔记(Day54)——抛出错误
- 十张数据图回顾雾霾,北京污染从南向北加深趋势明显
- javaFX - FileChooser
- tensorflow学习笔记(二十五):ConfigProto&GPU