Why does the code given below gives the error "TypeError: string indices must be integers"?
Why does the code given below gives the error "TypeError: string indices must be integers"?
当我尝试打印子字符串时代码出错
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]
格式无效。当您尝试获取字符串的特定索引时,您只能放置一个参数,并且该参数必须是一个整数。所以这里的问题是 python 将 i,j
解释为元组,而不是整数。
您可能正在尝试将字符串从索引 i
分割到索引 j
。在这种情况下,语法是
string[i:j]
之所以有效,是因为 :
告诉 python 这是一个 切片 ,并在切片的左侧和右侧寻找单独的索引:
.
这是正确的函数
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 中,“:”用于从字符串中获取字符。
当我尝试打印子字符串时代码出错
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]
格式无效。当您尝试获取字符串的特定索引时,您只能放置一个参数,并且该参数必须是一个整数。所以这里的问题是 python 将 i,j
解释为元组,而不是整数。
您可能正在尝试将字符串从索引 i
分割到索引 j
。在这种情况下,语法是
string[i:j]
之所以有效,是因为 :
告诉 python 这是一个 切片 ,并在切片的左侧和右侧寻找单独的索引:
.
这是正确的函数
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 中,“:”用于从字符串中获取字符。