오늘도 개발
파이썬 문자열(String) 본문
문자열(String)이란?
문자의 집합.
"abc"
"123"
문자열을 만드는 네 가지 방법
1) "문자열"
2) '문자열'
3) """문자열"""
4) '''문자열'''
문자열 안에 따옴표가 들어가는 경우
1) 문자열에 작은따옴표가 들어가는 경우 - 큰 따옴표로 둘러쌈
"I'm new to Python."
2) 문자열에 큰따옴표가 들어가는 경우 - 작은 따옴표로 둘러쌈
'I said "I am new to Python."'
3) 작은 따옴표, 큰 따옴표 둘 다 들어가는 경우 - \ 사용
'I said, "I\'m new to Python"'
문자열이 여러 줄인 경우
1) \n 삽입
print("I'm new to Python.\nHow about you?")
2)'''나 """사용
s = '''
I'm new to Python.
How about you?
'''
print(s)
문자열 길이 구하기
len() 사용
print(len('python')) # 6
문자열 연산
더하기(Concatenation)
+ 사용 : 문자열 연결
a = 'Hello'
b = '!'
print(a + b) # Hello!
곱하기
* 사용 : 문자열 반복
a = 'Hello'
print(a * 2) # HelloHello
문자열 인덱싱/슬라이싱
인덱싱
첫 요소의 인덱스는 0, 끝 요소의 인덱스는 -1로 시작
a = 'Python'
print(a[0])
# P
print(a[-1])
# n
슬라이싱
[:]사용. [0:2]에서 2번 요소는 포함 안 됨.
리스트를 슬라이싱하면 새 주소에 슬라이싱한 새 객체를 생성한다.
a = 'Python!'
print(id(a))
# 4373814896
print(id(a[:2]))
# 4373885360
문자열은 immutable한 자료형이기 때문에 인덱스를 사용하여 문자열을 수정할 수 없다.
대신 슬라이싱으로 문자열을 새로 만드는 방법을 사용할 수 있다.
a = 'potapo'
b = a[:4] + 't' + a[-1:]
print(b)
# potato
문자열 포매팅(Formatting)
문자열 포매팅이란? 문자열 안에 어떤 값을 넣는 방법
문자열 포맷 코드 사용하기
%s : 원래 문자열(string), but 어떤 형태 값이든 삽입 가능
%c : 문자 1개(character)
%d : 정수(Integer)
%f : 부동소수(floating-point), 디폴트로 소수점 이하 6자리까지 표시
%o : 8진수
%x : 16진수
%% : 문자 %를 입력할 때
# 정수 대입
print("I am %d years old." % 100)
# I am 100 years old.
# 문자열 대입
print("My name is %s." % "Sue")
# My name is Sue.
# 변수 대입
num = 5
print("I have %d books." % num)
# I have 5 books.
# 2개 이상 값 넣기
month = 'June'
day = 4
print("Today is %s %dth." % (month, day))
# Today is June 4th.
# %와 포매팅 연산자 같이 쓰기
print("I'm %d%% sure." % 99)
# I'm 99% sure.
포맷 코드와 숫자 함께 사용하기
정렬하기 / 공백 만들기
# 대입할 값을 10글자로 만들고 우측정렬
print("%10s, Sue!" % 'hi')
# hi, Sue!
# 대입할 값을 10글자로 만들고 좌측정렬
print("%-10s, Sue!" % 'hi')
# hi , Sue!
소수점 표현하기
# 기본적으로 소수점 이하 6번째 자리까지 표시
print("%f" % 0.1234567)
# 0.123457 (반올림)
# 소수점 이하 2번째 자리까지 표시
print("%0.2f" % 0.1234)
# 0.12
정렬/공백 만들면서 소수점 표현하기
# 대입할 값을 10글자로 만들고 우측정렬
print("It's %10.2f!" % 0.1234)
# It's 0.12!
# 대입할 값을 10글자로 만들고 좌측정렬
print("It's %-10.2f!" % 0.1234)
# It's 0.12 !
format 함수 사용하기
문자열 포맷 코드 사용하는 것 보다 조금 더 발전한 스타일
# 숫자 대입하기
print("I am {0} years old.".format(100))
# I am 100 years old.
# 문자 대입하기
print("My name is {0}.".format("Sue"))
# My name is Sue.
# 변수 대입하기
num = 5
print("I have {0} books.".format(num))
# I have 5 books.
# 2개 이상 값 넣기
month = 'June'
day = 4
print("Today is {0} {1}th.".format(month, 4))
# Today is June 4th.
# 이름으로 넣기
print("Today is {month} {day}th.".format(month='June', day=4))
# Today is June 4th.
# 인덱스, 이름 혼용해서 넣기
print("Today is {0} {day}th.".format('June', day=4))
# Today is June 4th.
포맷 함수와 숫자 함께 사용하기
정렬하기 / 공백 만들기
# 대입할 값을 10글자로 만들고 우측정렬
print("{0:>10}, Sue!".format('hi'))
# hi, Sue!
# 대입할 값을 10글자로 만들고 좌측정렬
print("{0:<10}, Sue!".format('hi'))
# hi , Sue!
# 대입할 값을 10글자로 만들고 가운데정렬
print("{0:^10}, Sue!".format('hi'))
# hi , Sue!
공백 채우기
print("{0:=<10}, Sue!".format('hi'))
# hi========, Sue!
print("{0:?<10}, Sue!".format('hi'))
# hi????????, Sue!
소수점 표현하기
# 소수점 둘째 자리까지 표시하기
print("{0:0.2f}".format(0.1234))
# 0.12
# 소수점 둘째 자리까지 표시하면서 우측정렬하기 1
print("The number is {0:10.2f}!".format(0.1234))
# The number is 0.12!
# 소수점 둘째 자리까지 표시하면서 우측정렬하기 2
print("The number is {0:<10.2f}!".format(0.1234))
# The number is 0.12 !
# 소수점 둘째 자리까지 표시하면서 우측정렬하고 문자 삽입
print("The number is {0:=<10.2f}!".format(0.1234))
# The number is 0.12======!
{, }, 문자 표현하기
print("{0} are {{}}.".format('Curly braces'))
# Curly braces are {}.
1000단위마다 콤마 넣기
price = 10000
print("{0:,}".format(price))
# 10,000
f 문자열 포매팅
파이썬 3.6버전부터 도입된 포매팅 방식.
name = 'Sue'
age = 100
print(f"My name is {name}. I'm {age + 1} years old")
# My name is Sue. I'm 101 years old.
# 정렬하기
greeting = 'hi'
print(f"{greeting:=<10}, Sue!")
# ========hi, Sue!
# 소수점 표현하기
x = 0.1234
print(f"{x:0.2f}")
# 0.12
문자열 관련 함수
count : 문자 개수 세기
a = 'Python'
print(a.count())
# 6
find / index : 문자 위치 찾기. find는 찾는 것 없으면 -1 반환, index는 오류남
a = 'python'
print(a.find('p')) # 0
print(a.index('p')) # 0
join : 문자 사이에 문자 삽입. 리스트에도 사용 가능
a = "!".join('hello')
print(a)
# h!e!l!l!o
a = ['sue', 'is', 'programming']
print(' '.join(a))
# sue is programming
upper / lower : 대소문자 변경
a = 'hi'
print(a.upper())
# HI
b = 'PYTHON'
print(b.lower())
# python
lstrip / rstrip / strip : 왼쪽/오른쪽/양쪽의 한 칸 이상 연속되는 공백 삭제
a = " hi "
print(a.rstrip())
# hi
print(a.lstrip())
# hi
print(a.strip())
# hi
replace : 문자열 교체
a = 'I hate python'
print(a.replace('hate', 'love'))
# I love python
split : 문자열 나누기
a = 'sue! is! programming'
# 디폴트로 공백을 기준으로 분리
print(a.split())
# ['sue!', 'is!', 'programming']
# 분리할 문자 지정 가능
print(a.split('!'))
# ['sue', ' is', ' programming']
참고
'웹 프로그래밍 > Python3' 카테고리의 다른 글
| 파이썬의 출력 방법 (0) | 2022.06.03 |
|---|---|
| CPython이 변수를 처리하는 방법 (0) | 2022.06.01 |
| 파이썬 숫자형에 사용하는 연산자 (0) | 2022.06.01 |
| 파이썬의 자료형 (0) | 2022.06.01 |
| 파이썬 인터프리터와 파이썬의 실행 과정 (0) | 2022.05.30 |