Python3在多行上打印更新

2024-05-14 00:59:57 发布

您现在位置:Python中文网/ 问答频道 /正文

是否可以打印和更新多行? 这适用于一条线路:

print ("Orders: " + str(OrderCount) + " Operations: " + str(OperationCount), end="\r")

得到这个:(数字当然会更新,因为它在循环中)

^{pr2}$

我试过了:

print ("Orders: " + str(OrderCount) + "\rOperations: " + str(OperationCount), end="\r\r")

得到这个:(数字更新正确)

Operations: 300

查找两行更新如下:

Orders: 25
Operations: 300

而不是:

Orders: 23
Operations: 298

Orders: 24
Operations: 299

Orders: 25
Operations: 300

Tags: 数字线路endoperationsprintordersstrpr2
2条回答

\r是一个回车符,光标移动到行的开头(第0列)。从那里开始,写更多的文本会覆盖之前写的内容,所以最后只写最后一行(这行足够长,可以覆盖之前写的所有内容)。在

您需要\n,一个新行,它移动到下一行(并再次从第0列开始):

print ("Orders: " + str(OrderCount) + "\nOperations: " + str(OperationCount), end="\n\n")

与其使用str()+串联,不如考虑使用带有^{}的字符串模板:

^{pr2}$

请注意,您不能回退一行;如果您想使用\r回车来更新两行,那么您就没有机会直接打印了。您需要使用Curses切换到完整的终端控件,或者坚持将所有内容放在一行。在

如果你要走诅咒之路,那就要考虑到Windows兼容性充其量只是粗略的。在

您可能想要\n而不是{}。\r是“回车”,也就是“回到行的开头”,所以你在“订单”上打印“操作”。在

相关问题 更多 >