0

我正在尝试制作一个从用户那里获取输入的字典。我当前的代码是(很久没有完成)

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

好的,所以我还用查询器编写了一个小代码,它提供了 2 个选择:

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

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

4

1 回答 1

1

由于您的 person 对象是一个字典,您可以gender像这样设置:

person["gender"] = new_value

对于inquirer,该函数似乎.prompt()返回一个字典,其中的键(如您的人字典中的性别)是问题的名称(我想对您来说应该是gender)。在这种情况下,您可以将之前的代码与我们的新知识联系起来,并编写如下内容:

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"]
}
于 2021-02-16T08:42:28.450 回答