首页 > 解决方案 > 防止python在用户输入后显示用户输入的输入行(他应该能够看到他在输入什么)

问题描述

在 python 中是否可以删除用户的输入行?例如:

msg = input("")
print("User: "+msg)

输出(comp):

Hey
User: Hey

输出(我想要):

User: Hey

还有一个与此非常相似的问题,但它对我不起作用..... 阻止 Python 显示输入的输入

更新:一些细节,我想在打印之前检查用户输入,我什至有一个线程在同一个文件中运行,它以随机间隔打印语句。(此代码实际上是视频游戏聊天的一部分)

标签: pythonio

解决方案


写吧:

print("User: "+ input(""))

更新:如果要存储输入,只需执行以下操作:

print("User: ", end='')
msg = input("")

print() 函数将 "\n" 放在字符串的末尾,因此通过将 "\n" 替换为 "" 我们可以防止 python 跳转到下一行,并且用户可以在打印文本 "User:" 之后写入。


更新 2:您可以为您的程序构建一个用户界面,它使您的工作变得如此简单。但是,如果您想在控制台上运行程序,最简单的方法是将所有打印的字符串存储在控制台中,然后每次用户输入 a 时清除控制台msg,然后打印存储的字符串。现在您有了未在控制台中打印的味精,因此您可以对它做任何您想做的事情,然后将其打印为print('User: ' , msg).

清除控制台:

import os

clear = os.system('cls') #for Windows
clear = os.system('clear') #for Linux

你可以写清楚,clear = lambda: os.system('cls')并随时使用它clear()。但它返回 0 并在您的控制台中打印一个“0”。

一个完整的例子:

import os

def clear():
    dummy_var = os.system('cls')

stored_string = [f'stored {i}' for i in range(10)]

for txt in stored_string:
    print(txt)

msg = input("")

clear()

for txt in stored_string:
    print(txt)

print('User: ', msg)
stored_string.append('User: ' + msg)

运行此示例并查看结果。


推荐阅读