Python中的文本读取和列表索引超出范围

2024-09-27 00:14:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文本有8行。程序将读取此文本,并将文本中的单词与用户输入的单词进行匹配。但python给出了一个错误:

satir=dosya.readlines()[a]
IndexError: list index out of range

这是我的密码:

a=0
c=0
while a<8:
    satir=dosya.readlines()[a]
    a=a+1
    for i in olasilik:
        if ((olasilik[c]+"\n")==satir):
            c=c+1
            print(olasilik[c])

Tags: of用户文本程序index错误rangeout
3条回答

这样可能会更好:

for satir in dosya.readlines():
  for o in olasilik:
    if ("%s\n" % o) == satir:
      print o

问题是readlines()在第一次调用列表时读取列表中文件的所有内容。第二次调用它时,文件已经完成,得到一个空列表,并且在尝试访问该空列表的元素1时出错。你知道吗

循环文件的行

for L in f:
    ...

或者

for L in f.readlines():
    ...

你不应该这样做

相反,你应该这样做

for satir in dosya:
   #do something

相关问题 更多 >

    热门问题