如何让闪烁的字符串也改变值? (Python 3.5)

时间:2015-10-22 15:50:31

标签: python python-3.x

我在Python 3.5中有以下代码:

def blink(char):                       
    while 1:                               
        print (char, end = '\r')           
        time.sleep(0.5)                       
        print (' ' * 50, end = '\r')       
        time.sleep(0.5)        
  

我正在使用此函数使任何字符串在特定时间内闪烁

问题在于,当我在下面的代码中使用它时,它没有达到预期的效果:

while True:
    time.sleep(0.5)
    seconds += 1
    if seconds == 60:
        minutes += 1
        seconds = 0
    if minutes == 60:
        hours += 1
        minutes = 0
    if hours == 24:
        days += 1
        hours = 0
    blink ('Days: %s, Hours: %s, Minutes: %s, Seconds: %s' % (days, hours, minutes, seconds))
  

我正在使用这段代码来模拟'时间。问题是输出看起来像这样:

Days: 0, Hours: 0, Minutes: 0, Seconds: 1
  

这在我想要的同一行上继续闪烁,但问题是输出没有增加。

e.g Days: 0, Hours: 0, Minutes: 0, Seconds: 2 etc. 

1 个答案:

答案 0 :(得分:1)

blink(char)函数没有结束,因此while True循环将停留在第一个循环中。

尝试从闪烁功能中移除while循环,使其仅闪烁一次:

def blink(char):                       
    print(char, end = '\r')           
    time.sleep(0.5)                       
    print(' ' * 50, end = '\r')       
    time.sleep(0.5)

(或者创建一个单独的blink_once函数。)