Я недавно нашел этот код, но изо всех сил пытался разобраться, как он работает. «111.txt» - это текстовый файл с строками списков, где первая часть списка на каждой строке является решением, а соответствующие слова в этом списке являются ключевыми словами, связанными с этим решением. Я понимаю большую часть его, кроме строки 8 (solutions[i[-1]] ...
). Я искал разные модули, но я до сих пор не понимаю, что делает эта строка и как она работает. Я довольно новичок в использовании Python, поэтому я по-настоящему ценю простое объяснение этой строки, если это возможно.Извлечение первого слова в текстовый файл, а затем соответствующие слова?
Заранее благодарен!
questionbank = []
with open ('111.txt') as questions:
for line in questions:
questionbank.append(line.strip().split(','))
solutions = {}
for i in questionbank:
solutions[i[-1]] = i[0:len(i)-1]
def phone_problem():
n = 2
while n <3:
problem = input("Phone problem?")
for d,v in solutions.items():
if any(word in problem for word in v):
print(d)
n = 4
else:
continue
phone_problem()
Пример "112.txt":
put your phone is rice, wet, damp, water, puddle
replace you screen, screen, crack, smash, shatter...
UPDATE: Я добавил в свой код, но он по-прежнему does't выход раствора. Он просто продолжает запускать цикл while независимо от того, что я печатаю как проблему. Я действительно не знаю, почему, но это может быть связано с тем, когда вы определили решение.
import webbrowser,time
url = "https://www.google.co.uk/webhp?hl=en&sa=X&ved=0ahUKEwjNuLiL1vHRAhVjD8AKHdFEAiEQPAgD&gws_rd=cr&ei=zUiTWKKpF8P_UoSambgO#hl=en&q="
problem = input("What is the problem with you device?")
split = problem.split(" ")
keyList = []
def other():
print("no solution")
questionbank = []
with open ('111.txt') as questions:
for line in questions:
questionbank.append(line.strip().split(','))
# the following line are probably the source of the problem(up to calling the phone_problem function)
solutions = {question[0]:question[1:] for question in questionbank}
def phone_problem():
while True:
for solution, key_words in solutions.items():
if any(word in problem for word in key_words):
print(solution)
return
phone_problem()
if keyList == []:
with open("counter.txt", "r") as file:
for lines in file:
number = lines[0]
file.close()
text_file = open("help.txt", "w")
text_file.write(str(int(number)+1))
text_file.write("\n{} {} {} {} {}".format(number,devType,brand,device,problem))
text_file.close()
other()
keyList = list(set(keyList))
for i in keyList:
print("Solution:",i)
Пожалуйста, добавьте образец ввода от 111.txt – ppasler