python - 防止python在用户输入后显示用户输入的输入行(他应该能够看到他在输入什么)
问题描述
在 python 中是否可以删除用户的输入行?例如:
msg = input("")
print("User: "+msg)
输出(comp):
Hey
User: Hey
输出(我想要):
User: Hey
还有一个与此非常相似的问题,但它对我不起作用..... 阻止 Python 显示输入的输入
更新:一些细节,我想在打印之前检查用户输入,我什至有一个线程在同一个文件中运行,它以随机间隔打印语句。(此代码实际上是视频游戏聊天的一部分)
解决方案
写吧:
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)
运行此示例并查看结果。
推荐阅读
- javascript - 一个框架
中间空 - python - 如何保存 Youtube 频道中的每个网址?
- processing - 有人可以帮我在处理中修复我的 DDA 碰撞算法吗?
- bash - linux bash按'yymmdd'而不是'ddmmyy'列格式对文本文件进行排序,然后按时间排序,然后删除重复项
- python - 使用 scrapy 和 selenium 抓取静态 html 但一无所获
- java - 如何为我的 Java YAML-API 实现线程安全?
- sublimetext - Sublime Text 4 Terminus - 集成在面板视图中的多会话终端
- python - 我正在尝试创建这个评论机器人,它在其中评论并且评论不会自我重复
- wordpress - 如何设置树枝 | WordPress中ACF相关字段的项目数组中具有特定状态的长度变量?
- .htaccess - 如何在htaccess中传递子文件夹参数