如何在两个字符串之间输入文字?

时间:2017-07-19 23:49:54

标签: python

当我有这段代码时

input('Write your name: ')

您可以在该字符串后面写下您的姓名。

>>>Write your name: My name

但是,如何在输入结束时显示某些内容?

>>>Write your name: (Name)
>>>Write your name: (Name Name)
>>>Write your name: (Name Name Name)

所以无论你写什么,')'你在写作时会出现角色吗?

2 个答案:

答案 0 :(得分:2)

我建议使用以下实现,每次使用msvcrt读取单个字符并对其进行操作(如果遇到则处理EnterBackspace):

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向您的程序提交输入,这会在显示屏上添加换行符。如果显示屏上有垂直间距控制,则可以备份一条线,移到最后,然后继续输出。否则,您将失去运气......或者更糟糕的是,您必须为stdinstdout编写自己的处理程序。