在字典中使用询问者

Using inquirer in a dictionary

我正在尝试制作一本从用户那里获取输入的字典。我目前的代码是(还远远没有完成)

person = {
  "name": str(inp("Enter your name: ")),
  "age": int(inp("Enter your age: ")),
  "gender": # Help
}

好的,所以我也用查询器写了一个小代码,给出了两个选择:

questions = [
  inquirer.List('gender',
                message="What gender are you?",
                choices=['Male', 'Female'], ),
]
answers = inquirer.prompt(questions)

这会在控制台中为用户提供 2 个备选方案。男性和女性。 但是我如何才能让我的性别代码与“性别”元素相关联呢?

因为你的 person 对象是一个字典,你可以像这样设置 gender

person["gender"] = new_value

使用 inquirer.prompt() 函数 returns 似乎是一个字典,其中键(如您个人字典中的性别)是问题(我想对你来说是 gender)。在那种情况下,您可以 link 使用我们的新知识编写以前的代码并编写如下内容:

person["gender"] = answers["gender"]

如果你想把上面的写得更简洁,你可以试试这样:

questions = [
  inquirer.List('gender',
                message="What gender are you?",
                choices=['Male', 'Female'], ),
]
answers = inquirer.prompt(questions)

person = {
  "name": str(inp("Enter your name: ")),
  "age": int(inp("Enter your age: ")),
  "gender": answers["gender"]
}

当然,如果您想保留问题的顺序,您可以像这样简单地提取姓名和年龄的问题:

name = str(inp("Enter your name: "))
age = int(inp("Enter your age: "))
questions = [
  inquirer.List('gender',
                message="What gender are you?",
                choices=['Male', 'Female'], ),
]
answers = inquirer.prompt(questions)

person = {
  "name": name,
  "age": age,
  "gender": answers["gender"]
}