퍼센트 출력이 그때 그때 달라요


발생하는 문제 및 실행환경

"%%"를 출력하면 어떤 때는 하나만 나오고 어떤 때는 2개가 나오는데 이 차이는 어디서오는 걸까요?

저는 파이썬 3.5.1 쓰고 있습니다.

소스코드

test = "끝내자"

print("%%") #여기는 2개 출력됨
print("퍼센트를 출력 %% 하고 %s" % test) #여기는 1개 출력 됨

출력 :

%%
퍼센트를 출력 % 하고 끝내자
  • 2016년 02월 16일에 작성됨

조회수 374


1 답변


좋아요
3
싫어요
채택취소하기

첫 번째 쓰신건 포멧 스트링이 아닌 그냥 문자열이라서 %% 가 둘다 출력된 것이고, 두 번째 쓰신건 포멧 스트링이라서 %% 를 % 출력을 위해 사용한 것으로 해석해서 그렇습니다.

포멧 스트링은 문자열 내에 %로 시작하는 것을 치환 문자로 처리하게 되는데요. %d는 숫자, %s는 문자 등으로 처리합니다.

그래서 %만 쓰면 포멧이 잘 못되었다는 에러메세지를 볼 수 있는데요.

>>> print ("This is %" % 100)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: incomplete format

사용자가 % 를 포멧 스트링내에서 출력하기 위해서 사용되는 약속된 지시어가 %% 입니다.


  • 오 그러니까 뒤에 %test때문에 %%가 형식지정자로 된다는 말씀이신거죠 이제 알겠어요. 고맙습니다😊    불고기   2016.2.23 11:52     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close