如何在与input()函数相同的行上打印字符串?

时间:2013-08-01 17:18:33

标签: python input python-3.x

对于很多人来说,这看起来有点愚蠢或明显,但是如何在同一行输入输入后打印字符串?

我想要做的是询问用户他们输入输入的问题。在他们按下回车后我想要打印一个文本选择,但在之后输入,而不是下一行。

目前我正在做以下事情以进行常规输入/输出:

Example = input()
print("| %s | Table1 | Table2 | Table3 |" % (Example))

哪个输出:

INPUT
| INPUT | Table1 | Table2 | Table3 |

然而,我想得到的只是:

| INPUT | Table1 | Table2 | Table3 |

感谢您的时间。

4 个答案:

答案 0 :(得分:1)

根据我的理解,您希望用户的输入被程序的输出替换。所以你需要的是在打印之前删除一些字符。我认为这篇文章包含了你想要的答案:

How to overwrite the previous print to stdout in python?

编辑: 从评论中,也许您可​​以使用此解决方案,它似乎“苛刻”但可以完成这项工作:

remove last STDOUT line in Python

答案 1 :(得分:1)

如果您想保持屏幕为空,并控制用户每次输入用户输入时显示的内容,您可以非常轻松地清除屏幕,然后立即打印

import os
os.system("cls") #if you're on windows, for linux use "clear"

这是一个例子

Example = input()
os.system("cls")
print("| %s | Table1 | Table2 | Table3 |" % (Example))

答案 2 :(得分:1)

使用end参数,因此在输入函数中键入文本后,在后面输入一个end =“”。像这样:

                           b=input("Hi a random example.", end=" ")
                           print("This is on the same line.")

然后它将打印在同一个但它必须只是参数结束而没有别的。

答案 3 :(得分:0)

你看过getpass了吗?它读取输入而不显示用户键入的字符(如密码)。该方法的第一个参数是向用户显示的提示,它看起来像你想成为“”(空字符串)。试试这个:

from getpass import getpass
Example = getpass("")

print("| %s | Table1 | Table2 | Table3 |" % (Example))

你应该得到你想要的输出。祝你好运!

修改

尽管如此,您仍然可能会在用户输入输入的位置找到一个空白行。这可能与否可能不符合您的要求,但我认为它比原始帖子中的步骤更接近。