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

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


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


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

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

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


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

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

import time
def getdigit(t):#用于获取整数的位数
    if t == 0:
        return 1
    else:
        c = 0
        while t!= 0:
            t = t/10
            c += 1
        return c


count = 0
a = 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 += 1
print "done"


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值