상세 컨텐츠

본문 제목

[Python] 문자열을 붙이는 다양한 방법 (string concatenation)

언어/Python

by moonionn 2021. 3. 17. 16:39

본문

표현하고자 하는 문장

He is John Doe, and he is 22 years old.

 

1. 가장 기본적인 방법

first_name = 'John'
last_name = 'Doe'
age = 22

print('He is ' + first_name + ' ' + last_name + ', and he is ' + str(age) + ' years old.')

하지만 위의 방법은 너무 불편합니다.

그래서 파이썬에는 다양한 string formatting 방법이 존재합니다.

 

2. % 연산자

first_name = 'John'
last_name = 'Doe'
age = 22

print(('He is %s %s and is %i years old.') % (first_name, last_name, age))

%를 활용하니 코드가 훨씬 간결해졌습니다.

% 앞에 원하는 타입의 앞글자를 따서 쓰면 해당 타입을 입력받을 준비를 합니다.

 

예시

  • %s: str 타입을 입력받습니다.
  • %i: int 타입을 입력받습니다.
  • %f: float 타입을 입력받습니다.

 

그리고 프린트할 전체문장 뒤에 % 를 놓고

입력이 들어가는 순서대로의 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

하지만 % 연산자는 입력받을 변수의 타입을

일일이 입력해줘야하는 번거러움이 있습니다.

그래서 파이썬 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))

 

4. f문

위 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.''')

 

관련글 더보기

댓글 영역