본문 바로가기
Python

파이썬 문자열 자료형

by 승환파크 2023. 5. 8.

문자열 : 글자들이 나열된 것

숫자를 변수에 넣더라도 "(따옴표) 혹은 ""(쌍따옴표) 안에 들어가있다면 숫자라 하여도 문자열로 인식한다.

a = "Hello World!"
b = "123"

print(a)
print(type(a))
# 결과값
# Hello World!
# <class 'str'>

print(b)
print(type(b))
# 결과값
# 123
# <class 'str'>

 

문자열 표기법

# 문자열에는 다양한 표기법이 있다
print("Hello")
print('Hello')
print("""Hello""")
print('''Hello''')

 

문자열에 따옴표 표기하기

# 'Python's favorite food is perl'
print("Python's favorite food is perl")
print('"Python is very easy." he says')
# 결과값
# Python's favorite food is perl
# "Python is very easy." he says

# 백슬래시('\')를 이용한 방법
print('Python\'s favorite food is perl')
print("\"Python is very easy.\" he says")
# 결과값
# Python's favorite food is perl
# "Python is very easy." he says

 

여러줄인 문자열 표현하기

# 여러줄인 문자열
lines = "Life is too short\nYou need python"
print(lines)
# 결과값 
# Life is too short
# You need python

lines = '''Life is too short
You need python'''
print(lines)
# 결과값 
# Life is too short
# You need python
# 3중 따옴표는 작은따옴표 나 큰따옴표 둘중 아무거나 사용해도 상관없음

 

이스케이프 코드

특별한 의미를 가지고 미리 정의된 문자를 작성할 때 혹은 사용할 때 작성하는 방식

\n : 줄바꿈을 사용하기 위해서 작성

\t : 탭을 사용하기 위해서 작성

\\ : 역슬래시를 문자열로 사용하기위해서 작성

print("안녕하세요\n안녕하세요")
# 결과값
# 안녕하세요
# 안녕하세요

print("안녕하세요\t안녕하세요")
# 결과값
# 안녕하세요    안녕하세요

 

문자열 연산자

각각의 자료는 사용할 수 있는 연산자가 정해져 있다.

문자열 연결 연산자

두 문자열을 연결해서 새로운 문자열을 만들어 내는 방법

"Hello, " + "World!"
# 결과값
# Hello, World!

+ 는 문자열 연결 연산에 적용된다.

숫자 더하기 연산자와 문자열 연결 연산자 모두 + 기호를 사용하지만 완전히 다른 기능을 수행한다.

문자열과 숫자 사이의 문자열 연결 연산자를 사용하면 에러가 발생한다.

print("안녕하세요" + 1)
# 결과값
# TypeError: can only concatenate str (not "int") to str

만약 안녕하세요1 을 출력할 의도라면 숫자도 문자열로 인식시켜야 한다.

print("안녕하세요" + "1")
print("안녕하세요" + str(1))

# 결과값
# 안녕하세요1
# 안녕하세요1

 

문자열 반복 연산자

문자열을 * 연산자와 숫자로 연결하면 문자열을 숫자만큼 반복해서 출력한다.

"Hello" * 3
# 결과값
# HelloHelloHello

 

문자열 인덱싱(indexing)

대괄호(문자 선택 연산자)는 문자열 내부의 문자 하나를 선택하는 연산자이다.

대괄호 안에 선택할 문자의 위치(인덱스(index))를 지정한다.

파이썬은 인덱스를 0부터 숫자를 센다, 그리고 마이너스도 사용이 가능하다.

     str1 = "Hello"
# index순서 : 01234

str1[0]
# 결과값
# 'H'

str1[4]
# 결과값
# 'o'

str1[-1]
# 결과값
# 'o'

 

문자열 슬라이싱(slicing)

문자열의 범위를 지정하는 방식

대괄호 안에 위치를 콜론(:)으로 구분해서 지정한다.

파이썬은 범위 지정 시 마지막 숫자를 포함하지 않는다.

str1 = "Hello"

str[0:4]
# 결과값
# 마지막 숫자를 포함하지 않기 때문에 index 가 0, 1, 2, 3 까지만 범위로 인식한다.
# 'Hell'

 

대괄호 안에 넣는 숫자 둘 중 하나를 생략할 수 있다.

생략을 하면 자동으로 가장 최대 위치(첫번째 글자 또는 마지막 글자)까지 지정된다.

