TypeError: string indices must be an integer

17 Mar 2025 | 6 分钟阅读

Python 中的 TypeError 是什么?

TypeError 是 Python 编程语言中的一种异常。当对不支持的对象类型或无效的对象类型执行操作时,会发生此异常。

  • 每当发生异常时,都会引发或出现此异常。
  • 此外,顾名思义,当存在错误的对象,并且我们对其执行不相关的操作时,就会出现此类错误。
  • Python 编程语言中主要有三种类型的错误:语法错误、逻辑错误异常。
  • 此类型错误属于异常错误类别。
  • 用户可以使用 raise 关键字轻松处理类型错误。

TypeError: string indices must be an integer

  • 我们都知道,字符串的基本结构包含索引值。
  • 字符串的起始值以索引值 0 开始,一直持续到给定字符串的长度。
  • 当我们想要使用指定的索引值从中提取字符串的特定字符时,就会出现 TypeError。但我们没有输入整数值作为索引,而是输入了其他对象类型的值。
  • 例如,如果我们想从字符串中获取第 2 个字符,但输入的是字符串而不是整数,就会引发类型错误 string indices must be an integer。

让我们通过示例来理解这一点

TypeError 示例:String indices must be an integer

示例 1:给定一个名为“JavaTpoint”的字符串,您需要从中提取特定字符“T”。

(在此,我们将讨论上述示例中出现类型错误的所有情况以及解决方案。)

情况 1:我们将数字作为字符串格式传递,而不是整数值作为索引。

说明

在上述情况下,如果我们观察,它会生成一个类型错误:string indices must be an integer,因为要从 JavaTpoint 字母中提取字符 'T',我们必须以整数形式传递索引值 4,而不是字符串。

在这里,我们传递的值是 4,但不是整数形式,而是字符串形式,因为我们已经用双引号将其赋值。

情况 1 的输出

TypeError string indices must be an integer

让我们通过下面的纠正进行详细了解

情况 1 的纠正

情况 1 纠正的输出

TypeError string indices must be an integer

情况 2:我们将字符串值作为索引传递,而不是整数值。

说明

在上述情况下,如果我们观察,它会生成一个类型错误:string indices must be an integer,因为在这里,要从 JavaTpoint 字母中提取字符 'o',我们必须以整数形式传递索引值 6,而不是字符串。

在上面的程序中,我们直接传递字母而不是整数值,但以字符串形式,因为我们已经用双引号将其赋值。

让我们通过下面的纠正进行详细了解

情况 2 的输出

TypeError string indices must be an integer

情况 2 的纠正

情况 2 纠正的输出

TypeError string indices must be an integer

示例 2:给定一个名为“Wonderful”的字符串,您需要从中提取特定片段“der”或可以说的字符串部分,我们称之为字符串切片。

情况 1:我们将数字作为字符串格式传递,而不是整数值作为索引。

说明

在上述情况下,它会生成一个类型错误:string indices must be an integer,因为在这里,要从 Wonderful 字母中提取特定部分 'der',我们必须以整数形式传递索引值 3:6,而不是字符串。

在上面的程序中,我们需要传递值 3:6,但不是整数形式,而是字符串形式,因为我们已经用双引号将其赋值。

情况 1 的输出

TypeError string indices must be an integer

让我们通过下面的纠正进行详细了解

情况 1 的纠正

情况 1 纠正的输出

TypeError string indices must be an integer

示例 3:对于字典示例,我们提供了一个字典集,从中我们需要提取具有相应值的特定键。

情况 1:当我们将字符串值作为索引传递,而不是整数值时

在上述情况下,它会生成一个类型错误:string indices must be an integer,因为在这里,要从字典 d1 中提取特定键“Sneha”,我们需要传递索引 i,而该索引已经是整数形式,而不是字符串。

在上面的程序中,我们直接传递字符串而不是整数值,但以字符串形式,因为我们已经用双引号将其赋值。

情况 1 的输出

TypeError string indices must be an integer

让我们通过下面的纠正进行详细了解

情况 1 的纠正

情况 1 纠正的输出

TypeError string indices must be an integer

处理 TypeError:String indices must be an integer

在上面的示例中,我们看到当我们在索引中输入字符串格式而不是整数值时,可能会生成 TypeError。尽管我们已经看到了所有示例的纠正,但我们必须知道如何处理所有此类异常。

为了在 Python 编程语言中处理这些异常,我们通常使用 'try' 和 'except' 关键字,try 块。我们将输入所有测试用例,这些测试用例在可能生成类型错误的情况下尽量多。我们将在 except 块中通过打印用户定义的错误消息来处理上述异常。

让我们通过一个例子来更详细地理解

示例

上述异常处理示例的输出

TypeError string indices must be an integer