2016-11-27 5 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) 

私は、次のエラーを取得しています:「例外TypeError: 『strの』オブジェクトは、アイテムの割り当てをサポートしていません」 それは私が単語1 [I] =空白を交換していますことを好きではありません。 両方が文字列であるため、私はなぜそれが理解できません。Pythonの文字列型エラー

+1

、それがインデックスで割り当てることができません。代わりに 'word1 = word1 [:i] + space + 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 

しかし、はるかに優れたソリューションは、単一の行をすべてそのコードを置き換えることです:文字列がインデックスとpythonで反復処理することができますが

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

文字列はPythonで不変です。つまり、要素は変更または再配置できません。

新しい文字列を作成し、その中に文字を入れてみてください。