Python/02 자료형

02-2 문자열 자료형

멍멍코 2023. 9. 6. 14:43

문자열(String)은 하나 또는 다수의 문자로 구성된 데이터 유형을 말합니다. 파이썬에서 문자열은 큰 따옴표("") 또는 작은따옴표('')를 사용하여 생성할 수 있으며, 이는 문자, 단어, 문장 등 다양한 텍스트 데이터를 처리하는 데 사용됩니다.

 

문자열은 어떻게 만들고 사용할까?

1. 큰따옴표로 양쪽 둘러싸기

str1 = "Hello World"

2. 작은따옴표로 양쪽 둘러싸기

str2 = 'Hello World'

3. 큰따옴표 3개를 연속으로 써서 양쪽 둘러싸기

str3 = """Hello
World"""

4. 작은따옴표 3개를 연속으로 써서 양쪽 둘러싸기

str4 = '''Hello
World'''

문자열 안에 작은따옴표나 큰따옴표를 포함시키고 싶을 때

1. 문자열에 작은 따옴표 포함하기

str5 = "I'm a programmer."

2. 문자열에 큰따옴표 포함하기

str6 = 'He said, "Hello!"'

3. 역슬래시를 사용해서 작은따옴표와 큰따옴표를 문자열에 포함하기

str7 = 'I\'m a programmer.'
str8 = "He said, \"Hello!\""

여러 줄인 문자열을 변수에 대입하고 싶을 때

1. 줄을 바꾸기 위한 이스케이프 코드 \n 삽입하기

multi_str1 = "Hello\nWorld"
이스케이프 코드(escape) 코드란 프로그래밍 할 때 사용할 수 있도록 미리 정의해 둔 '문자 조합'을 말한다.
주로 출력물을 보기 좋게 정렬하는 용도로 사용한다.
코드 설명
\n 문자열 안에서 줄을 바꿀 때 사용
\t 문자열 사이에 탭 간격을 줄 때 사용
\\ \ 를 그대로 표현할 때 사용
\' 작은따옴표(')를 그대로 표현할 때 사용
\" 큰따옴표(")를 그대로 표현할 때 사용
\r 캐리지 리턴(줄 바꿈 문자, 커서를 현재 줄의 가장 앞으로 이동)
\f 폼 피드(줄 바꿈 문자, 커서를 현재 줄의 다음 줄로 이동)
\a 벨 소리(출력할 때 PC 스피커에서 '삑' 소리가 난다)
\b 백 스페이스
\000 널 문자
이 중에서 활용 빈도가 높은 것은 \n, \t, \\, \', \" 이다. 나머지는 프로그램에서 잘 사용하지 않는다.

2. 연속된 작은따옴표 3개 또는 큰따옴표 3개 사용하기

multi_str2 = """Hello
World"""

문자열 연산하기

문자열 더해서 연결하기

greet = "Hello" + " " + "World"

문자열 곱하기

echo = "Echo" * 3  # EchoEchoEcho

문자열 길이 구하기

문자열의 길이는 다음과 같이 len 함수를 사용하면 구할 수 있다. len 함수는 print 함수처럼 파이썬의 기본 내장 함수로, 별다른 설정 없이 바로 사용할 수 있다.

문자열의 길이에는 공백 문자도 포함된다.
length = len("Hello World")  # 11

문자열 인덱싱과 슬라이싱

문자열 인덱싱

word = "Python"
print(word[0])  # P

문자열 인덱싱 활용하기

print(word[-1])  # n

문자열 슬라이싱

sliced = word[0:4]  # Pyth

문자열을 슬라이싱 하는 방법

print(word[:2])  # Py

슬라이싱으로 문자열 나누기

date = "20220830Rainy"
date = a[:8] # 20230830
weather = a[8:] # Rainy

슬라이싱 활용

def solution(num_list):
    return num_list[::-1]

이 함수는 입력받은 'num_list'의 원소 순서를 거꾸로 뒤집은 배열을 반환합니다.

문자열 포매팅이란?

문자열 포매팅은 문자열 내에 어떤 값을 삽입하는 방법입니다. 파이썬에서는 여러가지 문자열 포매팅 방법을 제공하고 있습니다.

문자열 포매팅 따라하기

숫자 바로 대입

print("I ate %d apples." % 3)  # I ate 3 apples.

문자열 바로 대입

print("I ate %s apples." % "three")  # I ate three apples.

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

