표현하고자 하는 문장
He is John Doe, and he is 22 years old.
first_name = 'John'
last_name = 'Doe'
age = 22
print('He is ' + first_name + ' ' + last_name + ', and he is ' + str(age) + ' years old.')
하지만 위의 방법은 너무 불편합니다.
그래서 파이썬에는 다양한 string formatting 방법이 존재합니다.
first_name = 'John'
last_name = 'Doe'
age = 22
print(('He is %s %s and is %i years old.') % (first_name, last_name, age))
%를 활용하니 코드가 훨씬 간결해졌습니다.
% 앞에 원하는 타입의 앞글자를 따서 쓰면 해당 타입을 입력받을 준비를 합니다.
예시
그리고 프린트할 전체문장 뒤에 % 를 놓고
입력이 들어가는 순서대로의 element를 가진 tuple을 둡니다.
(formatting이 필요한 요소가 하나라면, 튜플은 필요 없습니다.)
first_name = 'John'
last_name = 'Doe'
age = 22
# %i 대신 %f 을 써주면?
print('He is %f years old.' % age)
# 결과 -> He is 22.000000 years old.
# %f 사이에 (.정수) 를 써주면 해당 정수만큼의 소수점을 가집니다.
print('He is %.2f years old.' % age)
# 결과 -> He is 22.00 years old.
하지만 % 연산자는 입력받을 변수의 타입을
일일이 입력해줘야하는 번거러움이 있습니다.
그래서 파이썬 3 에서는 새로운 포맷팅 방법인 str.format() 이 소개되었습니다.
first_name = 'John'
last_name = 'Doe'
age = 22
print('He is {first_name} {last_name} and he is {age} years old'
.format(first_name=first_name,
last_name=last_name,
age=age))
first_name = 'John'
last_name = 'Doe'
age = 22
# 마찬가지로 format해줘야할 값이 하나라면 좀 더 간단하게 구현이 가능합니다.
print('He is {} years old.'.format(age))
위 format 방법도 여전히 불편해 보입니다.
format해줘야 할 값이 여러가지라고 가정해봅시다.
일일이 .format()의 인자에 같은 이름의 변수를 두 번씩이나 적어줘야 하죠.
그래서 파이썬 3.6 이상부터는 f문이 추가되었습니다.
현재 가장 편리하면서도 가장 많이 쓰이는 string formatter입니다.
first_name = 'John'
last_name = 'Doe'
age = 22
print(f'He is {first_name} {last_name} and he is {age} years old.')
정말 비교도 안될 정도로 코드가 짧아지고 간단해졌습니다.
구현방법도 너무 쉽습니다.
출력하고자 하는 string 앞에 f 하나만 붙여주면 됩니다.
여러줄이 띄어져있는 경우에도 사용 가능합니다.
print(f'''He is {first_name} {last_name}
and he is {age} years old.''')
[python]튜플, 왜 쓰는걸까? (1) | 2021.03.18 |
---|---|
[python]함수의 인자 형태와 순서 / (non)default value parameter, *args, **kwargs (0) | 2021.03.17 |
파이썬 매직 메소드(던더 메소드) (2) | 2021.02.28 |
파이썬 예외처리 (try, except, else, finally, assert) (0) | 2021.02.26 |
가변객체(mutable)와 불변객체(immutable) / 파이썬 (2) | 2021.02.19 |
댓글 영역