字符串索引超出范围异常在哪里?
String index out of range exception where?
我正在尝试为学校制作一个程序,该程序在文本文件中搜索用户输入的字符串。但是我不断收到错误消息:
line 16, in <module>, while(test[i] != " ")
IndexError: string index out of range
这是我的代码:
import os
myList=[]
while True:
ans = input("Please enter a filename or 'X' to exit")
if(ans == "X"):
exit()
else:
while True:
if os.path.exists(ans):
with open(ans,"r") as file:
test = file.read()
print(file)
i=0
while(i <= len(test)-1):
sol = ""
while(test[i] != " "):
sol = sol + test[i]
i += 1
myList.append(sol)
i += 1
ans2 = input("Please enter a word to search for or 'X' to exit")
if(ans2 == 'X'):
exit()
else:
if ans2 in myList:
print(ans2 + " is in " + ans)
else:
print(ans2 + " is NOT in " + ans)
else:
print("File does not exist. Try again.")
break
基本上在我看来,while(i <= len(test)-1):
行应该可以防止字符串超出索引范围,因此我无法找到超出索引范围的位置。
看来您可以使用 for 循环大大简化这一过程。或者老实说,看起来你的嵌套 while 循环试图用“”字符拆分字符串,但你可以只使用 test.split(' ')
它将 return 一个字符串列表,然后你可以检查该列表-of-strings 直接
我正在尝试为学校制作一个程序,该程序在文本文件中搜索用户输入的字符串。但是我不断收到错误消息:
line 16, in <module>, while(test[i] != " ")
IndexError: string index out of range
这是我的代码:
import os
myList=[]
while True:
ans = input("Please enter a filename or 'X' to exit")
if(ans == "X"):
exit()
else:
while True:
if os.path.exists(ans):
with open(ans,"r") as file:
test = file.read()
print(file)
i=0
while(i <= len(test)-1):
sol = ""
while(test[i] != " "):
sol = sol + test[i]
i += 1
myList.append(sol)
i += 1
ans2 = input("Please enter a word to search for or 'X' to exit")
if(ans2 == 'X'):
exit()
else:
if ans2 in myList:
print(ans2 + " is in " + ans)
else:
print(ans2 + " is NOT in " + ans)
else:
print("File does not exist. Try again.")
break
基本上在我看来,while(i <= len(test)-1):
行应该可以防止字符串超出索引范围,因此我无法找到超出索引范围的位置。
看来您可以使用 for 循环大大简化这一过程。或者老实说,看起来你的嵌套 while 循环试图用“”字符拆分字符串,但你可以只使用 test.split(' ')
它将 return 一个字符串列表,然后你可以检查该列表-of-strings 直接