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

조회수 3133회

발생하는 문제 및 실행환경

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

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

소스코드

test = "끝내자"

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

출력 :

%%
퍼센트를 출력 % 하고 끝내자

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 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.