使用相同名称打印多个数据库条目

时间:2017-10-01 04:15:23

标签: python loops

抱歉,我不太清楚如何说出这个问题。 我正在建立一个用于烹饪等的草药数据库,并使用python脚本来搜索数据库。

基本上我在数据库中有多个具有相同名称或类似名称的条目(例如西伯利亚人参和人参)。我想打印出所有具有名称的条目(例如人参),但我不确定如何。

到目前为止,这是我的代码:

1 collection)\r\n   at System.Linq.Enumerable.ToList[TSource](IEnumerable

输出只显示第一个包含药草(人参)的条目,但是我希望显示所有名称中包含其名称的条目。
如果这个问题已经得到回答,或者我没有正确地表达,请道歉。

1 个答案:

答案 0 :(得分:0)

看起来你正在迭代你的记录,当你找到一个匹配你的条目时,你就会突破循环并立即打印出来。

您可能想要做的事情是创建一个printHerbs函数,该函数接收记录数组并在找到它时打印它,而不是破坏循环。

如果它们到达循环的末尾也没有找到任何未找到的显示。它可能看起来像这样:

herb=input("Herb: ")

database=open("db.txt")

def printHerbs(record):
    print(record[0]) 
    print(record[1]) 
    print(record[2]) 
    print(record[3])
    print('')

found = False;
for line in database:
    record = line.split('|')
    if herb.lower() in record[0].lower():
        found = True
        printHerbs(record)

if found == False:
    print("Herb not found in database")

此外,如果您尝试匹配,如果字符串是另一个字符串的子字符串,您可以使用:

if "Ginsing" in "Ginsing Tea":
    print("Found")

.lower()方法将确保两个字符串在比较时都是小写的。