gpt4 book ai didi

Python循环限制错误

转载 作者:太空宇宙 更新时间:2023-11-04 01:03:21 25 4
gpt4 key购买 nike

在下面的代码中(来自 udacity 类(class) CS-101),我试图在与类(class)讲座中相同的行上创建一个巨大的索引。此处,make_big_index 的输入 - 大小限制了列表中的条目数 - 索引。但是,每当我运行代码时,while 循环似乎会无限运行,而不会终止。终止条件 - len(index) < size,似乎每次都通过,即使 len(index) > size。

我尝试了 pdb.settrace() 选项,逐步调试显示即使输入大小 = 3,循环仍在继续并且永远不会退出。

import pdb, sys

def add_to_index(index, keyword, url):
for entry in index:
if entry[0]== keyword:
entry[1].append(url)
return
index.append([keyword, [url]])
return

def make_string(p):
s=""
for e in p:
s=s+e
return s


def make_big_index(size):
index=[]
letters = ['a','a','a','a','a','a','a','a']
pdb.set_trace()
while len(index) < size:
word = make_string(letters)
add_to_index(index, word, 'fake')
print index
for i in range(len(letters)-1, 0, -1):
if letters[i] < 'z':
letters[i] = chr(ord(letters[i])+1)
break
else:
letters[i]='a'

## return index

def main():
size=raw_input('>size: ')
make_big_index(size)

if __name__ == '__main__':
main()

最佳答案

size 是一个字符串,因为您将其输入作为 -

size=raw_input('>size: ')
make_big_index(size)

在 Python 2.x 中,strings 总是大于 int (any int) ,因此这就是循环永不结束的原因。展示这个的例子-

>>> '1' > 9999999999999999999999999999999
True

接受输入时将其转换为int,示例-

size=int(raw_input('>size: '))
make_big_index(size)

关于Python循环限制错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31760574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com