gpt4 book ai didi

Python - 尝试在 IF 语句中使用列表值

转载 作者:行者123 更新时间:2023-12-01 04:29:56 24 4
gpt4 key购买 nike

我需要要求用户输入一个将与列表进行比较的问题。将显示匹配的单词,然后链接到选项菜单。我添加了下面的代码。我已经设法让程序搜索输入并在出现匹配项时返回查找列表中的单词。但是我不知道如何在 if 语句中使用结果,因为它不是字符串值。我知道要做到这一点有很长的方法,但是有没有一种简单的方法可以将“结果”更改为字符串值?

import re
question = input("Please enter your problem:")
find=["display","screen","battery"]
words=re.findall("\w+",question)
result=[x for x in find if x in words]
print (result)
if result in find:
print("Is your display not working?")
else:
print("Hard Luck")

抱歉,我忘了说比赛的结果将导致选择/打印不同的 if 语句。例如 - 如果“问题”使用“显示”一词,则将打印一条建议解决方案的 IF 语句,如果“问题”使用“屏幕”一词,则将打印 elif 来解决屏幕损坏的问题elif 'question'used 'battery' elif 解决方案为电池充电将被打印。问题是我无法将“结果”更改为要在 IF 语句中使用的 str 值。我无法检查 - 如果结果==“显示”..或者如果结果==“屏幕”..或者如果结果==“电池”...

最佳答案

如果您想要实现的目标是给定用户输入,则用户给出的用户中的任何单词是否也出现在 find 列表中。然后你应该检查结果列表是否为空。如果 result 列表为空,则意味着 find 中的任何单词都不存在于列表 words 中。示例-

if result:
print("Is your display not working?")
else:
print("Hard Luck")

请注意,空列表在 bool 上下文中被视为 False,因此您可以简单地执行 if result: ,如上所述。

<小时/>

更简单的方法是从一开始就创建并使用set.intersection()。示例-

import re
question = input("Please enter your problem:")
find=set(["display","screen","battery"])
words=re.findall("\w+",question)
result = find.intersection(words)
if result:
print("Is your display not working?")
else:
print("Hard Luck")

关于Python - 尝试在 IF 语句中使用列表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32522198/

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