오식랜드
[python] 문자열 본문
문자열은 큰따옴표 또는 작은따옴표로 묶습니다.
만약 여러 줄에 걸쳐서 작성할 때에는 큰따옴표 3개 또는 작은따옴표 3개로 감싸주면 됩니다.
sentence1 = '아롱이는 귀엽지'
sentence2 = "누리도 귀엽지"
sentence3 = """
아롱이는 귀여워.
누리도 귀엽지.
"""
# 큰 따옴표 대신 작은 따옴표 3개씩으로 감싸도 돼요
주의!
여러 줄로 쓰는 주석도 작은 따옴표 3개로 사용했습니다.
그래서 따옴표 3개의 시작부분에 변수 선언이 있으면 문자열로, 없으면 주석으로 처리됩니다.
혼란을 줄이기 위해 가급적 주석은 작은 따옴표, 문자열은 큰 따옴표 사용을 권해드립니다.
슬라이싱
- 글자 하나만 슬라이싱 하기
- 변수명[인덱스]
- 문자열 중 한 글자만 잘라내기 위해서는 해당 글자의 index값을 변수명 뒤에 대괄호[] 에 넣어주면 됩니다.
text = '가나다라마바사' print(text[4]) # 라
- n번째부터 n번째까지 슬라이싱 하기
- 변수명[시작인덱스:종료인덱스]다만! 종료 인덱스가 만약 7이라면, 7 직전인 6까지만 가지고 옵니다!
- 변수명 뒤에 대괄호를 이용하며 필요에 따라 각 영역을 콜론(:) 으로 구분을 짓습니다.
text = '가나다라마바사' print(text[3:6]) # 다라마
- 처음부터, 또는 끝까지
- 변수명[:인덱스] → 처음부터 인덱스 직전까지 슬라이싱
- 변수명[인덱스:] → 인덱스부터 끝까지 슬라이싱
- 변수명[:] → 처음부터 끝까지 슬라이싱
text = '가나다라마바사' print(text[:4]) # 가나다 print(text[4:]) # 라마바사 print(text[:]) # 가나다라마다사
- 슬라이싱을 할 때 값을 비워두면 위치에 따라 처음부터, 또는 끝까지를 의미하게 됩니다.
- 뒤에서부터 슬라이싱참고로 맨 처음의 인덱스는 [0] 이지만 맨 뒤의 인덱스는 [-1] 이라는 점 주의해주세요.
- 변수명[-n:] → 뒤에서부터 n번째 위치로부터 끝까지
text = '가나다라마바사' print(text[-3:]) # 마바사
- 때로는 데이터에 따라 처음이 아닌 뒤에서부터 슬라이싱을 할 필요도 있는데, 이럴 때는 음수를 이용하면 됩니다
문자열 처리함수
파이썬에서 제공되는 기본적인 문자열 처리함수
- text.lower() : 소문자로 변환
- text.upper() : 대문자로 변환
- text[n].isupper() : 대문자인지 확인
- text[n].islower() : 소문자인지 확인
- text.replace(”origin”, “change”) : 문자열 바꾸기
- text.index(”t”) : 찾으려는 문자열의 인덱스 (없으면 에러)
- text.find(”t”) : 찾으려는 문자열의 인덱스 (없으면 -1)
- text.count(”t”) : 문자열이 나온 횟수
- len(text) : 문자열의 글자 수 (공백 포함)
python = "Python is Amazing"
print(python.lower()) # python is amazing
print(python.upper()) # PYTHON IS AMAZING
print(python[0].isupper()) # True : 0 번째 인덱스의 값이 대문자인지 확인
print(len(python)) # 17 : 띄어쓰기를 포함한 문자열의 전체 길이 (length)
print(python.replace("Python", "Javascript")) # Javascript is Amazing
문자열 내에 어느 글자의 위치를 확인하기 위한 함수 index(), find()
index = python.index("n") # 처음으로 발견된 n 의 인덱스
print(index) # 5 : Python 의 n
index = python.index("n", index + 1) # 6 번째 인덱스 이후에 처음으로 발견된 n 의 인덱스
print(index) # 15 : Amazing 의 n
find = python.find("n") # 처음으로 발견된 n 의 인덱스
print(find) # 5 : Python 의 n
find = python.find("n", find + 1) # 6 번째 인덱스 이후에 처음으로 발견된 n 의 인덱스
print(find) # 15 : Amazing 의 n
문자열 포맷
%d, %c, %s 와 같은 보기에 어렵고 외우기도 어려운 포맷 방법이 있지만, 좀 더 쉬운 format()함수를 알아보자
문자열 내에 중괄호 { } 를 집어 넣고 뒤에서 .format(값1, 값2, ...) 을 입력하면 이 값들이 문자열 내의 중괄호 부분에 들어가게 됩니다.
이 때 { } 만 넣으면 순서대로 값1, 값2, ... 가 들어가게 되며 만약 {0}, {1} 과 같이 인덱스 값을 의미하는 숫자를 넣게 되면 {0} 위치에는 값1, {1} 위치에는 값2, ... 이런 식으로 들어가게 됩니다.
만약 {1}, {0} 과 같이 숫자를 뒤집으면 입력한 값도 뒤집혀서 나오게 되겠지요.
print("나는 {}살입니다.".format(20)) # 나는 20살입니다.
print("나는 {}색과 {}색을 좋아해요.".format("파란", "빨간")) # 나는 파란색과 빨간색을 좋아해요
print("나는 {0}색과 {1}색을 좋아해요.".format("파란", "빨간")) # 나는 파란색과 빨간색을 좋아해요
print("나는 {1}색과 {0}색을 좋아해요.".format("파란", "빨간")) # 나는 빨간색과 파란색을 좋아해요
format의 또 다른 방법은 이름을 사용하는 것 입니다.
문자열 내에 {이름} 과 같이 넣어두고, 마치 변수를 사용하는 것처럼 .format 내에서 이름과 값을 정의해두면, 그 이름에 해당하는 부분에 값을 집어넣게 됩니다.
print("나는 {age}살이며, {color}색을 좋아해요.".format(age=20, color="빨간"))
# 나는 20살이며, 빨간색을 좋아해요
print("나는 {age}살이며, {color}색을 좋아해요.".format(color="빨간", age=20))
# 나는 20살이며, 빨간색을 좋아해요 (.format 뒤에 순서를 변경해도 괜찮아요)
아예 변수로 빼서 {}안에 넣는 방법도 있습니다. f-string 이라고 합니다.
문자열 앞에 f 를 추가해주면, 앞에서 선언된 변수 이름을 그대로 사용할 수 있습니다.
예제처럼 age 와 color 라는 변수를 선언하고, 문장 안에서 {age}, {color} 와 같이 중괄호로 둘러싼 변수 이름을 적으면 코드가 보다 간결해집니다.
'dev-log > python' 카테고리의 다른 글
[python] 집합 set (0) | 2023.01.04 |
---|---|
[python] 사전 Dictionary (0) | 2023.01.04 |
[python] 리스트 List (0) | 2023.01.04 |
[python] 숫자처리함수와 모듈 (0) | 2022.12.14 |
[python] 파이썬 기초지식 (0) | 2022.12.14 |