python progressbar print_python print 进度条的例子

def progress(width, percent):

print "%s %d%%\r" % (('%%-%ds' % width) % (width * percent / 100 * "="), percent),

if percent >= 100:

print

sys.stdout.flush()

首先,先说明一下print的一些用法:

和C语言一样,字符串里的匹配使用‘%’和相关的转移类型组成的:

转换类型          含义

d,i                 带符号的十进制整数

o                   不带符号的八进制

u                   不带符号的十进制

x                    不带符号的十六进制(小写)

X                   不带符号的十六进制(大写)

e                   科学计数法表示的浮点数(小写)

E                   科学计数法表示的浮点数(大写)

f,F                 十进制浮点数

g                   如果指数大于-4或者小于精度值则和e相同,其他情况和f相同

G                  如果指数大于-4或者小于精度值则和E相同,其他情况和F相同

C                  单字符(接受整数或者单字符字符串)

r                    字符串(使用repr转换任意python对象)

s                   字符串(使用str转换任意python对象)

>>> pi = 3.141592653

>>> print('%10.3f' % pi) #字段宽10,精度3

3.142

>>> print("pi = %.*f" % (3,pi)) #用*从后面的元组中读取字段宽度或精度

pi = 3.142

>>> print('%010.3f' % pi) #用0填充空白

000003.142

>>> print('%-10.3f' % pi) #左对齐

3.142

>>> print('%+f' % pi) #显示正负号

+3.141593

%-NType:

这样表示显示字符串预留的长度. 例如

print('%-10.3f' % pi)

表示显示pi保留小数点以后3位,字符串的宽度为10.

好,现在我回到开头的函数,并做一些说明:

现在假设width = 100, percent = 2.

可以看出,这里的字符串是嵌套的,我们首先对第一个表达式进行解析,那么

('%%-%ds' % width)

的内容是: str1 = '%-100s',这个字符串嵌套了后一个字符串的内容,也就是

(width * percent / 100 * "=")

根据python的字符串可以相乘的原理,我们得到这个字符串其实就是str2 = 100*2/100*"=",也就是两个等号‘==’。

由于str2是嵌入在str1中的,那么我们继续对此进行解析,这里是str1的意思就是显示str2, 并使得字符串的宽度为100. 不足的用空格填充。

所以我们得到"==                                                                                                  " , 2%

所以当percent变化时,程序就打印用等号表示的进度条。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值