簡體   English   中英

我不斷收到索引錯誤。 我不知道我應該在哪里更改我的代碼。 這是我的代碼

[英]I keep on getting index error. i dont know where should i change my code. here are my codes

def disp_sss():
    print ("\n\nList of SSS loans\n")
    print ("EmployeeNo        SSS        Deduction")
    for idx in range(len(EmpNo)):
        print (" {0:15} {1:10s} {2:10.2f}".format(EmpNo[idx], SSSLoan[idx], float(MonthlyDeduction[idx])))

我試圖顯示文本文件中的數據。 這是錯誤信息。 第 87 行,在 disp_sss 打印 (" {0:15} {1:10s} {2:10.2f}".format(EmpNo[idx], SSSLoan[idx], float(MonthlyDeduction[idx]))) IndexError: list索引超出范圍

問題是,當我運行程序時,它顯示了所有數據,但在顯示數據后,錯誤開始出現。 這是我分別得到的顯示。 員工無 SSS 扣除額 123 500 200.00 a1001 300 20.00

我最好的猜測是您的 SSLoan/MonthlyDeduction 與 EmpNo 的長度不同。

要調試,首先嘗試一次刪除這兩個,然后一個一個添加,看看真正的問題在哪里。

或者,您可以考慮將它們存儲到數據幀中並顯示數據幀,這可能會更好看。

您正在列表EmpNo迭代索引,但您嘗試在其他兩個列表SSSLoanMonthlyDeduction上使用相同的索引,因此如果兩個列表中的任何一個列表的項目較少,則迭代獲取時會導致IndexError到索引存在於EmpNo但不存在於SSSLoanMonthlyDeduction

您應該確保這 3 個列表的長度相等。 或者,您可以使用zip 3 個列表,以便在最短列表用盡時結束迭代:

def disp_sss():
    print("\n\nList of SSS loans\n")
    print("EmployeeNo        SSS        Deduction")
    for row in zip(EmpNo, SSSLoan, MonthlyDeduction):
        print(" {0:15} {1:10s} {2:10.2f}".format(row))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM