2013-11-28 5 views
0

И извините за плохое название-название, не мог понять, какой хороший.Python - Словарь и в

У меня проблема, которую я не могу решить. Я пробовал все, чтобы найти проблему, но я не могу ее решить.

http://www.codesend.com/view/62a8ede9843cb4c63196285c104f7bd7/ Вот мой код.

Я сделал словарь из файла, который я прочитал (работает правильно, проверен и распечатан и т. Д.). Затем я делаю ввод пользователем, сделанный в строку. Затем я запускаю checkData(), который должен выглядеть, если какая-либо из букв в txt находится в словаре. Ради решения моей проблемы, давайте использовать некомментированные checkData(), которые в основном просто печатаются, если все есть или нет.

Моя проблема заключается в том, что независимо от того, что у меня есть как вход, все существует (а это не так). Я пробовал использовать случайные символы, такие как • Ωıéœμ • üΩμé, но он все еще говорит, что все существует. Петля отлично работает и выводит «находится внутри», что означает, что txt [i] находится в dictMorse или dictTxt. Но «if txt [i] в ​​dictMorse или dictTxt:« не работает.

Спасибо за помощь!

+0

Добавить код по вашему вопросу не ссылаться на него. –

+1

Слишком много кода, и его нельзя размещать на внешнем сайте. Сократите это до * минимального * примера, который демонстрирует проблему, и добавьте ее в свой вопрос. –

+0

Я буду в будущих сообщениях, просто сделал это по прихоти, не задумываясь слишком много после того, как не решил проблему. – user2843488

ответ

3
if txt[i] in dictMorse or dictTxt: 

эквивалентно

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

Это условие всегда будет справедливо, если 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 считается истинным. Вы хотите следующее:

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

Даже если бы он разбирался «по-другому», это все равно не означало бы то, что OP хочет, чтобы это означало. Попытки, подобные этому, принимают неформальное представление о логике, которая просто несовместима с программированием. –

Смежные вопросы