python 格式化输出

来源:互联网 发布:python自动化测试虫师 编辑:程序博客网 时间:2024/06/06 23:19

len ‘ab好’ 3 测量的是字符数

len ‘ab好’.encode(‘utf-8’) 5 测量的是字节数

中文转成utf-8是3位字节 英文是一位字节

为了让python源码按UTF-8编码读取,我们通常在文件开头写上这两行

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

**第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;

第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。**

(markdown tab键插入整串code)

'Hi, %s, you have $%d.' % ('Michael', 1000000)

‘Hi, Michael, you have $1000000.’

%运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略

>>> 'growth rate: %d %%' % 7

‘growth rate: 7 %’
%%转义%

demo如下,输出一个两位精度的浮点数,并用字符串格式化显示出’xx.x%’
# -- coding: utf-8 --
s1 = 72
s2 = 85
r = (s2-s1)/0.72;
# -*-方法一直接round round(r,2) -*-
# -*-方法二decimal在一个独立的context下工作,需要 decimal import Decimal Decimal(r).quantize(Decimal(‘0.00’)) -*-
#-*- 方法三,Python十进制数学计算模块decimal.保留浮点数精度 -*-
print(‘百分点: %.2f %%’ % r) # -- 保留精度的浮点数 --

decimal和float性能对比:

    $: python -mtimeit -s 'from decimal import Decimal as D' 'D("1.2")+D("3.4")';            $: python -mtimeit -s 'from decimal import Decimal as D' '1.2+3.4'我在虚拟机中测试前者耗时是后者的1.7k倍,但这在某些运算(例如财务运算)中是值得的,但如果要对非整数做上百次的运算,应坚持使用float。

出处:http://www.cnblogs.com/moinmoin/

原创粉丝点击