为什么下面给出的代码给出错误“ TypeError:字符串索引必须为整数”?

时间:2019-07-15 14:34:16

标签: python string indices

当我尝试打印子字符串时,代码给出了错误

def wrap(string, max_width):
    n=int(len(string)/max_width)
    i=0 
    j=max_width+1
    for _ in range(n):
        print(string[i,j])
        i=j
        j+=max_width

    print(string[i,len(string)])

2 个答案:

答案 0 :(得分:1)

此:

string[i,j]

是无效的格式。当您尝试获取字符串的特定索引时,只能输入一个参数,并且该参数必须为整数。因此,这里的问题是python将i,j解释为一个元组,而不是整数。

您可能正在尝试将字符串从索引i切成索引j。在这种情况下,语法为

string[i:j]

之所以有效,是因为:告诉python这是一个切片,并在:的左侧和右侧寻找一个单独的索引。

答案 1 :(得分:0)

这是正确的功能

def wrap(string, max_width):
    n=int(len(string)/max_width)
    i=0 
    j=max_width+1
    for _ in range(n):
        print(string[i:j])
        i=j
        j+=max_width

    print(string[i:len(string)])

您会收到错误消息,因为无法使用string[i,j]string[i,len(string)]从字符串中提取字符。在Python中,“:”用于从字符串中提取字符。