Skip to content

2.05. 내용정리: 5일차

흔한 찐따 edited this page Mar 15, 2022 · 1 revision

문자열 (str)

특징

  • 문자열 (str) 타입 역시 여러 문자 타입이 나열된 타입이므로, 문자열도 컨테이너(Container) 타입이다.
  • 선언 시 작은 따옴표 ' 혹은 큰 따옴표 " 로 선언한다.
  • 다른 컨테이너 타입들과 마찬가지로 해당 타입명의 str 함수를 통해 선언할 수도 있다.
a = 'Hello'
b = "Python!"
print(a, ',', b)

s = str('Hello, Python!')
print(s)
  • 다른 타입을 문자열로 바꾸는 것이 가능하다.
n = 10
s = str(n)

print('s:', s)
print(type(s))
  • 이미 선언된 문자열을 del 키워드로 문자를 제거할 수 없다.
  • 만약 del 키워드로 문자 하나를 제거하려고 할 경우, TypeError 에러가 발생한다.
a = 'Hello'
# del 키워드로 문자 하나를 삭제하려고 하면 아래의 에러가 출력된다.
# TypeError: 'str' object doesn't support item deletion
del a[0]
print(a)
  • 문자열도 덧셈 연산과 곱셈 연산이 가능하다.
    • 문자열을 곱셈하는 경우, 일반적인 곱셈 연산 방식이 아니라 n번만큼 문자열이 추가로 연결된다.
a = 'Hello'
b = 'Python!'

# 덧셈
c = a + ', ' + b
print(c)

# 곱셈
n = 3
d = a * n
print(d)
  • 문자열도 인덱싱과 슬라이싱이 가능하다.
d = c[0]
e = c[0:5]

print('d:', d)
print('e:', e)
  • 문자열 역시 컨테이너 타입이므로, 값(문자)가 있으면 True , 비어있으면 False 이다.
t = bool('True')
f = bool('False')
void = bool('')
space = bool(' ')

print('"True" is', t)
print('"False" is', f)
print('"" is', void)
print('" " is', space)

독스트링(Docstring)

특징

  • 독스트링도 문자열 (str) 타입이다.
  • 주석과 비슷한 쓰임새로 사용된다.
  • 주로 한 문장이 아닌 여러 문장의 긴 문자열들을 선언할 때 사용된다.
  • 주로 파이썬 패키지나 함수, 클래스의 설명(긴 문장)을 위해 사용한다.
    • 패키지는 대충 무엇인지 알겠는데, 아직 클래스가 뭔지 잘 모르겠다. 공부 필요.
  • 선언 시 작은 따옴표 ' 혹은 큰 따옴표 " 를 세 번 사용하여 선언한다.
  • ex.
a = '''작은 따옴표'''
b = """큰 따옴표"""

print(a)
print(b)

print(type(a))
print(type(b))

s = '''안녕하세요, 흔한 찐따입니다.
만나서 정말 반갑습니다.'''

print(s)

이스케이프 코드 (Escape Code)

이스케이프 코드란, 프로그래밍할 때 사용할 수 있도록 미리 정의해 둔 문자 조합이며, 주로 문자열 안에 특수 문자를 사용하거나 출력 결과를 보기 좋게 정렬하는 용도로 사용한다.

몇 가지 이스케이프 코드를 정리하면 다음과 같다.

이스케이프 코드 표

코드 설명
\n 문자열 안에서 줄을 바꿀 때 사용
\t 문자열 사이에 탭 간격을 줄 때 사용
\\ 문자 \를 그대로 표현할 때 사용 (마크다운 문법과 동일)
\' 작은따옴표(')를 그대로 표현할 때 사용
\" 큰따옴표(")를 그대로 표현할 때 사용
\r 캐리지 리턴(줄 바꿈 문자, 현재 커서를 가장 앞으로 이동)
\f 폼 피드(줄 바꿈 문자, 현재 커서를 다음 줄로 이동)
\a 벨 소리(출력할 때 PC 스피커에서 '삑' 소리가 난다)
\b 백 스페이스
\000 널(null) 문자

이중에서 활용빈도가 높은 것은 \n , \t , \\ , \' , \" 이다.

나머지는 프로그램에서 잘 사용하지 않는다.

문자열 포매팅 (Formatting)

문자열에서 또 하나 알아야 할 것으로는 문자열 포매팅(Formatting) 이 있다. 예를 들어 다음과 같은 문자열을 출력하는 프로그램을 작성했다고 가정해 보자.

"현재 온도는 18도입니다."

시간이 지나서 20도가 되면 다음 문장을 출력한다.

"현재 온도는 20도입니다"

