Python 3.x Python3在循环中的同一行上打印
我试图连续打印超过1行。在2.7中,我可以使用Python 3.x Python3在循环中的同一行上打印,python-3.x,Python 3.x,我试图连续打印超过1行。在2.7中,我可以使用打印'\r',,这样每次都会覆盖上一行。在3.5+中,我读过如下建议:print('\r',end='')但是当循环中的前一步更长时,这会留下“悬空”字符 例如: for foo in ['55555', '333', '1']: print('\r', foo, end=' ') 导致 1 3 5 因为每一行都比下一行长一个结束空间 建议?只需计算覆盖最长字符串所需的空格数,并将其用作打印的的结尾 values = ['55555',
打印'\r',
,这样每次都会覆盖上一行。在3.5+中,我读过如下建议:print('\r',end='')
但是当循环中的前一步更长时,这会留下“悬空”字符
例如:
for foo in ['55555', '333', '1']:
print('\r', foo, end=' ')
导致
1 3 5
因为每一行都比下一行长一个结束空间
建议?只需计算覆盖最长字符串所需的空格数,并将其用作
打印的的结尾
values = ['55555', '333', '1']
end_spaces = ' '*max(len(x) for x in values)
for foo in values:
print('\r', foo, end=end_spaces)
我在2.7和3.5中得到了相同的行为<代码>\r
只将光标移动到行首,不覆盖任何内容。