嵌套的 while 循环不起作用
我正在尝试用一个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
实际上,hash确实等于hashlist[247],但是Python没有识别到这一点,导致它在嵌套的while循环中卡住了。有没有什么想法或建议?
谢谢!
编辑:修正了缩进,并去掉了不相关的变量。
编辑 #2:所有变量在脚本的前面都有定义。这只是一个让我头疼的代码片段。Hash和Hashlist[247]是相等的(打印hash和打印hashlist[247]都输出848)。
编辑 #3:解决了——谢谢大家的帮助!
4 个回答
3
事情 1: 在Python中,想要做某件事情10次的标准方法是
for _ in range(10):
...
事情 2: 很明显,Python认为 hash != hashlist[247]
,要不然它就不会一直循环下去。你可以试试 print hash, hashlist[247], hash == hashlist[247]
来检查一下。
事情 3: 那么 while cond: pass
这个有什么用呢?你是在尝试做多线程的事情吗?
3
你发的代码里没有嵌套任何的 while 循环。
while count != 10:
for x in rawinput[pos]:
a = ord(x)
hash = hash + a
这段代码是唯一相关的代码。如果 count 不是从 10 开始的话,这会变成一个无限循环。
0
这是因为哈希和哈希列表的类型不一样:一个是字符串(str),一个是整数(int)。我没有注意到这一点,因为Python解释器没有提示我有类型错误,这让我有些习惯了,所以我就忘了检查。
感谢大家的帮助!
对任何遇到类似问题的人:
一定要仔细检查你的数据类型!!!