위 두 문자열은 모두 같은데 20 이라는 숫자와 18 이라는 숫자만 다르다.

이렇게 문자열 안의 특정한 값을 바꿔야 할 경우가 있을 때 이것을 가능하게 해주는 것이 바로 문자열 포매팅 기법이다.

쉽게 말해 문자열 포매팅이란 문자열 안에 어떤 값을 삽입하는 방법이다.

예시

1. 숫자 대입

s = 'I eat %d apples.' % 3
print(s)

문자열 안에서 숫자를 넣고 싶은 자리에 %d 문자를 넣어 주고, 삽입할 숫자 '3'은 가장 뒤에 있는 % 문자 다음에 써 넣었다. 여기에서 %d 는 문자열 포맷 코드라고 부른다.

2. 문자열 대입

s = 'I eat %s apples.' % 'five'
print(s)

위 예제에서는 문자열 안에 또 다른 문자열을 삽입하기 위해 앞에서 사용한 문자열 포맷 코드 %d 가 아닌 %s 를 썼다. 즉, 숫자를 넣기 위해서는 %d 를 써야 하고, 문자열을 넣기 위해서는 %s 를 써야 한다.

※ 문자열을 대입할 때는 앞에서 배운 것처럼 큰따옴표나 작은따옴표를 반드시 써주어야 한다.

3. 숫자 값을 나타내는 변수로 대입

n = 3
s = 'I eat %d apples.' % n
print()

1번 예시처럼 숫자를 바로 대입하나 위 예제처럼 숫자 값을 나타내는 변수를 대입하지만 결과는 같다.

4. 2개 이상의 값 넣기

n = 10
s = 'three'
s2 = 'I ate %d apples. so I was sick for %s days.' % (n, s)
print(s2)

위 예문처럼 2개 이상의 값을 넣으려면 마지막 % 다음 괄호 안에 콤마 (,) 로 구분하여 각각의 값을 넣어 주면 된다.

문자열 포맷 코드

문자열 포맷 코드로는 다음과 같은 것이 있다.

문자열 포맷 코드 표

코드 설명
%s 문자열 (String)
%c 문자 1개 (Character)
%d 정수(Integer)
%f 부동소수(floating-point)
%o 8진수
%x 16진수
%% Literal % (문자 % 자체)

format 함수를 사용한 포매팅

문자열의 format 함수를 사용하면 좀 더 발전된 스타일로 문자열 포맷을 지정할 수 있다.

예시

  • format 함수 사용
n = 10
s = 'I ate {0} apples.'.foramt(n)
print(s)
  • 여러 값들을 대입하기
n1 = 11
n2 = 10
s = '{0} is bigger than {1}.'.format(n1, n2)
print(s)

f 문자열 포매팅

파이썬 3.6 버전부터는 f 문자열 포매팅 기능을 사용할 수 있다. 파이썬 3.6 미만 버전에서는 사용할 수 없는 기능이므로 주의해야 한다.

사용하는 방법은 문자열 앞에 f 접두사를 붙이면 f 문자열 포매팅 기능을 사용할 수 있다.

  • f 문자열 포맷팅 예시
n = 10
s = f'I ate {n} apples.'
print(s)

※ 딕셔너리는 Key와 Value라는 것을 한 쌍으로 갖는 자료형이다.

  • 딕셔너리를 활용한 f 문자열 포맷팅 예시
d = {'name':'흔한 찐따', 'age':28}
s = f'나의 이름은 {d["name"]}입니다. 나이는 {d["age"]} 입니다.'
print(s)
  • 딕셔너리를 활용하여 f 문자열 포맷팅 정렬하기
# 왼쪽 정렬
s = f'{"hi":<10}'
print(s)

# 가운데 정렬
s2 = f'{"hi":^10}'
print(s2)
  • 딕셔너리를 활용하여 f 문자열 포맷팅 공백 채우기
# 가운데 정렬하고 '=' 문자로 공백 채우기
s = f'{"hi":=^10}'
print(s)

# 왼쪽 정렬하고 '!' 문자로 공백 채우기
s2 = f'{"hi":!<10}'
print(s2)
  • f 포맷팅 문자열로 소수점 표현하기
y = 3.42134234

# 소수점 4자리까지만 표현
s = f'{y:0.4f}'
print(s)

# 소수점 4자리까지 표현하고 총 자리수를 10으로 맞춤
s2 = f'{y:10.4f}'
print(s2)

f 문자열에서 { } 문자를 표시하려면 다음과 같이 두 개를 동시에 사용해야 한다.

s = f'{{ and }}'
print(s)

흔한 찐따

안녕하세요, 흔한 찐따 입니다.

Clone this wiki locally