파이썬 특수문자 % 의 기능 질문드립니다.
글쓴이: boms / 작성시간: 수, 2013/10/16 - 8:16오후
기본적으로 WikiDocs 에 있는 "왕초보를 위한 Python 2.7" 강좌는 끝마치고
다이빙 파이썬 : http://coreapython.hosting.paran.com/dive/chap00.html
에서 기초부터 다시 한 번 훓고 있는 중입니다.
그런데 기초부터 모르는게 너무많이 있는게 눈에 들어오더군요. 특히, 자주 사용하는 함수는 완벽하게 소화를 해야 한다가 신조이기에 print 함수가 만만찬게 저를 괴롭힙니다.
본론으로 들어가서, print 함수를 보면 그 쓰임세가 참... 이게 C 언어 printf 인지 Java 의 out.print 인지 도통 헤깔리더군요. 머 기능이 좋은건 이해를 하는데 다음 구문이 저를 당혹스럽게 했습니다.
저를 당혹스럽게 한 구문들 :
";".join(["%s=%s" % (k, v) for k, v in params.items()])
print "%s is not a good password for %s" % (pwd, uid)
문자열을 나타내는 "" 안에서 %의 사용법은 알고 있습니다. 그런데 그 밖에서 콤마 대신 % 를 이용하여 대입을 하고 있습니다. 이 문자에 대해 설명을 해 주셨으면 해서 질문을 드립니다.
Forums:
다이빙파이썬의 3.5. 문자열 형식화 장에서 따온
다이빙파이썬의 3.5. 문자열 형식화 장에서 따온 샘플인 것 같은데요,
이미 C의 printf를 아시는 것 같은데 아래 예에서 무엇이 헷갈리는 것인지요?
굳이 말을 보태자면, 마지막에 나온 % 는 포맷문자열인 "%s is not a good password for %s"를
인수목록을 담고 있는 (pwd, uid) 터플과 맺어주는 역할을 할 뿐 포매팅에 직접 간여하지는 않습니다.
그리고, 당혹스러워하시는 구문 가운데 첫번째 예인 아래 코드는
지능형 리스트(list comprehension)를 쓰고 있어 헷갈릴 여지가 있습니다만,
다이빙파이썬의 3.6. 리스트 짝짓기 장부터 보시면 단계적으로 잘 설명되어 있네요.
다이빙파이썬을 샘플실행을 확인해가며 더 천천히 따라가 보시면 이해에 도움이 될 것입니다.
댓글 달기