variableName=["display","screen","sound""audio"]
fileName=["PPP", "Abc"]
P1="PPP"
d="display"
s="screen"
ss="sound"
a="audio"
d=P1
loop=True
def CH(variableName, fileName, loop):
while loop==True:
Up=input("What is your problem?\n")
if (variableName) in Up.lower():
file = open(fileName + ".txt", "r")
whole= file.read()
print(whole)
file.close()
loop=False
else:
loop=True
continue**
CH(variableName, fileName, loop)
我正在尝试创建一个函数来读取您的输入并使用关键字给出答案。但错误"" TypeError:' in'需要字符串作为左操作数,而不是列表""不断上升,我似乎可以解决它
答案 0 :(得分:2)
我认为你的in
陈述的逻辑是向后的。你应该检查
if Up.lower() in variableName:
不是相反。
答案 1 :(得分:0)
如果variableName是一个列表,您可以使用.__contains__()
检查成员身份。
尝试将if语句更改为if variableName.__contains__(Up.lower):
答案 2 :(得分:0)
使用
if (variableName) in Up.lower():
....测试字符串tuple
中是否存在(variableName)
Up.lower()
。
由于variableName
实际上是一个字符串列表,根据您要实现的目标,您可能希望使用以下其中一个:
if any(s in Up.lower() for s in variableName):
if all(s in Up.lower() for s in variableName):
any()
中True
的{{1}} any
位于s
,variableName
选项将返回Up.lower()
。 all
中True
的{{1}} all
位于s
,variableName
选项将返回Up.lower()
。