TypeError: объект ‘builtin_function_or_method’ не поддерживает назначение элемента

Вопрос: У меня есть эта ошибка, когда я пытаюсь запустить мой скрипт: Traceback (most recent call last): File "", line 1, in converter() File "C:UsersJoanDocumentsSchoolComputingCourseworkA453 - PythonCurrency Converter.py", line 19, in converter exchange(currencyList) File "C:UsersJoanDocumentsSchoolComputingCourseworkA453 - PythonCurrency Converter.py", line 33, in exchange crntItem = currencyList.index[crntCurrency] =+ 1 TypeError: 'builtin_function_or_method' object does not support item

Вопрос:

У меня есть эта ошибка, когда я пытаюсь запустить мой скрипт:

Traceback (most recent call last): File «<pyshell#6>», line 1, in <module> converter() File «C:UsersJoanDocumentsSchoolComputingCourseworkA453 — PythonCurrency Converter.py», line 19, in converter exchange(currencyList) File «C:UsersJoanDocumentsSchoolComputingCourseworkA453 — PythonCurrency Converter.py», line 33, in exchange crntItem = currencyList.index[crntCurrency] =+ 1 TypeError: ‘builtin_function_or_method’ object does not support item assignment

Вот мой код, незавершенный конвертер валют:

# Global ist currencyList = [«Pound Sterling», 1, «Euro», 1.22, «US Dollar», 1.67, «Japanese Yen», 169.9480] ################################# # A program to convert currency # # Main function # ################################# def converter(): currencyList = [«Pound Sterling», 1, «Euro», 1.22, «US Dollar», 1.67, «Japanese Yen», 169.9480] print(«1) Enter an amount to be exchanged.») print(«2) Change exchange rates.») choice=0 while choice==0: selected=int(input(«Please select an option: «)) if selected == 1: choice = 1 exchange(currencyList) ################################# # Giving exchanged rate # ################################# def exchange(currencyList): crntAmnt = int(input(«Please enter the amount of money to convert: «)) crntCurrency = («Please enter the current currency: «) newCurrency = («Please enter the currency you would like to convert to: «) listLength = len(currencyList) crntItem = currencyList.index[crntCurrency] =+ 1 print(crntItem) newItem = currencyList.index[newCurrency] =+ 1 print(newItem)

Я попытался настроить главную функцию в качестве меню, а затем вызвать другую подфункцию, чтобы удовлетворить соответствующий выбор. Я бы хотел, чтобы некоторые советы о том, является ли это хорошим и способ закодировать это, поскольку я видел, как мой учитель сделал что-то похожее, я должен просто положить его в заявления “если” и т.д.

Это хороший, правильный способ кодирования?

Лучший ответ:

currencyList.index – это ссылка на метод; чтобы индексировать список, отпустите часть .index:

crntItem = currencyList[crntCurrency] print(crntItem) newItem = currencyList[newCurrency]

Я подозреваю, что вы пытаетесь найти индекс crntCurrency в списке, а затем добавьте 1, чтобы найти значение:

crntItem = currencyList[currencyList.index(crntCurrency) + 1]

а также

newItem = currencyList[currencyList.index(newCurrency) + 1]

но, возможно, вы должны использовать здесь словарь:

currencies = {«Pound Sterling»: 1, «Euro»: 1.22, «US Dollar»: 1.67, «Japanese Yen»: 169.9480}

Это сопоставляет имя валюты с номером, так что теперь вы можете просто искать валюты, не заставляя себя обходиться с помощью индексов:

crntItem = currencies[crntCurrency]

О, и вы забыли принять фактический пользовательский ввод; добавлять вызовы input() при запросе конвертации валюты:

crntCurrency = input(«Please enter the current currency: «) newCurrency = input(«Please enter the currency you would like to convert to: «)

Оцените статью
Добавить комментарий