11

任何人都可以检查此代码并让我知道出了什么问题吗?

input_list = ["One", "Two", "Three"]
P1 = input("Select the input: ", input_list[0], input_list[1], input_list[2])
print (P1)
4

2 回答 2

16

使用 pythonraw_input是不可能给用户一个预选的列表来选择的。raw_input我们收集原始字符串。

更新:一个不错的解决方案是使用新的选择库:https ://github.com/wong2/pick它提供了一个小的诅咒接口来从给定的列表中选择我们的选择。得到它pip install pick。(更新:多选:是)

更新 2:还有另一个 python 库!https://curses-menu.readthedocs.org/en/latest/usage.html#getting-a-selection(没有多选)

为此目的制作了一个小型且未维护的库,picker(多选:是的)。

我想到的最简单的解决方案是使用 shell 工具:

  • dialog是 Debian 之类的发行版用来在控制台中呈现 UI 的,
  • selecta是一个用于 shell 的模糊文本选择器,所以它完全符合我们的需要,除了它是一个 ruby​​ 工具,
  • zenity (和yad-dialog)使构建简单的窗口变得非常容易(我们退出终端)。我可以用这个显示一个列表:

    zenity --list --text="a title" --column="first column" "first choice" "second choice"
    

    我们也可以多选。

  • 如果我们退出控制台,我们可以使用更完整的 GUI 工具,例如 gooey(它将带有命令行参数的 python 脚本转换为 GUI)甚至 Flexxx,但这是另一项工作。
于 2015-11-10T11:43:18.520 回答
-1

看看input函数的文档:https ://docs.python.org/2/library/functions.html#input

input显示提示并评估用户输入的数据,就像它是 Python 表达式一样。如果您只想收集用户输入的数据,请raw_input改用。您需要实现自定义逻辑以确保用户的输入与列表中的内容匹配。

于 2015-02-10T06:11:44.087 回答