【问题标题】:Format of input when doing a new printf in command line in python 3.3在 python 3.3 的命令行中执行新 printf 时的输入格式
【发布时间】:2014-02-10 10:24:08
【问题描述】:

我是 python 新手。我只是编写了一个服务器-客户端程序来实现多个客户端在一个房间里聊天,使用命令行接收对话并从类型中获取输入。问题出在客户端。当我打字时,如果新词来自另一个客户,我的打字就会被附加。就像我收到的数据被附加到我正在输入的内容中一样。

我在客户端阅读中使用的是:

print(myDate)

我用来在命令行上显示新对话的是:

myDate = input()

谢谢。

【问题讨论】:

    标签: python command-line


    【解决方案1】:

    你混淆了输入和输出。

    如果您使用的是多线程客户端,则写入stdout 输出的一个线程将与另一个在stdin 上接受输入并显示正在输入的内容与标准输入回显的线程混合。

    input() 调用键入的任何字符都会回显到stdout,并且会与同时写入stdout 的任何其他字符混合在一起。

    意味着input() 的实际返回值将包含除最终用户键入的内容之外的任何内容。

    您必须构建一个更复杂的基于终端的 UI,以保持 stdout 和输入回显分开。像curses 这样的东西可以工作,但这需要一些复杂性。

    【讨论】:

    • 明白了。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-20
    • 2015-09-07
    • 2011-03-25
    • 2013-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多