2014-11-21 2 views
-4

어떻게 문자열 리터럴을 검색하는 동안 "EOL"을 얻지 않고도 긴 텍스트의 공백 수를 계산할 수 있습니까? 또한 '카운트'기능을 사용하면 텍스트가 다음과 같이 표시됩니다. ''나는 '에이다'가 아니라고 확신합니다. '그녀의 머리카락이 긴 링렛에 들어가고, 내 것이 링컨에 전혀 들어 가지 않기 때문에. ""문자열 리터럴을 검색하는 동안 EOL"

+6

코드를 표시하십시오. – abarnert

+1

텍스트 편집기에서 사용하는 모든 문자열을 두 줄로 구분할 수 있습니까? –

답변

-1

the str.count() method을 올바르게 적용하지 않았을 수 있습니다 (즉, 문자열이 잘못되었습니다).

s = "'I'm sure I'm not Ada,' she said, 'for her hair goes in such long ringlets, and mine doesn't go in ringlets at all;" 
#If you get the same SyntaxError: EOL at this point, there is something 
#wrong with the string you are inputting. 
s.count(' ') #Result: 22 
+0

먼저, 질문에 이미'count'가 사용되었다고합니다. 둘째,'string.count'는 메소드가 아니라 함수이며,'str.count' 메소드와 같은 기능을하는 비추천 함수이므로, 왜 전환하는 것이 도움이 될지 모르겠습니다. – abarnert

+0

예,'str.count'는 메서드입니다.하지만'string.count'는 그렇지 않습니다. 사용자가 이미 사용하고있는 것과 동일한 방법을 사용하라고하거나, 대신 동일한 기능을하는 것으로 전환하라고 말하든, 어떻게 도움이되는지는 알 수 없습니다. – abarnert

+0

해당 예외를 발생시킬 수있는 방법을 잘못 사용할 수있는 방법은 없습니다. 그래서 그는 분명히 뭔가 잘못하고 있습니다. 그 무엇이 다른 것을 추측 할 수 없다면, 의견을 달거나 투표를 닫거나 질문을 줄 일 수 있습니다. 그러나 문제를 해결할 수없는 대답을 작성하는 것은 도움이되지 않습니다. – abarnert

4

이 오류는 SyntaxError과 마찬가지로 파서에서만 발생합니다.

당신이 eval, exec, 또는 (파이썬 2.x에서의) input를 호출하지 않는 한, 즉 문제 문자열이 아닌 입력에, 코드에 을 의미합니다. , 당신은 큰 따옴표, 그리고 때까지 다음 따옴표로 시작하는 문자열을 가지고

spaces = s.count(" ') 

이 경우 예를 들어, 어쩌면이 같은입니다. 다음 큰 따옴표가 없으므로 구문 오류입니다.

문자열 자체가 코드에서 문자 인 경우 마크 랜섬은 지적으로 또는, 어쩌면 당신의 텍스트 편집기는 두 행으로 분할 :이 경우

s = "'I'm sure I'm not Ada,' she said, 'for her hair goes in such long ringlets, and 
mine doesn't go in ringlets at all;" 
s.count(" ") 

, 다시, 당신은있어 첫 번째 큰 따옴표로 시작하는 문자열이며 그 행에 다음 큰 따옴표가 없으므로 구문 오류와 같습니다. (이 경우에도 count으로 불만을 토로하고 있지는 않지만 예외는 흔적을 남기고 있습니다. 즉, 당신이나 당신을 도우려는 사람들, 실제로 문제가있는 곳 당신이 생각하지 않아도, 일어났다.)


당신 eval 또는 관련 기능을 사용하여 있습니다, 당신은이 코드 것처럼 문자열을 치료하기 위해 파이썬을 요구하고, 그 문자열이있는 경우 비슷한 문제.

명백한 해결책은 eval을 호출하지 않는 것입니다.

파이썬 2.x에서 input을 호출하는 경우 이는 eval(raw_input(…))과 동일하므로 raw_input으로 변경하십시오.

+0

"이 오류는 파서에서만 가져옵니다." +1 나는 그것을 몰랐다. –

+0

@RickTeachey : 음, OP가 추적 표시를 표시하지 않았거나 오류 유형이 ['SyntaxError'] (https://docs.python.org/3/library/exceptions.html#SyntaxError)라고 언급했는데 이는 당신은 단지 "EOL을 스캔하는 동안"설명 문자열을 인식한다면 ... – abarnert

관련 문제