문자열(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, \\, \', \" 이다. 나머지는 프로그램에서 잘 사용하지 않는다.
코드 설명 \n 문자열 안에서 줄을 바꿀 때 사용 \t 문자열 사이에 탭 간격을 줄 때 사용 \\ \ 를 그대로 표현할 때 사용 \' 작은따옴표(')를 그대로 표현할 때 사용 \" 큰따옴표(")를 그대로 표현할 때 사용 \r 캐리지 리턴(줄 바꿈 문자, 커서를 현재 줄의 가장 앞으로 이동) \f 폼 피드(줄 바꿈 문자, 커서를 현재 줄의 다음 줄로 이동) \a 벨 소리(출력할 때 PC 스피커에서 '삑' 소리가 난다) \b 백 스페이스 \000 널 문자
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']