본문 바로가기

삶은계란 (Diary)/일상

쌩뚱맞은 'SyntaxError: invalid character in identifier' 해결하기

서론


최근 친구들과 함께 알고리즘 공부를 위해 파이썬을 복습하고 있다.
서로 작성한 코드를 채팅을 통해 주고받는데 유독 한 녀석의 코드만 문제가 생겼다.

 

본론


SyntaxError: invalid character in identifier

 

위와 같은 이름의 에러로 문제가 없는 코드지만 문법 오류라며 발광한다.
조금 특이했던 점은

위와 같이 같은 문장을 다시 작성하면 에러가 사라진다는 점이다.

위와 같은 문제는 코드를 복사, 붙여넣기 하다 보면 자주 발생하는 문제로,
육안으로는 문제가 없어 보이지만 내부적으로는 다른 문자가 사용된 경우 발생한다.

주로 발생하는 부분은 다음과 같다.

  • 코드 내의 공백 (Tab, Space)
  • '.'와 ','
  • ';'와 ';'
  • '-'와 '—'
  • '''와 '`'

따라서 위의 문자들을 전부 정상적인 문자로 교체해 주면 문제는 해결된다.

 

결론


원래의 코드가 악의적으로 작성되지 않았다는 가정 하에
가장 빈도수가 많은 것은 '공백'으로 나도 이 경우에 해당됐다.

코드가 짧다면 직접 다시 작성하는 것이 게임(?)도 되고 괜찮을 수 있지만
코드가 좀 길다면 이걸 하나씩 찾는다는 것 자체가 조금 많이 곤란할 수 있다.

View non-printable unicode characters

 

 

View non-printable unicode characters

View non-printable unicode characters Online tool to display non-printable characters that may be hidden in copy&pasted strings. S83 0x53e101 0x65e101 0x65U+A0  \u00A0w119 0x77h104 0x68a97 0x61t116 0x74'39 0x27s115 0x73·​32 0x20h104 0x68i105 0x69d100 0

www.soscisurvey.de

그런 경우 위의 사이트에 복사해 구동하는 것으로

이렇게 쉽게 비표준 문자들을 찾을 수 있다.