2017-02-25 52 views
0

我的代碼問題...當我在Python中執行它並輸入一個有效的數字時,它會出現「IndexError:列表索引超出範圍」甚至當其有效或無效時。如果數字介於0 &之間,我希望它打印行[0]和行[1],否則會打印出錯誤消息。在Python中搜索CSV文件 - IndexError:列表索引超出範圍

import csv 

number=input("Enter num: ") 

with open("myfile.txt", "r") as file: 
    fileReader = csv.reader(file) 
    for row in fileReader: 
     for i in range (0,10): 
      if row[i] == number: 
       print(row [0], row [1]) 
    else: 
     print ("Error") 

file.close() 

在此先感謝您的幫助!

+0

你打算怎麼處理行if line [i] == number:'? – avysk

+0

如果行[0 - 10]等於輸入一開始,然後打印問(行[0],行[1]),否則「錯誤」 @avysk –

+0

你是否含有連續10個元素?在範圍(0,10)'循環中爲'i打印行。 – avysk

回答

0

你要的是什麼打印row[0]row[1]如果輸入值是0到9之間,但如果輸入值row[0]row[9]之間存儲在row一個值匹配你正在做的是打印row[0]row[1]。你也假設row將包含10個項目(取決於你的輸入,也許這是一個可接受的假設,我不知道)。

如果輸入值介於0和9之間,這將打印row[0]row[1](對於每一行)。它假定每行至少包含兩個項目。

import csv 

number=input("Enter num: ") 

if number >= 0 and number <= 9: 
    with open("myfile.txt", "r") as file: 
     fileReader = csv.reader(file) 
     for row in fileReader: 
      print(row [0], row [1]) 
else: 
    print ("Error") 

file.close() 
相關問題