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])))
im试图显示文本文件中的数据。这是错误信息。 第87行,在disp_sss中 打印(“ {0:15} {1:10s} {2:10.2f}”。format(EmpNo [idx],SSSLoan [idx],float(MonthlyDeduction [idx]))) IndexError:列表索引超出范围
问题是,当我运行该程序时,它将显示所有数据,但是在显示数据后,错误开始出现。这是分别显示即时通讯。 员工没有SSS扣除 123 500 200.00 a1001 300 20.00
答案 0 :(得分:0)
我的最佳猜测是您的SSLoan / MonthlyDeduction与EmpNo的长度不同。
要进行调试,请先尝试一次将其删除,然后逐个添加,以查看真正的问题所在。
或者,您可以考虑将它们存储到数据框中并显示该数据框,这样看起来可能会更好。
答案 1 :(得分:0)
您要遍历列表EmpNo
上的索引,但是您试图在其他两个列表SSSLoan
和MonthlyDeduction
上使用相同的索引,因此如果有两个列表的项目较少,则当迭代到达IndexError
的索引存在的位置,而EmpNo
或SSSLoan
的索引不存在时,将导致MonthlyDeduction
。
您应确保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))