我继续遇到索引错误.我不知道我应该在哪里更改代码.这是我的代码


def disp_sss():
    print ("nnList of SSS loansn")
    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])))

im试图显示文本文件中的数据。这是ERRO消息。第87行,在disp_sss中 print(" {0:15} {1:10s} {2:10.2f}"。格式(empno [idx],sssloan [idx],float(lloat(monlyDedeDuction [idx]))))))))))))))indexError:列表索引超出范围

问题是,当我运行程序时,它会显示所有数据,但是在DSIPLAINDE数据后,错误开始出现。这是我分别获得的显示。applyeeno sss扣除 123 500 200.00 A1001 300 20.00

我最好的猜测是,您的ssloan/每月遗留期的长度与empno相同。

进行调试,首先尝试一次删除这两个,然后一个人添加它以查看真正的问题在哪里。

另外,您可以考虑将它们存储到数据框中并显示数据框,从而可以更好地看。

您在列表EmpNo上迭代索引,但是您正在尝试在其他两个列表上使用相同的索引,即SSSLoanMonthlyDeduction,因此,如果两个列表中的任何一个列表都较少项目,当迭代到达EmpNo的索引时,它将导致IndexError,而SSSLoanMonthlyDeduction则不存在。

您应该确保3个列表的长度相等。另外,您可以使用zip列表3列表,以便在最短列表耗尽时结束迭代:

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

相关内容

最新更新