我在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.
答案 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
函数。)