如果将此代码运行几次迭代,您将看到一条打印消息后跟一条较短的打印消息,这将导致较长消息的某些部分保留在较短消息的输出中。
import random
import time
names = ['Mike', 'Alexander', 'Tom', 'Johnny']
numbers = list(range(0, 10))
while True:
name = random.choice(names)
number = random.choice(numbers)
print('\rName: {} - Number: {}'.format(name, number), end='', flush=True)
time.sleep(1)
编辑
我将代码更改为可解决问题的代码:
import random
import time
names = ['Mike', 'Alexander', 'Tom', 'Johnny']
numbers = list(range(0, 10))
msg_len = 0
while True:
name = random.choice(names)
number = random.choice(numbers)
msg = '\rName: {} - Number: {}'.format(name, number)
buffer = msg_len - len(msg)
buffer = buffer if buffer > 0 else 0
print(msg, end=' '*buffer, flush=True)
msg_len = len(msg)
time.sleep(1)
答案 0 :(得分:0)
它本身并没有留在输出中。您将在同一行上重新打印,但这不包括对先前输出的隐式清理。如果要删除它,则需要积极进行,例如用空格覆盖以前的行长。