상세 컨텐츠

본문 제목

[PYTHON] 파이썬 자료형(3) 문자열(String)

PYTHON/기본

by ranlan 2021. 6. 7. 11:02

본문

728x90

 

문자열 자료형

# 큰따옴표(")로 양쪽 둘러싸기
"Hello World" 

# 작은따옴표(')로 양쪽 둘러싸기
'Python'

# 큰따옴표 3개를 연속(""")으로 써서 양쪽 둘러싸기
"""Hello World"""

#작은따옴표 3개를 연속(''')으로 써서 양쪽 둘러싸기
'''This is Python'''

작은따옴표(')나 큰따옴표(") 포함한 문자열

"Python's favorite food is perl"
'"Python is very easy"." he says.'
food = 'Python\'s favorite food is perl'
say = "\"Python is very easy.\" he says."

여러 줄의 문자열

multiline = "Life is too short\nYou need python"

multiline='''
	Life is too short
	You need python
	'''
    
multiline="""
	Life is too short
	You need python
	"""

 

 

문자열 연산

더하기 (연결)

head = "This is "
tail = "Python"
head + tail # This is Python
head & tail # This is Python

곱하기 (반복)

print("*" * 5) # *****

 

 

문자열 포맷팅

1) 가장 오래된 방법

year = 2021
month = 4

print("올해는 " + str(year) + "년 " + str(month) + "월 입니다.")
print("올해는 %d년 %d월 입니다." % (year, month))
# 지금은 2021년 4월 입니다.

2) format 메서드

message = "올해는 {}년 {}월 입니다."
print(message.format(year, month))

출력할 소수점 자리 수(n) 지정

a = 1
b = 3

print("{1} 나누기 {0}은 {2:.4f}입니다".format(b, a, a/b))
# 1(a) 나누기 3(b) 은 0.3333입니다.

print("{} 나누기 {}은 {:.0f}입니다".format(a, b, a/b))
# 1 나누기 3 은 0입니다.

3) f-string *파이썬 3.6부터 등장한 새로운 방법

year = 2021
month = 4
print(f"올해는 {year}년 {month}월 입니다.")

 

 

문자열 메서드

문자열 길이

s = "Python"
len(s) # 6

문자 개수 세기

s = "hobby"
s.count('b') # 2

문자 찾아서 인덱스 반환

s = "Python is the best choice"

# index()
s.index('b') # 14 없으면 오류

# find()
s.find('b') # 14
s.find('k') # 없는 경우 -1 반환

문자열 바꾸기

s = "my name is python"
s.replace("python", "java") # "my name is java"

 

문자열 삽입

",".join('abcd')
# 'a,b,c,d'

temp = ['Python', 'is', 'easy']
'___'.join(temp)
# 'Python___is___easy'

예시) 리스트를 문자열로 바꿀 때

my_list = ['hello', 'my', 'name', 'is', 'python']
my_string = " ".join(my_array)
print(my_list) # ['hello', 'my', 'name', 'is', 'python']
print(my_string) # hello my name is python

 

문자열 나누기

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

s = "a:b:c:d"
s.split(':') # ['a', 'b', 'c', 'd']

예시) 문자열을 리스트로 바꿀 때

list("가나다") # ['가', '나', '다']

s = 'show how to index into sequences'.split()
s # ['show', 'how', 'to', 'index', 'into', 'sequences']

 

공백 제거

- 가장 왼쪽에 있는 한 칸 이상의 연속된 공백 제거

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

- 가장 오른쪽에 있는 한 칸 이상의 연속된 공백 제거

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

- 양쪽 공백 제거

a = " hi "
a.strip()  # "hi"

 

 

문자열 인덱싱과 슬라이싱

인덱싱

s "Life is too short, You need Python"

s[0] = 'L'
s[1] = 'i'

음수 인덱싱 (1부터 시작)

s[-1] = 'n'
s[-2] = 'o'

 

슬라이싱

string[num1:num2] # num1이상 num2미만
s = "Life is too short, You need Python"

s[0:4] = 'Life'

생략 시 처음 혹은 끝까지 출력

s[19:] = 'You need Python'
s[:17] = 'Life is too short'
s[:] = 'Life is too short, You need Python'

음수 인덱싱 사용 가능

s[19:-7] = 'You need'
728x90

관련글 더보기

댓글 영역