python으로 작성 된 코드를 보다보면 string 앞에 r 또는 f 가 붙어있는 경우가 있다.
특수한 목적을 위해 사용하는 표현식인데, 우선 f 를 먼저 보자
Formatted string literals
본론부터 말하자면 string 앞 f 는 formatted string 리터럴 을 의미한다.
python 3.6 에서부터 사용되기 시작했으며 이전에는 .format 같은 방식으로 사용해 왔었다.
formatted string literals 는 아래 코드 예시처럼 사용 가능하다.
>>> a = 1
>>> b = 2
>>> fs = f"{a} is a, {b} is b"
>>> print(fs)
그러면 출력은 어떻게 나올까? 아래처럼 실제 값을 대입해서 보여준다.
참고삼아 예전에는 이런 방식으로 사용했다는 것만 알아두고 가자.
아무튼 이렇게 format 을 뒤에 써 가면서 하던 방식이 python3 로 바뀌면서 얼마나 편해졌는지 모른다.
이걸로 formatted string literal 에 대한 궁금증은 해소가 되었을 것 같다.
이제 r 의 의미를 알아보자.
Raw string
python에서 string 앞에 r 을 표기해 주는 것은 해당 string literal을 raw string 으로 만들어 주기 위함이다.
예시를 보면 조금 이해하기 편할 것 같다.
>>> mystring = "hello\tworld\nI'm Kim"
>>> print(mystring)
hello world
I'm Kim
>>> mystring_raw = r"hello\tworld\nI'm Kim"
>>> print(mystring_raw)
hello\tworld\nI'm Kim
출력이 차이가 난다는 것을 알 수 있을 것이다.
r이 없는 mystring의 경우, 개행이나 각종 Escape 문자를 출력하지 않는다.
개행문자는 개행이 되고, \t 은 tab처리된다.
그런데 raw string은 다르다.
모든 Escape 문자를 그대로 출력해 준다.
Raw string은 내 경험 상 regex를 이용해서 문자열을 찾아야 하는 경우 사용했던 것으로 기억한다.
tab이나 개행문자도 같이 찾아줘야했기 떄문이다.
그 외에도 여러 필요성이 있겠지만 ..
이번 포스팅은 string앞에 prefix로 사용되는 f 와 r 의 의미 정도만 정리하는 것으로 마무리 하려고 한다.
'CS > Python' 카테고리의 다른 글
[CS/Python] Python 3.10.0 final release - 릴리즈 노트 읽기 (0) | 2022.03.10 |
---|---|
[python] python에서 사용하는 점 3개( ... )의 의미 (0) | 2021.12.12 |
[python] positional argument 의 개념, 의미 (0) | 2021.11.17 |
[python] string object의 count 함수 사용 시 주의사항 (0) | 2021.11.14 |
[python] map 함수(map function) 의 사용방법 및 예시 (0) | 2021.11.13 |