Print() 到上一行?

问题描述 投票:0回答:5

我需要写入上一行的命令,例如 print() 而不 。

这是一些示例代码:

a=0

print("Random string value")

if a==0:
    print_to_previous_line("is random")

和输出

Random string value is random

我知道我可以像 print("string", value) 那样在同一个打印命令中使用多个不同的东西,但这不是答案。原因太混乱了,无法在这里解释,但是这个“打印到上一行”将是完全正确的答案。那么现实中会是什么样子呢?

python python-3.x
5个回答
38
投票

有时您无法控制前面的打印语句(或者这样做可能很困难)。这将:

  • 转到上一行(的开头):
    \033[F
  • 沿着
    ncols
    移动:
    \033[{ncols}G
  • 在那里开始打印。
print(f"\033[F\033[{ncols}G Space-lead appended text")

我还没有找到一种方法可以转到上一行的“末尾”,但是您可以指定一个值

ncols
,该值大于上一行的长度。如果它比前一行,您最终将覆盖那里的内容。


36
投票

在 Python 3 中,您可以通过将

end=""
提供给
print()
来抑制自动换行:

print("Random string value", end="")
if a==0:
    print(" is random")
else:
    print()

请参阅如何在没有换行符或空格的情况下打印?


3
投票

我建议使用 print 语句,就像这样

print("This is a text",end=" ")

end=" "
表示该字符串不是“完整的”,下一个打印语句需要位于同一行。字符串
" "
意味着,它应该在该字符串和下一个打印语句中的字符串之间留一个空格。或者,您也可以使用
end=""
。 我希望这有帮助!


2
投票

我建议先打印这样的声明:

print("Some stuff here", end=" ")

然后我会使用这样的 if 语句:

if stuff:
     print("Text you want displayed on same line")
else:
     print("")
     print("Text you want displayed on next line")

1
投票
def Fib(n):
    a,b = 0,1
    c=','
    while(a<n):
       print(a, end='')   # Way to print in same line
       a,b = b, a+b
       if a<n:
         print(c, end=',') # Way to ensure keep printing in same line
Fib(1000)
© www.soinside.com 2019 - 2024. All rights reserved.