본문 바로가기
Data science

파이썬 문자열 헷갈리는 부분 총정리

by 리밋T 2022. 7. 29.
반응형

파이썬 문자열을 다룰 일이 꽤나 많은데, 그때마다 은근히 헷갈리는 부분들이 있다.
어려운 게 아니더라도 헷갈릴 때마다 찾아보게 되어서, 관련 강의를 듣고 파이썬 문자열의 기초를 정리해둔다!

파이썬 자료형은 크게 3가지로, 정수(integer), 실수(float), 문자열(string)이며 변수들 간에 계산을 할 때는 타입을 일치시켜줘야 한다. 그중 문자열, string은 단순한 텍스트 데이터보다는 "문자들의 순서 있는 집합"이라고 생각하고 접근하는 것이 좋다.

 

1. 파이썬 문자열

✔ 문자열 안에 따옴표가 들어가는 경우를 처리하기 위해서 ""와 ''를 같이 사용한다.

message = "친구가 '안녕'이라고 말했다."
print(message)
>>친구가 '안녕'이라고 말했다.



✔ 파이썬에서는 따옴표 출력 시 따옴표 앞에\를 붙일 수 있다.
\를 붙이면 따옴표의 특수한 의미를 잃어버리고 하나의 문자가 된다.
*항상 역슬래시가 먼저 와야 한다.

message = 'doesn\'t'
print(message)
>> doesn't

a="\"네\"라고 했다."
print(a)
>>"네"라고 했다.


✔ 문자열 중간에 \n 이 있으면 줄바꿈이 된다.
그런데 이러한 이스케이프 문자로 취급하고 싶지 않다면 첫 따옴표 앞에 r을 추가해서 특수문자의 의미를 없앨 수 있다.

print('C:\temp\name')
c:\temp
ame
# 출력결과가 이상하게 나온다.

print(r'c:\temp\name')
C:\temp\name


✔참고로 파이썬 문자열 길이도 len()함수로 알 수 있다.

len("hello")
5

 

✔위에서 잠시 언급한 이스케이프 문자란 = 시스템을 제어하기 위한 특수한 문자다.
\\  -> 백슬래시\
\' ->작은따옴표'
\" ->큰따옴표"
\n ->줄바꿈
\t ->탭 문자

2. 파이썬 문자열 합치기

✔2개 이상의 문자열 리터럴(따옴표로 감싸진 문자열)이 서로 붙어 있으면 자동으로 연결된다.

'Py''thon'
>>Python


✔변수끼리 혹은 변수와 리터럴 연결 원하면 + 이용 가능.

'Py'+'thon'
>>Python


3. 파이썬 문자열 변환 with 정수


문자열 식과 숫자열 식은 다르다.
즉, + 연산자는 2개의 문자열을 합치거나 2개의 정수를 합칠 수 있지만, 문자열과 정수를 합치려고 하면 오류가 발생한다.

이럴 때는 숫자를 "str(숫자)"을 이용하여 로 문자열로 변환해서 합쳐야 한다.
 int, float 이용해서 반대로 문자열을 숫자로 변환할 수 있다. int는 정수, float는 실수로 바꾸는 것이다.

파이썬은 변수 생성 시 자료형을 적지 않지만
C, w자바 등은 변수 생성 시 자료형을 명시해야 한다는 점을 기억해두면 좋다.

4. 파이썬 문자열 반복

*로 문자열 반복이 가능하다.
line="Hello!"*10

5. 파이썬 문자열 변수 출력

✔문자열에 변수의 값을 삽입하여 출력하고 싶으면 %s 를 이용한다.
여기서 s는 string의 약자. 예를 들어서 

price=10000
print("가격은 %s원입니다." % price)
>>가격은 10000원입니다.

# %자리에 price란 변수를 넣어줘라는 뜻.

message="지금은 %s이다."
time = "3:30pm"
print(message % time)
>>지금은 3:30pm이다.

#여러 개의 변수를 넣을 수도 있다.
m="지금은 %s시 %s분이다."
print(m % (3, 30))


++ 파이썬 3.6버전 이후에 f-string, 즉 f문자열 포매팅이 등장했다.
따옴표를 사용하여 나타낸 문자열 앞에 f접두사를 붙이면 된다.
해당 문자열 안에 값이나 변수를 {중괄호}로 감싸주면 된다.
만약 number라는 이름을 가진 변수가 있다면 
print(f"현재 대기번호는 {number}번입니다.") 와 같이 나타낼 수 있을 것이다.
소수점을 나타낼 수도 있는데, 아래와 같은 결과를 얻을 수 있다.

number=1234.56789
print(f'{number:10.4f}')
>>'    3.1416'
print(f'{number:.4f}')
>>'3.1416'

위의 코드를 좀 더 자세히 보자면
10.4에서 10은 문자열 총 자리수다.
문자열의 길이에는 소수점(.)도 포함되므로 
6자리 중 공백 4자리가 포함된 것이다.

6. 파이썬 인덱싱

문자열에서 첫 번째 문자의 인덱스는 0부터 시작한다.
음수 인덱스는 오른쪽에서 왼쪽으로 번호가 매겨지며 -1부터 시작한다.
참고로 파이썬에서 한번 작성된 문자열은 변경이 불가능하다.

word='Python'
word[0]='C'

이런 식으로 작성을 하는 것이 자바, C에서는 허용되는데 
이거는 인덱스에 해당하지 않는 수이니까 문자를 바꾸려고 하면 TypeError 에러가 발생한다.

파이썬에서 자주 사용하는 리스트는 변경이 가능한 객체이기 때문에 헷갈리는 경우가 많으니 주의!

7. 파이썬 리스트

리스트는 [] 안에 값을 나열하고 값들 사이에 , 를 찍으면 된다.
문자열과 달리 리스트는 변경 가능한 객체라는 점!

print(alist[2])
>>cheese

alist[2] = 'apple'
print(alist[2])
>>apple


이런 식으로 cheese가 apple로 바뀐다.

+. 파이썬 튜터

소스코드에서 모르는 부분이 생기면 참고할 수 있는 사이트.
documents 즉 소스코드를 설명해주는 문서이다.

http://www.pythontutor.com - visualize execution 혹은 (start visualizing your code now)를 클릭하면 소스코드를 시각화하여 볼 수 있다.


반응형

댓글