2016-11-02 3 views
-6

어떻게 파이썬 문자열에서 구두점을 제거합니까? 누군가가 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

정말 고마워요! 그래서 다음과 같이 바꾸고 있지만 구두점을 지우지는 않습니다. import string sstr = "안녕하세요, 저는 Yael Shapiro입니다!" "".join (string.punctuation에없는 문자 인 경우 sstr의 char 문자) print (sstr) – Yjell

+0

스트립 된 문자열에 'sstr'값을 할당해야합니다. 즉,'sstr = ".join ((string.punctuation에없는 char 인 경우 sstr의 char)) 대신''.join ((string.punctuation에없는 char 인 경우 sstr의 char))을 사용하십시오. '. –