如何让用户从有限列表中选择输入?

2022-04-02 00:00:00 python user-input

问题描述

是否可以在不使用If循环的情况下要求在Python中的多个选项之间进行选择?

示例:

print "Do you want to enter the door"
raw_input ("Yes or not")

并且用户只能在选项之间进行选择。


解决方案

如果您需要经常这样做,有一个方便的库可以帮助您轻松实现更好的用户体验:inquirer

免责声明:据我所知,如果没有一些黑客攻击,它将无法在Windows上运行。

您可以使用pip:

安装查询器
pip install inquirer

示例1:多项选择

Inquirer的功能之一是允许用户使用键盘箭头键从列表中进行选择,而不需要他们写下答案。这样,您可以为您的控制台应用程序实现更好的用户体验。

以下是documentation中的一个示例:

import inquirer
questions = [
  inquirer.List('size',
                message="What size do you need?",
                choices=['Jumbo', 'Large', 'Standard', 'Medium', 'Small', 'Micro'],
            ),
]
answers = inquirer.prompt(questions)
print answers["size"]

示例2:是/否问题:

对于像您这样的"是/否"问题,您甚至可以使用询问者的确认:

import inquirer
confirm = {
    inquirer.Confirm('confirmed',
                     message="Do you want to enter the door ?" ,
                     default=True),
}
confirmation = inquirer.prompt(confirm)
print confirmation["confirmed"]

其他有用链接:

Inquirer's Github repo

相关文章