2016-06-29 2 views
-1

이 코드는 작동하지만 텍스트 파일에서 두 가지 솔루션을 인쇄하고 싶습니다. 문제는 텍스트 파일에 두 줄을 인쇄하려고 할 때입니다. 키워드를 if 'word' == something then print과 함께 사용하면 두 줄을 인쇄하고 싶습니다. 어떤 도움을 주시면 감사하겠습니다. 나는 여러 가지 다른 것들을 시도했다.두 가지 솔루션을 추가하는 방법

problem = False 

while problem == False: 

    foo = open("solutions.txt","r") 

    print("What is wrong with your device?") 

    issue=input() 

    if (('wet' in issue) or ('water' in issue)): 
     solutions = foo.readlines() 
     print(solutions[0]) 
     problem = True 

    if (('cracked' in issue) or ('dropped' in issue)): 
     solutions = foo.readlines() 
     print(solutions[1]) 
     problem = True 
+3

코드를 텍스트로 게시하십시오! –

+0

https://stackoverflow.com/help/mcve – khajvah

+0

나는 당신이 무엇을 찾고 있는지 잘 모르겠습니다. 구체적인 예를 들려 줄 수 있습니까? 문제가 '분쇄'된 경우 해결책 [3]을 인쇄하거나 해결책 [3]을 인쇄하고 싶습니까? 예를 들어? –

답변

0

솔루션이 항상 고정되어 있으면 루프 외부에서 파일 열기 및 읽기를 이동해야합니다. 키워드와 솔루션 색인의 일치는 사전으로 수행 할 수 있습니다.

problem = False 

foo = open("solutions.txt","r") 
solutions = foo.readlines() 

Problemlistdict = {'wet':0, 'water':0, 'dropped':1, 'sim card':2} #etc..etc 

while problem == False: 

    print("What is wrong with your device?") 

    issue=input() 

    sol = set() 

    for k in Problemlistdict.keys(): 
     if k in issue: 
      sol.add(Problemlistdict[k]) 

결과는 모든 관련 용액 라인을위한 인덱스를 포함하는 집합 졸 것이다.

0

당신의 라인 선택에 정지 색인을 추가

solutions[0:1]뿐만 아니라 첫 번째 줄, 파일의 처음 두 행을 반환합니다.

즉시 서로 따르지 않는 두 개의 라인

은 수행 F. Lundbergh에서

solutions[2] + solutions[7]

페이지의 "Accessing lists을"이 설명 끝없는 파이썬 문서의 임의의 예로서.

또한 첫 번째 입력 후 elif 다음에 오는 모든 내용을 바꿀 수 있으며 else을 추가합니다. 사용자가 입력 한 내용 중 어느 것도 발견되지 않은 경우에 대비하여 else을 추가하십시오.

open 대신 with을 사용하여 파일이 제대로 닫히는 것이 좋습니다. Python < 2.7을 사용하고 open을 사용해야하는 경우 close을 다시 잊지 마세요.

관련 문제