gpt4 book ai didi

python - 在python中使用回车和换行的正确方法

转载 作者:行者123 更新时间:2023-12-04 13:05:28 27 4
gpt4 key购买 nike

问题
在我用 python 编码的两年里,我在某个地方和某个地方遇到了这个问题,因此我想寻求正确的方法。你如何使它覆盖以前的打印,同时有换行符(通过返回或\n)。我已经尝试了我能找到的大多数答案,但是它只能完成我想要的工作之一。

测试模型

import time, sys

counter1 = 0
counter2 = 0
counter3 = 0

for i in range(5):
time.sleep(0.1)
counter1 += 1
counter2 += 1
counter3 += 1

#print method here!

尝试 1:
使用 """ 的多行 (f) 字符串和 \r
    print(f"""\r
Counter 1: {counter1}
Counter 2: {counter2}
Counter 3: {counter3}
""")
尝试 1 的输出:
Counter 1: 1
Counter 2: 1
Counter 3: 1


Counter 1: 2
Counter 2: 2
Counter 3: 2

..etc

尝试 2:
使用 \r 的普通 (f) 字符串和 \n
print(f"\rCounter 1: {counter1}\nCounter 2: {counter2}\nCounter 3: {counter3}")
尝试 2 的输出:
Counter 1: 1
Counter 2: 1
Counter 3: 1
Counter 1: 2
Counter 2: 2
Counter 3: 2
etc..

尝试 3:
使用 sys.stdout.write , \r\n
sys.stdout.write(f'\rCounter 1: {counter1}\nCounter 2: {counter2}\nCounter 3: {counter3}')
sys.stdout.flush()
尝试 3 的输出:
Counter 1: 1
Counter 2: 1
Counter 1: 2
Counter 2: 2
Counter 1: 3
etc..

尝试 4:
最后使用回车符( \r ):
print(f"Counter 1: {counter1}\nCounter 2: {counter2}\nCounter 3: {counter3}\n", end = "\r")
尝试 4 的输出:
Counter 1: 1
Counter 2: 1
Counter 3: 1
Counter 1: 2
Counter 2: 2
Counter 3: 2

尝试 5:
彼此分开打印,第一个具有 \r在它面前
print(f"\rCounter 1: {counter1}")
print(f"Counter 2: {counter2}")
print(f"Counter 3: {counter3}")
尝试 5 的输出:
Counter 1: 1
Counter 2: 1
Counter 3: 1
Counter 1: 2
Counter 2: 2
Counter 3: 2

最佳答案

回车不会撤消整个打印或任何内容,它只会将光标返回到当前行的第一列。想想回到左侧的打字机上的马车。如果您在回车之前有一个换行符,则光标将位于您刚刚打印的行下方的行的左侧。
为了做你想做的事情,并覆盖以前的行,你必须做一些事情,比如重新打印整个屏幕的行数,或者使用像curses这样的东西来为你做。

关于python - 在python中使用回车和换行的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69714211/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com