티스토리 뷰
포맷 문자열 리터럴 ('f' 나 'F' 를 앞에 붙인 문자열 리터럴) 을 사용하려면, 시작 인용 부호 또는 삼중 인용 부호 앞에 f 또는 F 를 붙여 문자열을 시작해야한다. 이 문자열 안에서 { 와 } 사이에 변수 또는 리터럴 값을 참조할 수 있는 파이썬 표현식을 사용한다.
>>> year = 2016
>>> event = 'Referendum'
>>> f'Result of the {year} {event}'
'Result of the 2016 Referendum'
문자열의 str.format() 메소드를 이용하면 조금 더 다양한 표현이 가능하다. 변수가 될 위치를 표시하기 위해 { 와 } 를 사용하고, 자세한 포맷팅 디렉티브를 제공할 수 있지만, 포맷할 정보도 제공해야 한다.
>>> yse_votes = 42572654
>>> no_votes = 43132495
>>> percentage = yes_votes / (yes_votes + no_votes)
>>> # {:-9} --> 우측정렬이고 고정 9 자리로 표현
>>> # {:2.2%} --> 정수부분 2자리, 소수점부분 2자리료 표현
>>> '{:-9} YES votes {:2.2%}'.format(yes_votes, percentage)
' 42572654 YES votes 49.67%'
장식적인 출력이 필요하지 않고, 디버깅을 위해 일부 변수를 빠르게 표시하려면 repr() 또는 str() 함수를 사용하여 모든 값을 문자열로 변환할 수 있다.
>>> s = 'Hello, world.'
>>> str(s)
'Hello, world.'
>>> repr(s)
"'Hello, world.'"
>>> str(1/7)
'0.14285714285714285'
>>> x = 10 * 3.25
>>> y = 200 * 200
>>> s = 'The value of x is ' + repr(x) + ', and y is ' + repr(y) + '...'
>>> print(s)
The value of x is 32.5, and y is 40000...
>>> hello = 'hello, world\n'
>>> hellos = repr(hello)
>>> print(hellos)
'hello, world\n'
>>> hellos = str(hello)
>>> print(hellos)
hello, world
>>>
포맷 문자열 리터럴은 문자열에 f 또는 F 접두어를 붙이고 표현식을 {expression} 로 작성하여 문자열에 파이썬 표현식의 값을 삽입할 수 있게 한다. 선택적인 포맷 지정자가 표현식 뒤에 올 수 있다. 다음의 예는 원주율을 소수점 이하 세 자리로 반올림한다.
>>> import math
>>> print(f'The value of pi is approximately {math.pi:.3f}.')
The value of pi is approximately 3.142.
':' 뒤에 정수를 전달하면 해당 필드의 최소 문자 폭이 된다. 열을 맞출 때 편리하다.
>>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678}
>>> for name, phone in table.items() :
... print(f'{name:10} ==> {phone:10d}')
...
Sjoerd ==> 4127
Jack ==> 4098
Dcab ==> 7678
str.format() 메소드의 기본적인 사용법은 아래와 같다.
>>> print('We are the {} who say "{}!"'.format('knights', 'Ni'))
We are the knights who say "Ni!"
중괄호와 그 안에 있는 문자들은 str.format() 메소드로 전달된 객체들로 치환된다. 중괄호 안의 숫자는 str.format() 메소드로 전달된 객체들의 위치를 가리키는데 사용될 수 있다.
>>> print('{0} and {1}'.format('spam', 'eggs'))
spam and eggs
>>> print('{1} and {0}'.format('spam', 'eggs'))
eggs and spam
str.format() 메소드에 키워드 인자가 사용되면, 그 값들은 인자의 이름을 사용해서 지정할 수 있다.
>>> print('This {food} is {adjective}.'.format(
... food='spam', adjective='absolutely horrible'))
This spam is absolutely horrible.
정수, 제곱, 세제곱 정수를 표현하는 예이다. 문자열 객체의 str.rjust() 메소드는 왼쪽에 스페이스를 채워서 주어진 폭으로 문자열을 우측정렬한다. 비슷한 메소드로 str.ljust(), str.center() 도 있다. 이 메소드들은 아무것도 출력하지 않고 새로운 문자열만 리턴한다. (입력 문자열이 너무 길면 변경없이 그냥 리턴함)
>>> for x in range(1, 11) :
... print(repr(x).rjust(2), repr(x*x).rjust(3), end=' ')
... print(repr(x*x*x).rjust(4))
...
1 1 1
2 4 8
3 9 27
4 16 64
5 25 125
6 36 216
7 49 343
8 64 512
9 81 729
10 100 1000
str.zfill() 메소드는 숫자 문자열의 왼쪽에 0을 채운다.
>>> '12'.zfill(5)
'00012'
>>> '-3.14'.zfill(7)
'-003.14'
>>> '3.14159265359'.zfill(5)
'3.14159265359'
END
'IT > Python' 카테고리의 다른 글
[Python] 예외 처리 (0) | 2020.08.02 |
---|---|
[Python] 파일 읽고 쓰기 (0) | 2020.08.01 |
[Python] 모듈 (0) | 2020.08.01 |
[Python] 루프 테크닉 (0) | 2020.07.17 |
[Python] 딕셔너리 (0) | 2020.07.16 |