[Решение] TypeError: String Indices Must be Integers в Python

[Решение] TypeError: String Indices Must be Integers в Python

В этой статье мы рассмотрим из-за чего возникает ошибка TypeError: String Indices Must be Integers и как ее исправить в Python.

Введение

В Python мы уже обсудили множество концепций и преобразований. В этом руководстве обсудим концепцию строковых индексов, которые должны быть всегда целыми числами. Как знаем в Python, доступ к итеративным объектам осуществляется с помощью числовых значений. Если мы попытаемся получить доступ к итерируемому объекту, используя строковое значение, будет возвращена ошибка. Эта ошибка будет выглядеть как TypeError: String Indices Must be Integers.

Что такое строковые индексы?

Строки — это упорядоченные последовательности символьных данных. Строковые индексы используются для доступа к отдельному символу из строки путем непосредственного использования числовых значений. Индекс строки начинается с 0, то есть первый символ строки имеет индекс 0 и так далее.

Индексы строки должны быть целыми числами

В python, когда мы видим какие-либо итерируемые объекты, они индексируются с помощью чисел. Если мы попытаемся получить доступ к итерируемому объекту с помощью строки, возвращается ошибка. Сообщение об ошибке — «TypeError: строковые индексы должны быть целыми числами».

Все символы, присутствующие в строках, имеют свой уникальный индекс. Индекс используется для указания позиции каждого символа в строке. Но все индексы должны быть целыми числами, поскольку мы не можем запомнить позицию с помощью символа, значения с плавающей запятой и так далее.

Примеры, демонстрирующие ошибку

Здесь мы обсудим все примеры, которые покажут вам ошибку в вашей программе, поскольку строковые индексы должны быть целыми числами:

Использование индексов в виде строки

В этом примере будем использовать строку в переменной line. Затем мы попытаемся получить доступ к конкретному индексу строки с помощью строкового символа в качестве индекса, а затем посмотрим результат. 

Давайте посмотрим на пример для детального понимания концепции.

line = "Тестовая строка"

string = line["е"]
print(string)

Вывод программы:

Traceback (most recent call last):
  File "D:\Project\TEST\p.py", line 3, in <module>
    string = line["е"]
TypeError: string indices must be integers

Объяснение:

  • Мы использовали входную строку в переменной line
  • Затем мы взяли переменную string, в которую мы передали значение индекса в виде строкового символа.
  • Наконец, мы распечатали результат.
  • Следовательно, вы можете увидеть ошибку TypeError: String Indices Must be Integers, что означает, что вы не можете получить доступ к строковому индексу с помощью символа.

Использование индексов в виде числа с плавающей запятой

В этом примере мы возьмем входную строку. А затем попробуйте получить доступ к строке с помощью значения с плавающей запятой в качестве их индекса. Затем мы увидим результат. 

Давайте посмотрим на пример для детального понимания концепции.

line = "Тестовая строка"

string = line[1.6]
print(string)

Вывод программы:

Traceback (most recent call last):
  File "D:\Project\TEST\p.py", line 3, in <module>
    string = line[1.6]
TypeError: string indices must be integers

Объяснение:

  • Во-первых, мы взяли входную строку.
  • Затем мы взяли переменную string, в которую мы передали значение индекса как число с плавающей запятой в диапазоне строки.
  • Наконец, мы распечатали результат.
  • Следовательно, вы можете увидеть «TypeError: строковые индексы должны быть целыми числами», что означает, что вы не можете получить доступ к строковому индексу с помощью числа с плавающей запятой

Решение для строковых индексов

Единственное решение для этого типа ошибки: «Строковые индексы должны быть целыми числами» — это передать значение индекса как целочисленное значение. Поскольку доступ к итерируемому объекту можно получить только с помощью целочисленного значения. Давайте посмотрим на пример для детального понимания концепции.

line = "Тестовая строка"

string = line[3]
print(string)

Вывод программы:

т

Объяснение:

  • Во-первых, мы взяли входную строку.
  • Затем мы взяли переменную, в которую мы передали значение индекса как целое число в диапазоне строки.
  • Наконец, мы распечатали результат.
  • Следовательно, вы можете увидеть вывод буквы «т», поскольку 3-й символ строки — «т».

Заключение

В этом руководстве мы узнали о концепции «TypeError: строковые индексы должны быть целыми числами». Мы видели, что такое строковые индексы? Также мы увидели, почему строковые индексы должны быть целыми числами. Мы объяснили этот тип ошибки с помощью всех примеров и дали код решения для ошибки. Все ошибки подробно объясняются с помощью примеров. Вы можете использовать любую из функций по вашему выбору и вашим требованиям в программе.

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

Егор Егоров

Программирую на Python с 2017 года. Люблю создавать контент, который помогает людям понять сложные вещи. Не представляю жизнь без непрерывного цикла обучения, спорта и чувства юмора.

Ссылка на мой github есть в шапке. Залетай.

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

  1. Мохим

    ок

    Ответить
  2. Максим

    Как раз в тему статья-программированием занимаюсь.

    Ответить
    1. Егор Егоров автор

      успехов!

      Ответить