Python代码由于未知原因忽略if-else语句



嗨,我正在尝试制作一个python脚本,该脚本将执行谷歌搜索,无论是否使用您根据关键字选择的网站。然而,即使网站变量为空,我的脚本也不会忽略搜索操作。相反,它只是关闭了窗口。我真的是Python的新手,所以如果有人能在这个问题上推动我朝着正确的方向前进,我会非常感激。

from googlesearch import search
print("Results including the websites you picked:")
if website1 != "":
for y in keyword_list:
for i in search(website1+y,  tld='com', lang='en', num=1,  start=0, stop=1, pause=2.0):
print (i)
else:
print("-None")
if website2 != "":
for y in keyword_list:
for i in search(website2+y,  tld='com', lang='en', num=1,  start=0, stop=1, pause=2.0):
print (i)
else:
print("-None")
if website3 != "":
for y in keyword_list:
for i in search(website3+y,  tld='com', lang='en', num=1,  start=0, stop=1, pause=2.0):
print (i)
else:
print("-None")
if website4 != "":
for y in keyword_list:
for i in search(website4+y,  tld='com', lang='en', num=1,  start=0, stop=1, pause=2.0):
print (i)
else:
print("-None")
if website5 != "":
for y in keyword_list:
for i in search(website5+y,  tld='com', lang='en', num=1,  start=0, stop=1, pause=2.0):
print (i)
else:
print("-None")
input("press ENTER to continue")
print("Results not including the websites you picked:")
for y in keyword_list:
for i in search(y,  tld='com', lang='en', num=1,  start=0, stop=1, pause=2.0):
print (i)
input("press ENTER to exit")

我对python也相对陌生,对堆栈溢出也非常陌生,所以我不知道我是否能提供很多帮助。

我试着运行你的代码,结果出现了以下错误:ModuleNotFoundError:没有名为"谷歌搜索"的模块

我不确定这是不是和你发生的错误一样,或者我的python版本是否太过时了,但也许可以试着检查一下你的资本。

此外,也许可以尝试使用elif而不是else,因为我不确定是否可以在一行中有多个else语句。

所以不是

else:
print("-None")
if website2 != "":
for y in keyword_list:
for i in search(website2+y,  tld='com', lang='en', num=1,  start=0, stop=1, pause=2.0):
print (i)

试着做

elif website2 != "":
print("-None")
for y in keyword_list:
for i in search(website2+y,  tld='com', lang='en', num=1,  start=0, stop=1, pause=2.0):
print (i)

由于我在开头提到的错误消息,我不知道使用elif语句而不是else语句是否有效,也不知道我的答案是否有任何帮助。

我还有一个链接,链接到一个非常有用的网站,用于可视化代码执行,这对我有很多帮助,尽管它对很多事情都不起作用:http://www.pythontutor.com/visualize.html#mode=edit

祝你的代码好运,希望我所说的能有所帮助!

这里是代码的简化版本,它添加了一些调试并删除了所有的复制+粘贴。添加的print将显示什么是keywordswebsites;我怀疑你会发现其中一个是空的,这就是为什么你的循环都没有做任何事情。

from googlesearch import search
websites = [website1, website2, website3, website4, website5]
# Print websites and keywords for debugging.
print(f"Websites: {websites}")
print(f"Keywords: {keywords}")

def print_search_results(website: str) -> None:
"""Loop over all keywords and show results on the given website."""
for keyword in keyword_list:
for result in search(
website + keyword,
tld='com',
lang='en',
num=1,
start=0,
stop=1,
pause=2.0
):
print(result)

print("Results including the websites you picked:")
for website in websites:
if website:
print_search_results(website)
else:
print("-None")
input("press ENTER to continue")
print("Results not including the websites you picked:")
print_search_results("")
input("press ENTER to exit")

最新更新