我有一个鸡肉的文本文件,鸡肉的配方为1号线和牛肉,牛肉配方为2号线。
如果用户只输入牛肉或鸡肉,我可以搜索牛肉或鸡肉配方。但是如果用户输入“我想搜索牛肉食谱”或者鸡肉,我想搜索牛肉食谱....
我正在尝试使用.split,但并不完全在那里。以下是我的代码。
while True:
food = input ("What food? ")
file = open("meals.txt", "r")
line = file.readline()
data = line.split(",")
if data[0] == food:
print(data[1])
file.close()
答案 0 :(得分:0)
你会想要制作"食物"将项目放入列表中,并对其进行迭代。
food_type = food.split()
for type in food_type:
if type == 'beef':
#do something
elif type == 'chicken':
#do something else
答案 1 :(得分:0)
理想情况下,您应该使用elasticsearch。但是,如果你想进行字符串解析。
while True:
food = input ("What food? ")
food_tokens = food.split()
file = open("meals.txt", "r")
line = file.readline()
data = line.split(",")
for food_token in food_tokens:
if data[0] == food_token:
print(data[1])
file.close()
这会检查单词" beef"和#34;鸡肉"如果输入包含它们,则打印出您想要的数据。
答案 2 :(得分:0)
首先,您需要某种有效搜索字词列表,在本例中为keywords = ['beef', 'chicken']
。否则,如果有人要搜索鸡肉配方'你可能也会受到关注'配方的影响。在一个美味的牛肉配方'。然后,您会在用户输入中找到所有有效的关键字,然后将有效的关键字与膳食匹配:
keywords = ['beef', 'chicken']
userinput = input("what food? ")
# generate a list of meals
with open("meals.txt", "r") as file:
meals = file.readlines()
for word in userinput.split():
if word in keywords:
for meal in meals:
if word in meal:
# yay found one, store it or something
答案 3 :(得分:0)
您可以使用正则表达式:
import re
foodType = re.search('(beef|chicken)', food)
if foodType is None:
print 'beef or chicken, make your choice.'
else:
print foodType.group(1)
"""whatever you meant to do with beef or chicken instead.
foodType.group(1) is 'chicken' or 'beef'
"""
如果foodType为None,则表示您的用户根本没有输入鸡肉或牛肉。否则,foodType.group(1)设置为鸡肉或牛肉,无论输入哪一个。我只是打印,但从那里你可以用它做任何你想做的事。
答案 4 :(得分:0)
file = open("txt", "r")
all_lines = file.readlines()
while True:
food = raw_input ("What food? ")
for line in all_lines:
data = line.split(',')
if data[0] == food:
print "Found %s" % food
print "data[1] is %s" % data[1]
break
else:
print "Not found %s" % food