2013-11-28 3 views
0

그리고 나쁜 title-name에 대해 유감스럽게도, 좋은 것을 알아 내지 못했습니다.Python - Dictionary and in

해결할 수없는 문제가 있습니다. 문제를 찾기 위해 모든 종류의 것을 시도했지만 해결할 수없는 것 같습니다.

http://www.codesend.com/view/62a8ede9843cb4c63196285c104f7bd7/ 여기 내 코드가 있습니다.

내가 읽은 파일에서 사전을 만들었습니다 (올바르게 작동하고 테스트를 거쳐 인쇄되었습니다). 나는 사용자에 의한 입력을 받아 문자열로 만든다. 그런 다음 txt에있는 문자가 사전에 있는지 checkData()를 실행합니다. 내 문제를 해결하기 위해 주석 처리되지 않은 checkData()를 사용 해보자. 기본적으로 모든 것이 존재하는지 여부 만 인쇄된다.

내 문제는 내가 입력 내용을 가지고 있더라도 모든 것이 존재한다는 것입니다. 나는 Ωıéœμ • üΩμé와 같은 무작위 기호를 사용하여 시도했지만, 여전히 모든 것이 존재한다고 말한다. 루프가 완벽하게 작동하고 'is within'이 출력되므로 txt [i]가 dictMorse 또는 dictTxt에 있음을 의미합니다. 그러나 "if txt [i] in dictMorse 또는 dictTxt :"는 작동하지 않습니다.

도움 주셔서 감사합니다.

+0

질문에 관련 코드를 추가하면 링크가 없습니다. –

+1

코드가 너무 많아 외부 사이트에 게시해서는 안됩니다. 문제를 나타내는 * 최소 * 예제로 잘라내어 질문에 추가하십시오. –

+0

나는 미래의 포스트에서, 단지 문제를 해결하지 않은 후에 너무 많이 생각하지 않고 변덕스럽게 이것을 할 것이다. – user2843488

답변

3
if txt[i] in dictMorse or dictTxt: 

dictTxt가 비어 있지 않은이 때이 조건이 항상 true가됩니다

if (txt[i] in dictMorse) or dictTxt: 

에 해당합니다.

당신은 아마 의미 :

if txt[i] in dictMorse or txt[i] in dictTxt: 
+0

고마워, 해결 됐어. 내 바보가 그것을 찾지 못할 것입니다. – user2843488

1
 if txt[i] in dictMorse or dictTxt: 

x in y or z(x in y) or z로 분석된다. 비어 있지 않은 dict은 true로 처리됩니다. 다음을 원합니다.

 if txt[i] in dictMorse or txt[i] in dictTxt: 
+0

"다른 방법"으로 해석 되더라도 OP가 의미하는 바를 여전히 의미하지는 않습니다. 이와 같은 시도는 프로그래밍과 호환되지 않는 논리에 대한 비공식적 인 견해를 취하고 있습니다. –