首页 > 解决方案 > TypeError:'float' 对象不可下标(第 144 行)

问题描述

这是我的代码:

    if opt == "4":
        while True:
            cart_for_remove()
            remove = input("Please key in the corresponding number of the item you want to remove:")
            if remove.isalpha()==True:
                print('Please enter a valid number!')
                break
            if count==0:
                print('Please add item to cart first!')
                break
            if int(remove)<=count:
                remove = int(remove) - 1
                price_remove = float(cart[remove][3].strip('$ '))
                total_price_final -= price_remove
                savings_remove = int(total_savings[remove][2].strip('$ '))
                total_savings-=savings_remove
                del cart[remove]
                print("Item has been successfully removed from cart!")
                break
            else:
                print('Please choose a valid option')
                break

在第 143 行之前一切都是正确的。在第 144 行,如果要删除项目,我尝试从总节省中删除节省,但是,出现此错误:

line 144, in <module>
    savings_remove = int(total_savings[remove][2].strip('$ '))
TypeError: 'float' object is not subscriptable.

任何人都知道如何更正代码,这样这个错误就不会出现?

非常感谢任何帮助/反馈。谢谢!

标签: pythonpython-3.xlisterror-handlingfloating-point

解决方案


你看,在这部分代码:

        if int(remove)<=count:
            remove = int(remove) - 1
            price_remove = float(cart[remove][3].strip('$ '))
            total_price_final -= price_remove
            savings_remove = int(total_savings[remove][2].strip('$ '))
            total_savings-=savings_remove
            del cart[remove]
            print("Item has been successfully removed from cart!")
            break

total_savings[remove]是一个浮点数。在python中下标意味着使用方括号使用元素的索引从数组中获取元素。

浮点数显然不可下标。


推荐阅读