Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 输入调用后在同一行上输出_Python - Fatal编程技术网

Python 输入调用后在同一行上输出

Python 输入调用后在同一行上输出,python,Python,我想获取输入,然后在同一行上打印输出。这种尝试不起作用 while True: op = input("Input: ") print("\tOutput: " + op) 输出如下所示: Input: a Output:a Input: cat Output cat Input: 32 Output: 32 Input: a Output: a Input cat Output: cat Input: 32 Output: 32

我想获取输入,然后在同一行上打印输出。这种尝试不起作用

while True:
    op = input("Input: ")
    print("\tOutput: " + op)
输出如下所示:

Input: a
    Output:a
Input: cat
    Output cat
Input: 32
    Output: 32
Input: a     Output: a
Input cat    Output: cat
Input: 32    Output: 32
我希望它看起来像这样:

Input: a
    Output:a
Input: cat
    Output cat
Input: 32
    Output: 32
Input: a     Output: a
Input cat    Output: cat
Input: 32    Output: 32
这在Python中可能吗?这将需要覆盖一行输出,但我不知道这是否可能,或者如何做到

import **sys**
sys.stdout.write() #use
您可以使用“+”来压缩字符串,因为write函数只接受一个参数

要使用此函数结束任何行,您将使用“\n”

您可以使用“+”来压缩字符串,因为write函数只接受一个参数


要使用此函数结束任何一行,您将使用“\n”

您不能很容易地完成,尤其是跨平台。这是因为当你按下“回车”键时,它(令人惊讶!)是一个换行符

所以你要做的就是把光标向上移动一行。你可以在linux上用控制代码来实现这一点——我不知道如何在Windows上实现,但这可能会很尴尬

如果您使用的是Mac/Linux,请尝试以下操作:

move_back = '\033[F'

choice = ''
while choice != 'q':
    choice = input('Input: ')
    print('{move_back}Input: {input_} Ouput: {output}'.format(
        move_back=move_back,
        input_=choice,
        output=choice.upper(),
    ))

需要重新打印输入的原因是,光标从上一行的开头开始。如果您只是打印
输出:…
,那么它将覆盖已经存在的内容。有控制代码可以移动光标,但打印出您已经拥有的内容同样容易。

您无法轻松完成此操作,尤其是跨平台操作。这是因为当你按下“回车”键时,它(令人惊讶!)是一个换行符

所以你要做的就是把光标向上移动一行。你可以在linux上用控制代码来实现这一点——我不知道如何在Windows上实现,但这可能会很尴尬

如果您使用的是Mac/Linux,请尝试以下操作:

move_back = '\033[F'

choice = ''
while choice != 'q':
    choice = input('Input: ')
    print('{move_back}Input: {input_} Ouput: {output}'.format(
        move_back=move_back,
        input_=choice,
        output=choice.upper(),
    ))

需要重新打印输入的原因是,光标从上一行的开头开始。如果您只是打印
输出:…
,那么它将覆盖已经存在的内容。有控制代码可以移动光标,但打印出已有的内容同样容易。

这取决于stdout和stdin(默认输出和输入通道)的绑定。问题的关键是用户必须点击“回车”来提交输入,这通常绑定到CR/LF对。如果您的I/O设备已启用向后移动一行,则可以打印该字符,重新打印输入,然后打印输出


在不了解设备或其特性的情况下,我无法给出实际代码。检查您的友好邻域文档以获取适当的控制字符。

这取决于stdout和stdin(默认输出和输入通道)的绑定。问题的关键是用户必须点击“回车”来提交输入,这通常绑定到CR/LF对。如果您的I/O设备已启用向后移动一行,则可以打印该字符,重新打印输入,然后打印输出


在不了解设备或其特性的情况下,我无法给出实际代码。查看您的友好邻里文档以了解适当的控制字符。

如果您在Windows上,您可以使用Python模块:


尝试这个(或任何其他建议)时要小心。如果您使用的是IDE,这些命令可能无法在IDE的控制台中工作。尝试在标准的Windows
cmd.exe
控制台中运行代码,您应该不会有问题。

如果您在Windows上,您可以使用Python模块:


尝试这个(或任何其他建议)时要小心。如果您使用的是IDE,这些命令可能无法在IDE的控制台中工作。尝试在标准Windows
cmd.exe
控制台中运行代码,您应该会没事。

我想您误解了这个问题:OP希望接受输入,然后在与该输入相同的行上显示输出(处理后)。您尚未解决换行/换行的问题。我认为您误解了这个问题:OP希望接受输入,然后在与该输入相同的行上显示输出(处理后)。您还没有解决换行/换行的问题。这并不像您想象的那么容易,除了清除前一行并在其上书写,这里更不像您想象的那么容易,除了清除前一行并在其上书写,这里更不容易