2012-06-21 3 views
4

문장에 공백 문자 이외의 것이 있으면 테스트하고 싶습니다. 현재 사용중인 것은 다음과 같습니다.비 공백의 문자열 내용 테스트

if len(teststring.split()) > 0: 
    # contains something else than white space 
else: 
    # only white space 

이 정도면 충분합니까? 그것을하는 더 좋은 방법이 있습니까?

+0

비 공백 라인입니까? – Levon

+6

''\ t \ n \ v \ f '.isspace()'. Done – JBernardo

답변

13

문자열이 방법은 문서에 따르면, str.isspace있는 불렀다 :

반환 [S] 진정한

가있는 경우 문자열에 공백 문자 만 있고 적어도 하나의 문자가 있으면 그렇지 않으면 false입니다.

그래서, 그 의미

if teststring.isspace(): 
    # contains only whitespace 

당신이 원하는 것을 할 것입니다.

+1

'모두 (teststring에서 c를위한 c.isspace()) - 약간 더 짧다 :) – astynax

+6

이해가 필요 없다 :'\ t \ n \ v \ f '.isspace()' – JBernardo

+2

@JBernardo : 재미있다. 여기에 나열된 모든 답변의 답변은 귀하의 의견입니다;) – Tadeck

7

이 목적으로 strip() 함수를 사용합니다.

if teststring.strip(): 
     # non blank line 
    else: 
     # blank line 
+0

'그렇지 않으면 teststring.strip() : ' – astynax

+0

@astynax 문법적 추천을하고 있습니까, 아니면 구문/솔루션에 이상이 있습니까? 나는 이것을 위해 downvote를 얻었 느냐? (내가 말할 수 없기 때문에 묻고있다.) – Levon

+0

@astynax 제안 된 if 문은 위의 코드에 대입하면 반대의 결과를 가져온다. 내 솔루션은 내가 말할 수있는 한 기능적입니다. – Levon

1
if teststring.split(): 
     print "not only whitespace!" 
else: 
    print ":(" 
2

당신은) (.strip 사용할 수 있습니다.

결과 문자열이 공백 인 경우 비어있게됩니다. JBernardo는 지적

if teststring.strip(): 
    # has something other than whitespace. 
else: 
    # only whitespace 

이 아니면 더 명시 적으로 :

if not teststring.isspace(): 
    # has something other than whitespace 

else: 
    # only whitespace. 
관련 문제