문자열은 일련의 문자들을 뜻한다. 파이썬에서 String 리터럴은 큰 따옴표("") 나 작은타옴표('')로 묶인다.
예) my_string = 'Hello'
파이썬에서 문자열은 불변성을 가진다. (처음 생성후 변경이 불가)
문자열 생성
# 큰 따옴표나 작은 따옴표를 사용.
my_string = 'Hello'
my_string = "Hello"
my_string = "I' m a 'Geek'"
# escaping backslash - \(backslash) 뒤에 문자나 숫자가 오는 조합을 뜻한다.
my_string = 'I\' m a "Geek"'
my_string = 'I\' m a \'Geek\''
print(my_string)
I' m a 'Geek'
# 여러줄 표현에는 """을 사용한다.
my_string = """Hello
World"""
print(my_string)
Hello
World
# 문장의 줄바꿈을 할 경우 \(백슬레쉬)를 사용한다.
# \(백슬레쉬)의 의미 -> 아직 문장이 끝나지 않았다.
my_string = "Hello \
World"
print(my_string)
Hello World
my_string = "Hello World"
# 인덱스를 사용해 문자에 접근
b = my_string[0]
print(b)
H
# 슬라이싱 기능으로 문자열 자르기
b = my_string[1:3] # 첫번째 인덱스는 포함되지 않는다.
print(b)
el
b = my_string[:5] # 첫문자 부터 시작해 다섯문자 반환
print(b)
Hello
b = my_string[6:] # 0번째 문자열 부터 시작해 6번째 문자열 부터 끝까지 반환
print(b)
World
b = my_string[::2] # 주어진 문자열에서 처음서 부터 끝까지 2번째 문자열만 반환
print(b)
HloWrd
b = my_string[::-1] # 주어진 문자열에서 뒤에서 부터 시작해서 반환(reverse)
print(b)
dlroW olleh
# 파이썬에선 '+'를 이용해 문자열 연결한다.
greeting = "Hello"
name = "Tom"
sentence = greeting + ' ' + name
print(sentence)
Hello Tom
# 문자열에서 반복문은 for in loop을 사용한다.
my_string = 'Hello'
for i in my_string:
print(i)
H
e
l
l
o
if "e" in "Hello":
print("yes")
if "llo" in "Hello":
print("yes")
yes
yes
my_string = " Hello World "
# 공백 제거
my_string = my_string.strip()
print(my_string)
Hello World
# 문자 수
print(len(my_string))
11
# 소문자, 대문자 표현
print(my_string.upper())
print(my_string.lower())
HELLO WORLD
hello world
# 문자열의 시작 혹은 끝 매치 확인
print("hello".startswith("he"))
print("hello".endswith("llo"))
true
true
# 주어진 부분 문자열의 첫 번째 인덱스를 찾고, 그렇지 않으면 -1 반환
print("Hello".find("o"))
4
# 문자나 서브스트링 수 리턴
print("Hello".count("e"))
1
# 문자열을 다른 문자열로 교체(문자열이 존재할 경우에만 해당)
# 중요 : 원본 문자열은 그대로 유지.
message = "Hello World"
new_message = message.replace("World", "Universe")
print(new_message)
Hello Universe
# 문자열을 리스트로 나누기
my_string = "how are you doing"
a = my_string.split() # 기본 인자는 " "(공백 문자)가 사용 된다.
print(a)
['how', 'are', 'you', 'doing']
my_string = "one,two,three"
a = my_string.split(",")
print(a)
['one', 'two', 'three']
# 리스트의 항목들을 문자열로 결합하다
my_list = ['How', 'are', 'you', 'doing']
a = ' '.join(my_list) # 주어진 문자열의 구분자는 공백 문자가 된다.
print(a)
How are you doing
파이썬의 포맷팅 방법은 .format() 함수를 이용하거나 % 연산자를 사용합니다.
# 중괄호를 자리 표시 자로 사용
a = "Hello {0} and {1}".format("Bob", "Tom")
print(a)
Hello Bob and Tom
# 기본 순서의 위치는 선택 사항입니다. (번호로 표시하거나 빈 중괄호 사용)
a = "Hello {} and {}".format("Bob", "Tom")
print(a)
Hello Bob and Tom
a = "The integer value is {}".format(2)
print(a)
The integer value is 2
# 숫자에 대한 포맷 형식
a = "The float value is {0:.3f}".format(2.1234)
print(a)
The float value is 2.123
a = "The float value is {0:e}".format(2.1234)
print(a)
The float value is 2.123400e+00
a = "The binary value is {0:b}".format(2)
print(a)
The binary value is 10
# %를 이용한 예전 스타일 포멧 방식
print("Hello %s and %s" % ("Bob", "Tom")) # 타중 인수를 사용할 경우 튜플을 사용한다.
Hello Bob and Tom
val = 3.14159265359
print("The decimal value is %d" % val)
The decimal value is 3
print("The float value is %f" % val)
The float value is 3.141593
print("The float value is %.2f" % val)
The float value is 3.14
Python 3.6 이후의 중괄호 안에 직접 변수를 사용하는 것이 가능해졌다.
name = "Eric"
age = 25
a = f"Hello, {name}. You are {age}."
print(a)
pi = 3.14159
a = f"Pi is {pi:.3f}"
print(a)
# f-Strings은 런타임에 인식되어 실행된다.
a = f"The value is {2*60}"
print(a)
# 문자열은 불변성을 가짐으로 + 또는 +=로 문자열을 추가하면
# 항상 새 문자열이 생성되어 다중 작업에 비용이 많이 듭니다.
# 이런 경우 join 함수를 이용하면 빠른 실행이 가능합니다.
from timeit import default_timer as timer
my_list = ["a"] * 1000000
# bad
start = timer()
a = ""
for i in my_list:
a += i
end = timer()
print("concatenate string with + : %.5f" % (end - start))
# good
start = timer()
a = "".join(my_list)
end = timer()
print("concatenate string with join(): %.5f" % (end - start))
concatenate string with + : 0.16690
concatenate string with join(): 0.00956
파이썬 시작하기 - 설치 방법 (0) | 2023.10.21 |
---|---|
파이썬 시작하기 - 파이썬 소개 (0) | 2023.10.21 |
파이썬 - 집합(set) (0) | 2021.02.15 |
파이썬 - 딕셔너리(Dictionary) 자료형 (0) | 2021.02.10 |
파이썬 - 튜플(tuple) 자료형 (0) | 2021.02.09 |
댓글 영역