嵌套时循环不起作用

我正在尝试使用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
实际上,散列DOES等于散列表[247],但不是识别它并继续使用打印wordlist [247]的代码,python在嵌套的While循环中挂起。任何想法或建议? 谢谢! 编辑:修复缩进并删除不相关的变量。 编辑#2:所有变量都在脚本中先前定义。这只是一段给我带来麻烦的代码片段。 Hash和Hashlist [247]相等(print hash和print hashlist [247],每个都给出848作为输出)。 编辑#3:已解决 - 感谢您的帮助!     
已邀请:
您发布的代码不会嵌套任何while循环。
while count != 10:

    for x in rawinput[pos]:
       a = ord(x)
       hash = hash + a
这是唯一相关的代码。这是一个无限循环,假设计数没有从10开始。     
事1:做第10次的Pythonic方式是
for _ in range(10):
    ...
事2:显然Python认为
hash != hashlist[247]
,或者它不会无限循环。试试
print hash, hashlist[247], hash == hashlist[247]
来检查。 事3:
while cond: pass
究竟是什么意思?你想尝试做多线程的东西吗?     
考虑更新的帖子(带缩进代码):如果
count
的初始值大于
10
,则顶级
while
将是无限的。 此外,如果
hash != hashlist[247]
,以下循环也将是无限的(如果没有自定义
__getitem__, __eq__
并且从另一个线程更改值):
...
while hash != hashlist[247]:
   pass
...
    
这是由于哈希和哈希列表的类型不同:/。 str和int。我忽略了这一点,因为python解释器没有提到任何关于类型错误的东西,我已经习惯了它,我只是忘了检查。 感谢大家的帮助! 对于有类似问题的人: 双重检查你的类型!     

要回复问题请先登录注册