2016-11-02 15 views
-6

Pythonの文字列から句読点を削除するにはどうすればよいですか?私は誰かがStackoverflowに投稿したアプローチに従っていましたが、うまくいきません。文字列から句読点を削除する

punctuation = ['(', ')', '?', ':', ':', ',', '.', '!', '/', '"', "'"] 

str = input("Hi, my name is Yael Shapiro!") 

for i in punctuation: 
    str = str.replace(i,"") 

print(str) 
+3

*「役に立たない」とは、全く役に立たない問題の説明 – jonrsharpe

+0

また、変数名として組み込み関数を使用しないでください。 'str'は組み込み型であり、組み込みの名前をシャドーイングする際に問題に遭遇します。 – idjaw

答えて

0

私はうまくgencomp"".join()作品の組み合わせを使用して見つける:

>>> import string 
>>> s = "Does this string. Have punctuation?" 
>>> 
>>> "".join((char for char in s if char not in string.punctuation)) 
'Does this string Have punctuation' 
>>> 

を、サイドノートとして、それalready has a meaning in the Python languageなどの識別子としてstrを使用しないでください。

あなたのコードがうまくいかない理由はおそらく、あなたが何かを誤解しているからです。input()がそうです。 input()は、単にユーザーからの入力を取得し、入力を返します。 sstr = "Hi, my name is Yael Shapiro!"

+0

ありがとう!だから次のように変更していますが、それでも句読点を削除していません: インポート文字列 sstr = "こんにちは、私の名前はYael Shapiroです!" "" .join(文字列が文字列でない場合はsstrのchar)) print(sstr) – Yjell

+0

削除された文字列に 'sstr'の値を代入する必要があります。つまり、 'sstr =" .join((string.punctuationにない文字の場合はsstrのcharのchar)) '.join((string.punctuationにcharがない場合はsstrのcharのchar))の代わりに' '。 –