我一直在學習Python,並且遇到了一些困難。我想製作一個用戶可以輸入句子的程序。程序然後將句子分開,並將單詞與列表進行覈對。如果在列表中找到任何單詞,則它會在文本文件中找到該單詞並打印該單詞所在的文本文件的行。從句子輸入中檢查關鍵字,然後在Python中檢查文本文件
到目前爲止,我有這樣的:
def getTakeaway():
list = ["pizza", "italian", "chinese", "indian"]
query = input("Please say what take away you'd like").lower()
if set(list).intersection(query.split()):
with open('takeaway.txt') as f:
for line in open('takeaway.txt'):
if query in line:
print (line)
break
else:
print("sorry not found")
getTakeaway()
用於輸入搜索時,它適用於單個單詞輸入如「比薩餅」,但是我得不到任何回報,如「我想比薩」。
在此先感謝。
編輯:我已經改變了代碼此基礎上給出的建議:
def getTakeaway():
list = ["pizza", "italian", "chinese", "indian"]
query = input("Please say what take away you'd like").lower()
query_words = set(list).intersection(query.split())
if query_words:
with open('takeaway.txt') as f:
for line in open('takeaway.txt'):
if query_words in line:
print (line)
break
else:
print("sorry not found")
getTakeaway()
,我得到這個錯誤: 如果QUERY_WORDS在行: 類型錯誤:「在」要求的字符串作爲左操作數,不設置
修改我的代碼: '高清getTakeaway(): 名單= [「比薩」, ()「意大利語」,「中國」,「印度語」] 查詢=輸入(「請說什麼帶走你想要的」)。如果QUERY_WORDS: 開放( 'takeaway.txt')爲f: 在開線( 'takeaway.txt'): 如果行QUERY_WORDS: 打印(線) 突破 其他: 打印(「對不起,沒有找到」) getTakeaway()' 和我得到這個錯誤: 如果QUERY_WORDS在行: 類型錯誤:「在」要求的字符串作爲左操作數,而不是設置 –
digitalfire
只要編輯原來的問題,這在這裏難以辨認 – poolie