我是Python的新手,我想做一个“助手”来掌握这门语言的窍门。如果if语句不满足,elif总是开始,你知道如何修复它吗
我已经试过换成“如果”,但没用
import wikipedia
def getSummaryFromWikipedia(command):
return wikipedia.summary(command, sentences=1)
def loopTest():
command = input("Command: ")
if "how to" in command:
googleSearch(command)
elif "who is" or "who was" in command:
say(getSummaryFromWikipedia(command))
else:
print("Command not yet implemented.")
我想把它设置成这样,如果“如何…”在输入中,它会启动一个谷歌搜索,如果输入中有“谁是”或“谁是”在维基百科上查找,如果没有一个条件得到满足,它只会说命令还没有实现。问题是,如果满足前两个if,程序就会按预期工作,如果我使用一些随机词尝试让else工作,它只会给我wikipedia建议和一些错误:“…\AppData\Local\Programs\Python\Python37\lib\site packages\wikipedia\wikipedia.py:389:UserWarning:没有显式指定解析器,所以我使用了这个系统中最好的HTML解析器(“HTML.parser”)。这通常不是问题,但如果您在另一个系统上或在不同的虚拟环境中运行此代码,它可能会使用不同的解析器,并且表现不同。”
"who is" or "who was" in command
将始终为true,因为它的计算结果为"who is" or ("who was" in command)
,而非空字符串的计算结果为True
。你真正想要的是"who is" in command or "who was" in command
elif语句在这里检查两个条件
“谁是”这个词的计算结果就像字符串一样真实。如果它不为null,则返回true
“谁是”指挥者,这是你要做的一部分
您需要在一个检查中将它们组合在一起,否则由于truthy字符串,它将始终返回true。像这样:
相关问题 更多 >
编程相关推荐