所以这就是我要做的:
输入=ABCDEFG
***DEFG
A***EFG
AB***FG
ABC***G
ABCD***
这是我写的代码
def loop(input):
output = input
for index in range(0, len(input)-3): #column length
output[index:index +2] = '***'
output[:index] = input[:index]
output[index+4:] = input[index+4:]
print output + '\n'
但我得到错误:TypeError:'str'对象不支持项分配
帮忙?
在Python中,字符串是不可变的——一旦创建,就不能更改。这意味着,与列表不同的是,您不能分配给索引来更改字符串。
在你的例子中,我会把
output
列成一个列表:output = list(input)
,然后在你完成后将它变成一个字符串:return "".join(output)
字符串是不可变的。不能更改字符串中的字符,但必须创建新字符串。如果要使用项分配,可以将其转换为列表,操作列表,然后将其连接回字符串。
或者,只需从与
'***'
组合的旧字符串片段中创建一个新字符串:还要注意的是,代码中似乎有一些逐个错误,不应该使用
input
作为变量名,因为它会隐藏同名的内置函数。不能修改字符串的内容,只能使用更改创建新字符串。所以你想要的不是上面的函数
相关问题 更多 >
编程相关推荐