TypeError: объект 'float' не индексируется (строка 144) - PullRequest
0 голосов
/ 17 июня 2020

это мой код:

    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.

Кто-нибудь знает, как исправить код, чтобы эта ошибка не отображалась?

Любая помощь / обратная связь приветствуются. Спасибо!

1 Ответ

0 голосов
/ 17 июня 2020

Видите ли, в этой части кода:

        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 означает использовать квадратные скобки для получения элементов из массива с использованием индекса элемента.

Очевидно, что индекс с плавающей точкой не может быть индексируемым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...