2016-11-27 71 views
-2
word = input("Please enter two words"); 
word1 = word 
number = len(word); 
space = '/' 
for i in range(number): 
    if(word1[i] == " "): 
     word1[i] = space; 
print(word1) 

我收到以下错误:“类型错误:‘STR’对象不支持项目分配” 它不喜欢,我替换WORD1 [I] =空间; 我不明白为什么,因为它们都是字符串。Python字符串类型错误

+1

虽然字符串可以被索引并在Python遍历,它不能被索引分配。你必须做'word1 = word1 [:i] +空格+ word1 [i + 1:]'来代替。 –

+0

下次,在发布新问题之前,请至少Google提供错误消息。 – TigerhawkT3

+0

word.replace(“”,“/”) –

回答

1

正如错误消息所述,您不能修改字符串。

一种方法,可以让你保持最你写的代码,是你的字符串转换为字符的列表:

word = list(word) 

然后加入它放回当你是一个刺痛完成:

word = "".join(word) 

另一种方法是建立一个新的字符串,并有条件地选择其角色将连接到它:

result = "" 
for c in word: 
    if c = " ": 
     result += space # should be named slash 
    else: 
     result += c 

但是一个更好的解决办法是用一条线来代替所有的代码:

word = word.replace(" ", "/") 
0

字符串在python中是不可变的,也就是说,它们的元素不能被改变或重新排列。

尝试创建一个新的字符串,并把你的角色放在里面。