2016-11-27 74 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中是不可變的,也就是說,它們的元素不能被改變或重新排列。

嘗試創建一個新的字符串,並把你的角色放在裏面。