문자열 슬라이싱도 문자열 인덱싱과 마찬가지로 마이너스를 인식한다.

str1 = "Hello"

str1[0:4]
str1[:-1]
str1[:4]
str1[0:]
str1[1:5]

# 결과값
# 'Hell'
# 'Hell'
# 'Hello'
# 'ello'

 

문자열 포매팅(formatting)

a = 3
b = 4
pi = 3.141592

# 3 + 4 = 7 을 출력하고 싶다면
print("%d + %d = %d"%(a, b, (a + b)))
# 결과값
# 3 + 4 = 7

# 문자열 포맷 코드에서 소숫점을 표현
print("%f"%pi)
# 결과값
# 3.141592

print("%0.4f"%pi)
# 결과값
# 3.1416

print("%0.2f"%pi)
# 결과값
# 3.14

# 특정 칸에 출력하기
print("%5d"%a)
# 결과값
#     3

# 빈칸을 0으로 채우기
print("%05d"%a)
# 결과값
# 00003
a = 3
b = 4
pi = 3.141592

# format 함수
# 3 + 4 = 7 을 출력하고 싶다면
print("{0} + {1} + {2}".format(a, b, (a + b)))
# 결과값
# 3 + 4 = 7

# 이름으로 값 넣기
print("I ate {num} apples. so I was sick for {day} days".format(num = 10, day = 3))
# 결과값
# I ate 10 apples. so I was sick for 3 days

# 소수점 표현
print("{0:0.4f}".format(pi))
# 결과값
# 3.1416

# 특정 칸에 출력하기
print("{0:5d}".format(a))
# 결과값
#     3

# 빈칸을 0으로 채우기
print("{0:05d}".format(a))
# 결과값
# 00003
a = 3
b = 4
pi = 3.14192

# f-string(3.6버전 이상부터 사용가능)
print(f"{a} + {b} = {a + b}")
# 결과값
# 3 + 4 = 7

# 소수점 표현
print(f"{pi:0.4f}")
print(f"{pi:0.2f}")
# 결과값
# 3.1416
# 3.14

# 특정 칸에 출력
print(f"{a:5d}")
# 결과값
#     3

# 빈칸을 0으로 채우기
print(f"{a:05d}")
# 결과값
# 00003

 

문자열 관련 함수

str1 = "hobby"

# 문자 갯수 세기
str1.count("b")
# 결과값
# 2

# 위치 찾기1
# 검색하는 문자가 처음으로 나온 위치를 반환한다.
str1.find("b")
# 결과값
# 2

# 검색하는 문자가 존재하지 않는 경우 -1을 반환한다.
str1.find("a")
# 결과값
# -1

# 위치 찾기2
# 검색하는 문자가 처음으로 나온 위치를 반환한다.
str1.index("b")
# 결과값
# 2

# 검색하는 문자가 존재하지 않는 경우 에러가 발생한다.
str1.index("a")
# 결과값
# ValueError: substring not found

# 문자열 삽입
",".join("abcd")
# 결과값
# "a,b,c,d"

# 대소문자 변환
print("hello".upper())
print("HELLO".lower())
# 결과값
# HELLO
# hello

# 공백 제거
" hello ".strip()
# 이전 결과값
# " hello "
# 결과값
# "hello"
# 문자열 중간에 공백은 처리하지 않음(맨앞과 맨뒤만 공백 제거)

# 문자열 치환
# 찾는 문자가 여러개라면 모두 값을 변경한다.
str1 = "pithon"
str1.replace("i", "y")
# 결과값
# python

# 문자열 나누기
# 기본적으로 빈칸에서 나누기
str1 = "Life is too short"
str1.split()
# 결과값
# ["Life", "is", "too", "short"]

# 옵션값을 주면 그 문자에 맞게 나눠줌
str2 = "a:b:c:d"
str2.split(":")
# 결과값
# ["a", "b", "c", "d"]

# 문자열 길이 구하기
print(len("안녕하세요"))
# 결과값
# 5

'Python' 카테고리의 다른 글

파이썬 컬렉션  (0) 2023.05.08
파이썬 변수  (0) 2023.05.08
파이썬 불 자료형  (1) 2023.05.08
파이썬 숫자 자료형  (0) 2023.05.08
파이썬 자료형  (0) 2023.05.08