gpt4 book ai didi

python - 防止 Python 显示输入的输入

转载 作者:行者123 更新时间:2023-12-03 22:36:16 24 4
gpt4 key购买 nike

在 Python 中,当我通过终端中的 raw_input 更改变量的值时,它会写一个新行来说明其新值。我想知道是否有办法避免这种情况,因为在用户输入之后立即有一个使用之前接收到的值的打印功能。最后,用户将获得两个值:原始值和修改值,而就我的程序而言,他只需要查看修改后的值。

我使用 IDLE 编写脚本,然后在终端中执行它们。

更新

一个简单的例子如下。输入是字符串“Hello”,输出应该是“Me: Hello”。在最终结果之前应该没有“你好”。

a = raw_input()
print ("Me: " + a)

并且输出应该只是
Me: Hello

而不是
Hello
Me: Hello

最佳答案

我知道这是一个迟到的答案,但这里有一个 Python 2+3 解决方案(有一个小的改进):

prompt_demo.py :

# coding: utf-8
from __future__ import absolute_import
from __future__ import print_function

import io
import sys

import six.moves


def prompt(msg):
print(msg, end=u'')
orig_out = sys.stdout
try:
sys.stdout = io.StringIO()
return six.moves.input(msg)
finally:
sys.stdout = orig_out


if __name__ == '__main__':
text = prompt(u"Give me input: ")
print(u"Do you mean '{0}'?".format(text))
  • 此解决方案使用 io.StringIO ,这是 Python 2+3 兼容的。
  • 它还使用 six库向后移植 raw_input函数(在 Python 3 中更名为 input)。
  • try ... finally输入过程中出现异常的解决方案更好:它恢复sys.stdout的原始值.

  • 我还想指出 Click 中提供的不错的解决方案图书馆。这是一个演示:
    import click

    if __name__ == '__main__':
    text = click.prompt(u"Give me input: ", prompt_suffix='')
    click.echo(u"Do you mean '{0}'?".format(text))

    请参阅有关 click.prompt 的文档.

    关于python - 防止 Python 显示输入的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24087290/

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