我是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.")
我想对其进行设置,以便在输入中输入“ How to ...”时开始谷歌搜索,输入中是否包含“ who is”或“ who was”以在Wikipedia上进行查找如果不满足任何条件,则说明该命令尚未执行。问题是,如果满足前两个条件,程序将按预期工作,如果我使用一些随机词尝试使其他程序正常工作,它只会给我维基百科建议和一些错误:“ ... \ AppData \ Local \程序\ Python \ Python37 \ lib \ site-packages \ wikipedia \ wikipedia.py:389:UserWarning:未明确指定解析器,因此我正在为此系统使用最佳的HTML解析器(“ html.parser”)。通常这不是问题,但是如果您在其他系统或不同的虚拟环境中运行此代码,则它可能使用不同的解析器并且行为不同。“
答案 0 :(得分:3)
"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
答案 1 :(得分:1)
elif语句在这里检查两个条件。
“ who is”(真人),因为字符串为真,因此评估为真。就像它不是null一样,它返回true。
“谁是”命令中的内容,这是您要执行的操作的一部分。
您需要将它们两者合并在一起,否则会由于真实字符串而始终返回true。像这样:
elif "who is" in command or "who was" in command: