基本上我在数据库中有多个具有相同名称或类似名称的条目(例如西伯利亚人参和人参)。我想打印出所有具有名称的条目(例如人参),但我不确定如何。
到目前为止,这是我的代码:
1 collection)\r\n at System.Linq.Enumerable.ToList[TSource](IEnumerable
输出只显示第一个包含药草(人参)的条目,但是我希望显示所有名称中包含其名称的条目。
如果这个问题已经得到回答,或者我没有正确地表达,请道歉。
答案 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()方法将确保两个字符串在比较时都是小写的。