Python程序刚刚停止运行?
我的程序有问题,它没有显示错误,但突然停止运行,暂停一分钟,然后停止 例如,程序在生成以下内容后停止:Python程序刚刚停止运行?,python,error-handling,Python,Error Handling,我的程序有问题,它没有显示错误,但突然停止运行,暂停一分钟,然后停止 例如,程序在生成以下内容后停止: while True: chunks = [] for x in range(len(new_match_list)): if new_match_list[x] == ID_Input: chunks=[new_ID_info_list[x:x+7] for x in range(0, len(new_ID_info_list), 7
while True:
chunks = []
for x in range(len(new_match_list)):
if new_match_list[x] == ID_Input:
chunks=[new_ID_info_list[x:x+7] for x in range(0, len(new_ID_info_list), 7)]
if len(chunks) == 0:
ID_Input = input("Please choose a number from the list provided, and enter it correctly this time!")
if len(chunks) > 0:
print (chunks[x])
break
不会产生任何错误消息
代码的目标是打印出一个数据列表,其中包含关于特定ID号的7条信息(如邮政编码、州)
如果输入的ID号不在我的ID号列表(也称为新匹配列表)中,则“chunks”将保持空白(因此,len(chunks)将为0),用户将被迫重新输入ID号,直到它与我的(新匹配列表)上的ID号匹配为止
如果ID号匹配,它应该填写(块)并打印出与ID相关的(块)的特定部分([x])
我可以做什么来修复此错误
编辑:我尝试了不同的方法来修复此错误,例如替换:
Here is the list of complaint IDs you can choose from and ask about : ['1344139', '1344055', '1343332', '1343188', '1343131', '1341190', '1340441', ]
Choose a number from that list, and enter it in. Type in 'Quit' if you want to quit the program: 1344139
.....
与
但一切都没有奏效。像往常一样,程序只是停止而没有给我一个错误您的问题有点不清楚,但我怀疑当控制达到
print(chunks[x])
时,您希望x
具有它在新匹配列表[x]==ID\u输入时的值。如果是这样,您需要在If
块的最后一行放置break
语句,即chunks=[new_ID\u info\u list…
行之后。并且,正如Paul Cornelius提到的,您需要更改该列表理解中的变量,以便x
不会被阻塞
但是,有一种更好的方法可以找到列表中的第一个匹配项:使用它的方法。您需要将其放入try:…除块外;或者,在尝试获取其索引之前,使用in
操作符测试ID是否在列表中。您发布的输出不会由您输入的代码生成已发布。请更正此不匹配。也许您不应该命名这么多变量x
。一个变量位于for循环中,一个变量位于列表理解中(位于for循环内),另一个变量位于print语句中(位于循环外)。我甚至不想去想这段代码到底会做什么。清理一下混乱,看看会发生什么。也许你可以告诉我们一个“突然停止运行”的程序是如何暂停一分钟然后停止的。你怎么知道?
len(chunks) == 0:
if ID_Input not in new_match_list: