● 문자열 자료형
: 문자열(String), 단어 등으로 구성된 문잗르의 집합을 의미
▶ 문자열 만드는 방법
1. "문자열" : 큰따옴표로 감싸서 만들기
2. '문자열' : 작은따옴표로 감싸서 만들기
3. """문자열""" : 큰따옴표 3개를 연속으로 감싸서 만들기
4. '''문자열''' : 작은따옴표 3개를 연속으로 감싸서 만들기
문자열 자료형 예시ex)
1. "Python's favorite food is perl"(소유격)
1. 출력
"Python's favorite food is perl"
2. '"Python is very easy." he says."' (인용문)
2. 출력
'"Python is very easy." he says."'
* 여러줄 입력할 때 """, ''' 사용
예시)

* print를 사용하지 않고 muliline만 찍을 경우\n으로 표시되기 때문에 print()통해 출력 필요

※ 이스케이프 코드(escape code)
프로그래밍 시 사용할 수 있도록 미리 정의해 둔 문자 조합
주로 출력물을 보기 좋게 사용하는 용도로 사용
| 코드 | 설명 |
| \n | 문자열 안에 다음줄로 바꿀 때 사용 |
| \t | 문자열 사이에 탭 간격을 줄 때 사용 |
| \\ | 문자 \을 그대로 표현할 때 사용(\원표시) |
| \' | 작은 따옴표 (')를 그대로 표현할 때 사용 |
| \" | 큰 따옴표 (")를 그대로 표현할 때 사용 |
| \r | 캐리지리턴(줄 바꿈 문자, 현재 커서를 가장 앞으로 이동) |
| \f | 폼 피드(줄 바꿈 문자, 현재 커서를 다음 줄로 이동) |
| \a | 벨소리(pc스피커에 삑 소리가 나게 한다.) |
| \b | 백 스페이스 |
| \000 | 널 문자 |
* 자주 사용되는 코드
- \n, \t, \\, \', \" 이외 자주 사용되지 않는다.
● 문자열 연산
- 문자열 더하기(+) : 문자열 + 문자열 = 이어서 출력(Concatenation)

- 문자열 곱하기(*) : 문자열 * 3 = 문자열문자열문자열(같은 문자열 곱한 횟수 만큼 반복 출력)

- 문자열 길이 구하기 : len()

- 문자열 인덱싱 및 슬라이싱
인덱싱 예시)

* 정방향(왼>오) 첫번째 L 출력
* 역방향 출력 희망 시 a[-1] 입력 > Python의 'n' 출력
슬라이싱 예시)

a[0:3] 입력 시 'Lif'만 출력되니 주의 필요
● 문자열 포매팅
-. 문자열 포맷 코드 사용
"현재 온도는 18도 입니다."
"현재 온도는 20도 입니다."
"현재 온도는 19도 입니다."
위 문장에서 달라지는 내용은 숫자의 온도 부분이다.
온도만 변경해보자
숫자 변경 예시)

** 문자열 안의 숫자를 넣고 싶은 자리에 %d 를 넣고 삽입할 숫자는 뒤의 %에 넣으면 된다.
문자 변경 예시)

** 문자열 안에 다른 문자열을 넣기 위해선 %s를 사용해야 한다. 문자열 대입시 ' 또는 " 를 사용해야 한다.
숫자 값을 나타내는 변수 대입 예시)

** 대입된 변수가 숫자기 때문에 %d 사용 %뒤에 변수명 입력
변수 두개 이상의 값 넣기 예시)

※ 문자열 포맷 코드
| 코드 | 설명 |
| %s | 문자열(String) |
| %c | 문자 1개(character) |
| %d | 정수(Integer) |
| %f | 부동소수(floating-point) |
| %o | 8진수 |
| %x | 16진수 |
| %% | Literal % (문자 % 자체) |
| %s 포멧 코드는 어떤 값이든 변환해서 넣을 수 있다. | |
- 포멧 코드와 숫자 함께 사용하기
1. 정렬과 공백
오른쪽 정렬 예시)

** %10s는 전체 길이가 10개인 문자열 공간에서 대입되는 값을 오른쪽으로 정렬하고 나머지는 공백으로 남겨두란 의미

왼쪽 정렬 예시)

** %-10s을 주면 왼쪽 정렬이 된다.
2. 소수점 표현
3.42134234를 소수점 네 번째 자리까지만 나타낵 싶은 경우 아래와 같이 작성할 수 있다.
예시)

** %0.4f에서 '.'은 소수점 포인트, 그 뒤에 숫자 4는 소수점 뒤에 나올 숫자의 개수다.
** 소수점 앞의 숫자는 문자열의 전체 길이로 0은 길이에 상관하지 않겠다는 의미다.
* 출력하고자 하는 자리의 수가 5 이상이면 반올림되어 출력된다.

- format 함수를 이용한 포매팅
format 함수를 통해 문자열 포맷을 지정할 수 있다.
숫자 대입 예시)

** {0}이 .format(3)을 통해 3이 대입
문자 대입 예시)

** {0}이 .format("seven")을 통해 seven이 대입
여러 변수 대입 예시)

** 2개 이상의 값을 넣을 경우 {0}, {1}과 같은 인덱스 항목이 .format함수의 입력값 순서에 맞게 바뀐다.
변수명으로 대입 예시)

** {number}, {day}를 사용할 경우 .format 함수에는 name=value와 같은 값이 있어야 한다.
format함수를 통한 왼쪽/오른쪽/가운데 정렬
| 왼쪽 정렬 | 오른쪽 정렬 | 가운데 정렬 | |
| 예시 | "{0:<10}".format("hi") | "{0:>10}".format("hi") | "{0:^10}".format("hi") |
| 출력 | 'hi ' | ' hi' | ' hi ' |
** 표현식에 따라 정렬되며 문자열의 총 자릿수를 입력한 숫자에 맞게 줄 수 있다.
format 함수를 통한 공백 채우기
예시)

** "{0:*^10}"에서 ^를 통해 가운데 정렬을 하였으며, 좌우 빈 자리수에 채워 넣을 문자 값은 *로 채웠다.
{ } 중괄호만 표현하기
예시)

** { } 중괄호를 포함하여 출력하길 희망할 경우 {{ }} 형식으로 사용해야 한다.
- f 문자열 포매팅
파이썬 3.6버전부터 f 문자열 포매팅 기능 사용이 가능하다. (3.6 미만 버전에서 사용이 불가)
예시)

** f 문자열 포매팅은 name, age와 같은 변수값을 생성한 후에 생성한 값을 참조할 수 있다.
예시2)

** f 문자열 포매팅은 포현식 사용이 가능하다.
* 표현식이란 ? {age+7}과 같이 중괄호 안의 변수를 계산하는 계산식
딕셔너리를 통한 f 문자열 포매팅 사용 방법)
예시)

* 딕셔너리란 ? key, value값이 한 쌍으로 구성된 자료형
f문자열 포매팅을 통한 왼쪽/오른쪽/가운데 정렬
| 왼쪽 정렬 | 오른쪽 정렬 | 가운데 정렬 | |
| 예시 | f'{"hi":<10}' | f'{"hi":>10}' | f'{"hi":^10}' |
| 출력 | 'hi ' | ' hi' | ' hi ' |
f문자열 포매팅 공백 채우기

** 다른 포매팅 방식들과 비슷하다.
●문자열 관련 함수
문자열 자료형은 자체 내장 함수를 가지고 있으며 사용 시 문자열 변수 뒤'.' 점을 붙인 후 사용할 수 있다.
- 문자열 개수 세기(count)
예시)

** count 함수를 통해 문자열 중 b의 개수를 리턴
- 위치 알려주기(find)
예시 1)

예시 2)

** find 함수를 통해 b의 위치를 찾았으며 14값을 리턴 // 찾는 문자가 없으면 -1 리턴
** 대부분의 언어들은 index 값이 0으로 시작
- 위치 알려주기2(index)
예시 1)

예시 2)

** index 함수를 사용하면 반환할 값이 없을 때 오류 발생
- 문자열 삽입(join)
예시)

** join 함수를 통해 문자 사이에 ','를 삽입
** join함수는 리스트 및 튜플에서도 사용할 수 있다.
- 소문자를 대문자로 변경하기(upper)
예시)

** upper() 함수는 소문자를 대문자로 바꿔준다.
- 대문자를 소문자로 변경하기(lower)
예시)

** lower() 함수는 대문자를 소문자로 바꿔준다.
- 공백 지우기
| 함수 | 설명 |
| lstrip() | 왼쪽 공백 지우기 |
| rstrip() | 오른쪽 공백 지우기 |
| strip() | 양쪽 공백 지우기 |
예시)

- 문자열 바꾸기(replace)
예시)

** replace() 함수는 replace(바뀔 문자열, 바꿀_문자열)로 사용하여 특정값 변경이 가능
- 문자열 나누기(split)
예시)

** a와 b 결과값을 동시에 출력하기 위해 print()함수 사용
** split() 함수는 괄호 안에 아무 값도 넣지 않으면 공백([Space], [Tab], [Enter])을 기준으로 나누어준다.
** b.split(':')처럼 특정값이 있는 경우 괄호 값을 구분자로 해서 문자열을 나눠준다.

'Language > Python' 카테고리의 다른 글
| Python 딕셔너리 자료형 (1) | 2024.04.26 |
|---|---|
| Python 튜플 자료형 (0) | 2024.04.24 |
| Python 리스트 자료형 (2) | 2024.04.24 |
| Python 숫자 자료형 (1) | 2024.04.22 |
| Python 살펴보기 (0) | 2024.04.22 |