为了账号安全,请及时绑定邮箱和手机立即绑定

在 Python 中的 while 循环中附加列表会出现错误消息“列表索引超出范围”

在 Python 中的 while 循环中附加列表会出现错误消息“列表索引超出范围”

扬帆大鱼 2022-06-22 20:40:43
所以我试图做一个简单的循环,由于某种原因,我似乎无法理解为什么会出现错误消息。earnings = [94500,65377,84524]deductions = [20000,18000,19000]tax = [] #empty listi = -1    #iterative counterwhile True:    i=i+1    if (earnings[i] > 23000):        tax.append(0.14*earnings[i])        continue    else:        breakprint ('Tax calculation has been completed')print ('Number of iterations: ',i)我觉得它与这条线有关, if (earnings[i] > 23000) 但我不知道我将如何操纵它。
查看完整描述

2 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

您可以使用enumerate来迭代earnings列表,同时生成从以下位置开始的迭代计数器1:


tax = []

for i, earning in enumerate(earnings, 1):

    if earning <= 23000:

        break

    tax.append(0.14 * earning)


print('Tax calculation has been completed')

print('Number of iterations: ', i)


查看完整回答
反对 回复 2022-06-22
?
慕斯709654

TA贡献1840条经验 获得超5个赞

您的循环中没有检查索引是否超出范围,即检查 i 与列表“收益”中的项目数。试试这个方法:


earnings = [94500,65377,84524]

deductions = [20000,18000,19000]


tax = [] #empty list

i = -1    #iterative counter

while True:

    i=i+1

    if i >= len(earnings):

        break

    if (earnings[i] > 23000):

        tax.append(0.14*earnings[i])

        continue

print ('Tax calculation has been completed')

print ('Number of iterations: ',i)


查看完整回答
反对 回复 2022-06-22
  • 2 回答
  • 0 关注
  • 187 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号