如何使用户预先填充的输入进行编辑然后批准?Python



在我的脚本中,我想在句子(i(的正确或错误拼写(i(上要求用户输入,并在必要时允许用户进行更正。我只是在Mac上的Jupyter笔记本中运行此操作。(我们不知道哪个句子包含错误,哪些句子没有。(这很简单。但是,我想在提示下给用户提供句子 i 作为可编辑的输入。我试图通过在脚本中的"输入"行中添加变量来实现这一目标,但这不起作用。我找不到这个问题的积极答案。也许有人知道这是可能的还是不可能的?

这是脚本。

    i = "Today, John toak the bus to school."
    print(i)
    print(f"Is this sentence spelled correctly? No = 0, Yes = 1")
    choice = input("> ")
    if choice == "1":
        return i
    else choice == "0":
        spelling = input("> ", i) # this does not work. Is there a way?
        return spelling

假设脚本为用户提供以下行:

John wend to school by bus today.
Is this sentence spelled correctly? No = 0, Yes = 1

如果用户选择0(= no(,我希望该句子已经在提示符处出现,以便用户可以编辑它(只需将'Wend'更改为" got''''''''''''''''''''(再次键入整个句子(有新错误的风险(:

 |-----------------------------------------|
 | > John wend to school by bus today.     |
 |-----------------------------------------|

有人知道这是否可能吗?

我们可以在tkinter窗口中执行此操作。这可能不是您要寻找的,而是使用标准库的解决方案。这是一些示例代码,它可以创建一个带有默认字符串的窗口。您可以编辑字符串。按下返回键时,读取窗口中的字符串。

from tkinter import Tk, LEFT, BOTH, StringVar
from tkinter.ttk import Entry, Frame

class Example(Frame):
    def __init__(self, parent):
        Frame.__init__(self, parent)
        self.parent = parent
        self.initUI()
    def initUI(self):
        self.parent.title("Entry")
        self.pack(fill=BOTH, expand=1)
        self.contents = StringVar()
        # give the StringVar a default value
        self.contents.set('test')
        self.entry = Entry(self)
        self.entry.pack(side=LEFT, padx=15)
        self.entry["textvariable"] = self.contents
        self.entry.bind('<Key-Return>', self.on_changed)
    def on_changed(self, event):
        print('contents: {}'.format(self.contents.get()))
        return True

def main():
    root = Tk()
    ex = Example(root)
    root.geometry("250x100+300+300")
    root.mainloop()

if __name__ == '__main__':
    main()

相关内容

  • 没有找到相关文章

最新更新