Я пытаюсь использовать цикл while, чтобы найти совпадение между двумя значениями. Один является статическим, а другой является записью в списке. Это код:
while count != 10:
for x in rawinput[pos]:
a = ord(x)
hash = hash + a
print hashlist[247]
print hash
print wordlist[247]
while hash != hashlist[247]:
pass
print wordlist[247]
hash = 0
count = count + 1
На самом деле хэш ДЕЙСТВИТЕЛЬНО равен хэш-списку[247], но вместо того, чтобы распознать его и продолжить код с помощью print списка слов[247], python зависает во вложенном цикле While. Любые идеи или предложения?
Спасибо!
Изменить: исправлен отступ и удалены ненужные переменные.
Изменить № 2: все переменные определены ранее в скрипте. Это всего лишь фрагмент кода, который вызывает у меня проблемы. Hash и Hashlist[247] равны (каждый из print hash и print hashlist[247] дает 848 на выходе).
Изменить № 3: РЕШЕНО - Спасибо за помощь!
hash
— это встроенная функция в Python. Возможно, вы захотите переименовать эту переменную. - person mtrw   schedule 15.12.2010while hash != hashlist[247]:
неверно, если толькоhashlist
не реализует__getitem__
и не делает там что-то особенное (или__eq__
). - person khachik   schedule 15.12.2010hash
иhashlist[247]
не равны,while hash != hashlist[247]:
будет бесконечным. - person khachik   schedule 15.12.2010hash - hashlist[247]
. Это может сказать вам, есть ли у вас какая-то проблема с типом ... и если они равны, вы должны получить ноль. Или вы можете просто проверить типы этих переменных с помощьюtype()
. - person Justin Peel   schedule 15.12.2010while count != 10:
счетчику необходимо присвоить значение перед проверкой, равно ли оно 10 ; если это › 10, то count = count+1 не поможет, если только число не зациклится. - person frayser   schedule 15.12.2010print repr(hashlist[247]), repr(hash)
и вы обнаружите, что один из них не соответствует вашим ожиданиям. - person   schedule 15.12.2010