这是我的密码。我应该问用户他们最喜欢的书是什么,如果他们的书和我的书匹配,我就告诉他们,如果不匹配,我就说它不是我最喜欢的书。我遇到的问题是,当我把一个真实的语句放进去时,我的else语句就会打印出来。例如,如果我输入“简爱”,它会打印if语句“我们都喜欢简爱!”下面的else语句“这不是我最喜欢的5个,但伟大的选择!”你知道吗
这可能是一个简单的解决办法,我只是想,但我会感谢一些帮助请!你知道吗
(由于复制和粘贴,缩进可能已关闭)
def main():
bookList = ["Jane Eyre", "To Kill a Mockingbird", "My Antonia","Pride and Prejudice", "The Bible"]
book = input("What is your favorite book?")
for x in range(0,len(bookList)):
if (book == bookList[x]):
print("We both like " + book + "!")
else:
print("That is not one of my top 5 favorites, but great choice!")
print(" ")
print("Here are my top 5 favorite books!")
print(" ")
for n in range(0, len(bookList)):
print(str(n + 1) + " " + bookList[n])
main()
逻辑的
else
部分与if
没有任何关联,并且每次运行程序时都会执行。我相信您正在寻找一个函数,它将return
匹配的值。这还有一个额外的好处,即在找到匹配项时减少执行的迭代次数。它看起来像:然后,您需要调用已生成的函数,如:
把它放在一起会像:
示例输出如下所示:
逻辑:您需要检查用户的书籍是否在您的列表中,然后基于此,您需要打印相关消息。你知道吗
建议:
代码:这就是您要找的:
输出:
您需要一个
break
语句来提前退出loop
,以避免for
循环的else
子句:即使用户输入
The Bible
,break语句仍提前退出循环,即循环直到实际尝试将x
设置为下一个(不存在的)值时才知道它在最后一次迭代中。你知道吗也就是说,实际上不需要循环,只需要
in
操作符:另一方面,使用
enumerate
,您的第二个循环将更为惯用:相关问题 更多 >
编程相关推荐