Я очень плохо знаком с Python (~ 8 часов опыта и учебы в течение двух дней) и выполняю некоторые самостоятельные упражнения, чтобы практиковать только что изученную информацию. В настоящее время сосредоточены на занятиях и функциях.
Код касается продажи фруктов: есть класс фрукты, который принимает имя, цвет, price_usd и его объекты. Существует также список «корзины покупок» и total_cost (изначально установлен как 0). Я заставил код работать должным образом, однако теперь стараюсь не повторять код, используя функции.
Я создал функцию под названием «покупка», которая печатает, какой фрукт был выбран, добавляет его в корзину и добавляет его значение в total_cost. Однако я получаю «Неразрешенную ссылку» для total_cost (но не для корзины покупок, которая также является переменной вне функции?)
Error message: "UnboundLocalError: local variable 'total_cost' referenced before assignment)
(Показанный код - это отдельный файл с проблемой, которую я пытаюсь решить, затем включите в основной файл. Однако новых переменных нет, так как в основном файле было только много условных операторов и новых объектов.)
Попытка создания total_cost до и после функции. Также попытался «вручную» добавить fruit_choice.price_usd к total_cost:
"total_cost = total_cost + fruit_choice.price_usd"
Он создал локальную переменную "total_cost" и выдал "неразрешенную ссылку" для второй total_cost
import fruit as fr
apple = fr.Fruits("Apple", "red", price_usd=0.88)
shopping_cart = []
# total_cost = 0
def buy(fruit_choice):
print(f"A(n) {fruit_choice.name} has been added to your shopping cart.")
shopping_cart.append(fruit_choice.name)
##############################################
total_cost += fruit_choice.price_usd
print(f" The total cost is: {total_cost}")
##############################################
total_cost = 0
print(shopping_cart, "\n", buy(apple))
(Между ### ... и находится сообщение об ошибке.)
Я ожидал, что fruit_choice.price_usd будет добавлен к total_cost. Было бы проще, если бы это было так, так как это один и тот же код для каждого фрукта.
Заранее благодарим за вашу драгоценную помощь!