Python:如何使用list作为用户输入的选择源?

2024-05-16 23:55:47 发布

您现在位置:Python中文网/ 问答频道 /正文

有人能检查一下这个密码并告诉我出了什么问题吗?

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

Tags: the密码inputselectonelistthreeprint
2条回答

使用python的raw_input无法向用户提供预选列表供选择。使用raw_input我们收集原始字符串。

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

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

有一个小型的、未维护的库是为这个目的而创建的,picker(multi-select:yes)。

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

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

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

    我们也可以选择多种选择。

  • 如果退出控制台,我们可以使用更完整的GUI工具,比如goey(它将带有命令行参数的python脚本转换为GUI),甚至Flexxxand others,但这是另一项工作。

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

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

相关问题 更多 >