TIL no.18 - Python - 1. String

박준규·2019년 10월 10일
0

Python

목록 보기
1/15

1. Python의 Data Types

Integer 정수 (7) 꼴

Float 소수 (2.3) 꼴

Complex Numbers (1+3j) 꼴

String

Boolean

2. string formatting

2-1. %-formatting

C언어의 %d와 비슷합니다.

사용법은 다음과 같습니다.

>>> name = "Eric"
>>> "Hello, %s." % name
'Hello, Eric.'

만약 변수를 2개 이상 사용하고 싶은 경우에는 튜플을 사용합니다.

>>> name = "Eric"
>>> age = 74
>>> "Hello, %s. You are %s." % (name, age)
'Hello Eric. You are 74.'

%-formatting은 좋은 방법이 아닙니다. 변수가 많아지고 string이 길어진다면 읽기 매우 불편하기 때문입니다.

2-2. str.format()

Python 2.6에서 도입된 방법입니다.
str.format()은 %-formatting과 비슷합니다. %s 대신에 replacement fields를 사용하고 replacement fields는 curly braces로 마크됩니다.

>>> "Hello, {}. You are {}.".format(name, age)
'Hello, Eric. You are 74.'

그리고 튜플의 index를 사용해 참조할 수 있습니다.

>>> "Hello, {1}. You are {0}.".format(age, name)
'Hello, Eric. You are 74.'

딕셔너리도 사용할 수 있습니다.

>>> person = {'name': 'Eric', 'age': 74}
>>> "Hello, {name}. You are {age}.".format(name=person['name'], age=person['age'])
'Hello, Eric. You are 74.'

딕셔너리를 사용할 때, 깔끔하게 **을 사용하는 방법도 있습니다.

>>> person = {'name': 'Eric', 'age': 74}
>>> "Hello, {name}. You are {age}.".format(**person)
'Hello, Eric. You are 74.'

하지만 str.format() 방법도 많은 인자와 긴 string을 다루는 경우 매우 복잡합니다.

2-3.f-Strings

Python 3.6에서 도입된 방법입니다.
formatting을 쉽게 만들어 줍니다.

>>> name = "Eric"
>>> age = 74
>>> f"Hello, {name}. You are {age}."
'Hello, Eric. You are 74.'

대문자 F도 사용할 수 있습니다.

>>> F"Hello, {name}. You are {age}."
'Hello, Eric. You are 74.'

f-strings에서는 모든 Python 표현을 사용할 수 있습니다.

>>> f"{2 * 37}"
'74'

함수도 호출할 수 있습니다.

>>> def to_lowercase(input):
...     return input.lower()

>>> name = "Eric Idle"
>>> f"{to_lowercase(name)} is funny."
'eric idle is funny.'

method 호출도 가능합니다.

>>> f"{name.lower()} is funny."
'eric idle is funny.'

더 많은 내용이 있지만 다른 개념들을 더 공부한 뒤, 포스팅 하겠습니다.

profile
devzunky@gmail.com

0개의 댓글