При работе на языке Python вы должны были несколько раз вставлять элементы из списка или словаря и обращаться к ним. В основном мы использовали индекс этого конкретного элемента для доступа к нему. Мы, должно быть, использовали квадратные скобки вокруг номера индекса для извлечения элементов. Всякий раз, когда пользователь пытается получить элемент списка, используя любые другие скобки, возникает ошибка типа, говорящая: объект «список» не вызывается. Это руководство покажет, как возникает эта ошибка и как ее можно решить с небольшими изменениями на некоторых примерах. Итак, мы использовали инструмент Python Spyder3, чтобы проиллюстрировать наши примеры. Итак, приступим к их рассмотрению.
Пример 1
Мы начали наш первый пример кода с объявления списка строковых типов, содержащего 5 строковых значений. Имя списка — «L». Цикл «for» был использован здесь для перебора элементов списка «L». Цикл будет продолжать повторяться до длины списка. Пока индекс итератора «n» находится в диапазоне длины списка, он будет продолжать вызывать встроенный метод upper () для преобразования значения с индексом «n» списка в верхний регистр. Это значение в верхнем регистре будет снова сохранено в индексе «n» списка «L».
Как видите, мы использовали простые скобки, чтобы указать номер индекса, который используется здесь для вызова метода upper (). После этого предложение print используется для вывода значения верхнего регистра, вставленного в индекс «n» списка «L». Имеется неправильный синтаксис для указания индекса, т.е. простые скобки «()». После цикла for будет напечатан весь обновленный список.
- L = [ “Linux’, “Debian’, “Oracle’. “LTS”, “Iphone’]
- for n in range(len(L)):
- L[n] = L(n).upper()
- print(L(n))
- print(L)
Используйте кнопку «Выполнить», удерживаемую в строке меню инструмента Python, то есть Spyder3, для отладки и запуска этого вновь созданного программного кода. После запуска этого кода мы получили ошибку TypeError о том, что объект «список» не может быть вызван.
Чтобы устранить ошибку TypeError, замените простые скобки квадратными скобками, где индекс «n» был определен в списке «L» в строках с номерами 4 и 5.
- L = [ “Linux’, “Debian’, “Oracle’. “LTS”, “Iphone’]
- for n in range(len(L)):
- L[n] = L[n].upper()
- print(L[n])
- print(L)
Когда мы снова запускаем этот обновленный код, он отображает строковые значения в верхнем регистре списка одно за другим отдельно из-за цикла for. В итоге был отображен весь список в верхнем регистре.
Пример 2
Мы использовали другой пример для создания и устранения ошибки TypeError. Итак, мы инициализировали список «L» с некоторыми строками в нем. Переменная «i» была объявлена и инициализирована значением 0. Другая переменная строкового типа, «s1», была объявлена и инициализирована как пустая.
Цикл «while» использовался здесь, чтобы проверить, меньше ли значение переменной «I», чем длина списка «L». Если это так, то переменная s1 будет объединена с пробелом и значением с индексом «I», т. Е. Таким же, как переменная «I». Это обновленное значение будет снова сохранено в переменной «s1», а переменная итератора «I» будет увеличена на 1. Переменная s1 будет распечатана.
- L = [‘Hi’, ‘My’, ‘name’, ‘is’, ‘Linux’]
- i = 0
- s1 = ”
- while i < len(L):
- s1 = s1 + ‘ ‘ + L(i)
- i += 1
- print(s1)
Когда мы запускаем этот код, он вызывает исключение TypeError в строке 5.
Итак, мы заменили простые скобки квадратными скобками в строке 5.
- L = [‘Hi’, ‘My’, ‘name’, ‘is’, ‘Linux’]
- i = 0
- s1 = ”
- while i < len(L):
- s1 = s1 + ‘ ‘ + L[i]
- i += 1
- print(s1)
После повторного запуска этого кода мы получили результирующее значение переменной s1. Как видите, он показывает предложение, созданное циклом while.
Заключение
Эта статья содержит простые и легкие иллюстрации для устранения ошибки Typeerror, вызванной некоторой синтаксической проблемой, показывающей, что объект «список» не вызывается. В начале этой статьи мы изложили некоторые основы, необходимые для понимания всей статьи. Надеемся, это будет вам полезно.