number = 3
print("I ate %d apples." % number)  # I ate 3 apples.

2개 이상의 값 넣기

number = 10
day = "three"
print("I ate %d apples. So I was sick for %s days." % (number, day))

문자열 포맷 코드

• %s : 문자열
• %c : 문자 1개
• %d : 정수
• %f : 부동소수
• %o : 8진수
• %x : 16진수
• %% : 문자 % 자체

문자열 안에서 '%' 문자 자체를 나타내려면 '%%'를 사용합니다.
rate = 98
print("성공률은 %d%%입니다." % rate)​

포맷 코드와 숫자 함께 사용하기

정렬과 공백

print("%10s" % "hi")  # "        hi" (오른쪽 정렬)
print("%-10s" % "hi")  # "hi        " (왼쪽 정렬)

소수점 표현하기

print("%0.4f" % 3.141592)  # 3.1416

format 함수를 사용한 포매팅

숫자 바로 대입하기

print("I ate {} apples.".format(3))

문자열 바로 대입하기

print("I ate {} apples.".format("three"))

숫자 값을 가진 변수로 대입하기

number = 3
print("I ate {} apples.".format(number))

2개 이상의 값 넣기

print("I ate {0} apples. So I was sick for {1} days.".format(10, "three"))

이름으로 넣기

print("I ate {number} apples. So I was sick for {day} days.".format(number=10, day="three"))

인덱스와 이름을 혼용해서 넣기

print("I ate {0} apples. So I was sick for {day} days.".format(10, day="three"))

왼쪽 정렬

print("{:<10}".format("hi"))  # "hi        "

오른쪽 정렬

print("{:>10}".format("hi"))  # "        hi"

가운데 정렬

print("{:^10}".format("hi"))  # "    hi    "

공백 채우기

print("{:=^10}".format("hi"))  # "====hi===="

소수점 표현하기

y = 3.42134234
print("{0:0.4f}".format(y))  # 3.4213

{또는} 문자 표현하기

print("{{ and }}".format())  # { and }

f문자열 포매팅

문자열 관련 함수들

문자 개수 세기 - count

a = "hobby"
print(a.count('b'))  # 2

위치 알려 주기 1 - find

a = "Python is best choice"
print(a.find('b'))  # 10

위치 알려 주기 2 - index

print(a.index('b'))  # 10

문자열 삽입 - join

print(",".join(['a', 'b', 'c']))  # a,b,c
join과 append 비교

'join'과 'append'는 Python의 문자열과 리스트에서 사용되는 메소드로, 서로 다른 목적과 작동 방식을 가지고 있습니다.

1. join()
• 적용 대상: 'join()'
메소드는 문자열 객체에 적용됩니다.

• 목적: 리스트나 튜플에 포함된 문자열들을 하나의 문자열로 연결합니다.
delimiter = '-'
result = delimiter.join(['apple', 'banana', 'cherry'])
print(result)  # 출력: apple-banana-cherry​

• 결과: 'join()'은 새로운 문자열을 반환합니다.
• 주의사항: 'join()'의 인자로 들어가는 리스트나 튜플의 원소들은 모두 문자열이어야 합니다.

2. append()
• 적용 대상: 'append()' 메소드는 리스트 객체에 적용됩니다.
• 목적: 리스트의 맨 끝에 새로운 원소를 추가합니다.
fruits = ['apple', 'banana']
fruits.append('cherry')
print(fruits)  # 출력: ['apple', 'banana', 'cherry']​

• 결과: 'append()'는 리스트를 수정합니다. 새로운 값을 반환하지 않습니다.(즉, 파괴적 메소드 입니다.)
• 주의사항: 리스트에 단 한 개의 원소만 추가할 수 있습니다.

소문자를 대문자로 바꾸기 - upper

a = "hi"
print(a.upper())  # HI

대문자를 소문자로 바꾸기 - lower

a = "HI"
print(a.lower())  # hi

왼쪽 공백 지우기 - lstrip

a = "   hi"
print(a.lstrip())  # "hi"

오른쪽 공백 지우기 - rstrip

a = "hi   "
print(a.rstrip())  # "hi"

문자열 바꾸기 - replace

a = "Life is too short"
print(a.replace("Life", "Your leg"))  # Your leg is too short

문자열 나누기 - split

a = "Life is too short"
print(a.split())  # ['Life', 'is', 'too', 'short']

'Python > 02 자료형' 카테고리의 다른 글

02-1 숫자형  (0) 2023.09.06