gpt4 book ai didi

python - 基于对多个问题的回答的不同输出(Python)

转载 作者:行者123 更新时间:2023-11-28 17:37:44 25 4
gpt4 key购买 nike

我正在尝试创建一个问卷,其中询问多个是/否问题,在收到所有回复后,根据提供的答案组合显示不同的输出。

例如,如果有三个问题,有人回答不,不,然后是,他们会看到一个输出(我将创建一个简单的句子),但如果其他人回答是,不,是,他们会最后看到不同的回应。我不想在每个单独的问题之后提供反馈,只有在所有问题都得到回答后才提供反馈。

我试图使用 if/else,但这似乎并没有达到我的目的(至少我是这样做的,但我是 Python 的新手!)。对不起,我没有太多的工作要做,但我正在努力学习,并且在谷歌搜索后一直在谷歌搜索无济于事。谢谢!!

编辑:这是我一直在尝试的。有什么办法可以扩展吗?我所做的是基于我对 Python 的有限了解。

female = raw_input("Are you female?")
over18 = raw_input("Are you over 18?")
shopping = raw_input("Do you like to go shopping?")

然后我就知道怎么做了

if female=="yes":
print "blahblah"
else:
print "something else"

但我不知道如何使用所有三个响应来为将要打印的内容做出贡献。我也不知道如何将每个问题限制为仅是/否答案。

编辑 2:

我可以使用如下所示的多个 if 语句吗?我知道如何仅使用一个响应来更改输出,但只有一个输出具有三个影响只会让我陷入困境。

female = raw_input("Are you female?")
over18 = raw_input("Are you over 18?")
shopping = raw_input("Do you like to go shopping?")
if (female=="yes" and over18=="yes" and shopping=="yes"):
print "1"
if (female=="yes" and over18=="yes" and shopping=="no"):
print "2"
if (female=="yes" and over18=="no" and shopping=="no"):
print "3"
if (female=="yes" and over18=="no" and shopping=="yes"):
print "4"
if (female=="no" and over18=="yes" and shopping=="yes"):
print "5"
if (female=="no" and over18=="yes" and shopping=="no"):
print "6"
if (female=="no" and over18=="no" and shopping=="yes"):
print "7"
if (female=="no" and over18=="no" and shopping=="no"):
print "8"
else:
print "invalid"

看起来它的功能相对较好,但无论我使用"is"和“否”的什么组合,它都会给我正确的数字输出,但同时也会说“无效”。但是,如果我去掉 else,它不会将答案限制为"is"或“否”,对吗?

最佳答案

我想到的一种方法是制作一个由是/否响应的元组作为关键字的字典 - 每个问题一个。因此,如果您有 2 个问题 - 1 和 2,您将有 4 种可能的结果。 YY、YN、NY 和 NN。您可以创建一个字典,其中包含与这些对应的键。所以像

def ask_question(qn):
resp = raw_input(qn)
if resp.lower() in ["yes", "y"]: # Handles Yes, yes etc.
return True
else:
return False

responses = {(True, True) : "Old Male",
(True, False) : "Young Male",
(False, True) : "Old Female",
(False, False) : "Young Female"}

answers = []
questions = ["Are you male?", "Are you over 18?"]
for q in questions:
answers.append(ask_question(q))

print responses[tuple(answers)]

由于实际答案是数据(而不是代码),您可以从可以轻松编辑/生成的文件中读取这些答案。这是一种比庞大而多毛的 if/elif/else block 更方便的管理方式。

关于python - 基于对多个问题的回答的不同输出(Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28710472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com