当我有这段代码时
input('Write your name: ')
您可以在该字符串后面写下您的姓名。
>>>Write your name: My name
但是,如何在输入结束时显示某些内容?
>>>Write your name: (Name)
>>>Write your name: (Name Name)
>>>Write your name: (Name Name Name)
所以无论你写什么,')'你在写作时会出现角色吗?
答案 0 :(得分:2)
我建议使用以下实现,每次使用msvcrt
读取单个字符并对其进行操作(如果遇到则处理Enter
和Backspace
):
import msvcrt
def input_between_strings (s, t):
res = ''
while True:
print(s, res, t, sep = '', end = ' \r')
curr = msvcrt.getch()[0]
if curr == 13:
print()
return res
elif curr == 8:
res = res[:-1]
else:
res += chr(curr)
根据您的情况,您可以将其称为
result = input_between_strings('>>> Write your name: (', ')')
答案 1 :(得分:-1)
一般来说,你不能做到这一点。
问题是用户通过点击Enter
向您的程序提交输入,这会在显示屏上添加换行符。如果显示屏上有垂直间距控制,则可以备份一条线,移到最后,然后继续输出。否则,您将失去运气......或者更糟糕的是,您必须为stdin
和stdout
编写自己的处理程序。