python中的 \r以及基于此实现简单的倒计时小程序

来源:互联网 发布:算法提供者错误 编辑:程序博客网 时间:2024/06/05 22:41

注意:本程序在windows7_64中编译通过,其它系统可能有所差别。


在python中 “\r” 表示回车符,在打印输出时如果后面没有 \n 就不会换行(在windows系统中换行是\r\n),而是将光标移动到本行的最前面,接下来输出的内容就会从第一个字符位置覆盖原来的字符。


可以看到:\r后面的字符’d'覆盖了最开始输出的字符‘a'

基于这种特点,在《笨方法学python》中有这样一个有趣的例子:

while True:    for i in ["/","-","|","\\","|"]:        print "%s\r" % i,


上面的代码中print那行的语句以逗号结尾是因为print打印输出时默认换行的,结尾放个逗号可以避免换行,这样光标才会回到同一行的起始位置。

下面是我自己实现的倒计时小程序:

import timedef getdigit(t):#用于获取整数的位数    if t == 0:        return 1    else:        c = 0        while t!= 0:            t = t/10            c += 1        return ccount = 0a = input('time: ')d1 = getdigit(a)while(count < a):    ncount = a - count    d2 = getdigit(ncount)    fillter = ""    for i in range(d1-d2):#比如如果倒计时从100到99,少了一位,就要补充一个空格才能完全覆盖上一个整数。        fillter += " "    formatter = "%d" + fillter + "\r"    print formatter % ncount,    time.sleep(0.1)    count += 1print "done"


1 0
原创粉丝点击