NeatCoder's Lab
문자열 본문
파이썬에서는 str 타입을 사용하여 문자(String)열을 표현한다. 문자열이란 곧 일련의 문자다.
String method
join()
String_A.join(String_B)는 리스트 String_B에 있는 모든 문자열을 하나의 단일 문자열 String_A로 결합한다. 문자열을 연결하는 데에는 +기호를 사용할 수도 있지만, 리스트에 많은 양의 문자열이 있으면 비효율적이다.
lst = ["Buffer", "and", "Austin"]
print(" ".join(lst)) # 'Buffer and Austin'
print("+".join(lst)) # 'Buffer+and+Austin'
ljust(), rjust()
stringA.ljust(width, fillchar)는 문자열 stringA '맨 처음'부터 문자열을 포함한 길이 width만큼 문자 fillchar를 채운다. stringA.rjust(width, fillchar)는 문자열 stringA '맨 끝'부터 문자열을 포함한 길이 width만큼 문자 fillchar를 채운다.
name = "NeatCoder"
print(name.ljust(50, '-'))
# '스칼렛-----------------------'
print(name.rjust(50, '-'))
# '-----------------------스칼렛'
format()
stringA.format()은 문자열 stringA에 변수를 추가하거나 형식화하는 데 사용된다.
"{0} {1}".format("Hello","python!")
"name: {who}, age:{age}".format(who="James",age=17)
"name: {who}, age:{0}".format(12, who="James")
파이썬 3.1버전부터는 필드 이름이나 인덱스를 생략할 수 있다. 생략할 경우 파이썬이 자동으로 순서를 0부터 시작하는 번호로 매긴다.
"{} {} {}".format("Python", "data structure", "algorithm")
위의 예제처럼 따로 번호를 매기지 않으면 format 안에 있는 요소들을 순서대로 배치하여 출력한다.
문자열 언패킹
문자열 매핑 언패킹 연산자는 **이고, 이를 사용하면 함수로 전달하기에 적합한 키-값 딕셔너리가 생성된다.
captain = "America"
doctor = "Strange"
"{captain} : {doctor}".format(**locals())
위의 예제에서는 locals() 메서드가 현재 scope에 있는 지역 변수를 딕셔너리로 반환하고 있다.
splitlines()
stringA.splitlines()는 문자열 stringA에 대해 줄바꿈 문자를 기준으로 분리한 결과를 문자열 리스트로 반환한다.
split() method
split(s,n)은 문자열 stringA에서 문자열 s를 기준으로 정수 n번만큼 분리한 문자열 리스트를 반환한다. n을 지정하지 않으면 s를 기준으로 모두 분리해버린다. s도 지정해주지 않으면 공백 문자로 구분한 문자열 리스트를 반환한다.
strip()
stringA.strip(B)는 문자열 stringA 앞뒤의 문자열 B를 제거한다. 인수 B가 없으면 공백 문자를 제거한다. strip() 메서드와 비슷한 것들이 존재한다.
- lstrip()
- rstrip()
각각 이름에서도 알겠지만 대상문자열의 왼쪽(lstrip) 오른쪽(rstrip)에 주어진 인자값으로 받은 문자열을 제거한다. 마찬가지로 인자값이 주어지지 않으면 공백을 제거한다.
swapcase()
대상문자열에 대해서 대소문자를 반전한 문자열의 복사본을 반환한다. capitalize() 메서드는 문자열 첫글자를 대문자로 바꾼 문자열의 복사본을 반환해주고 lower(), upper()각각 전체를 소문자로, 대문자로 변경한 문자열의 복사본을 반환한다.
count()
stringA.count(sub, start, end)는 문자열 stringA에서 인덱스 start, end 범위 내의 부분 문자열 sub가 나온 횟수를 반환한다. 예를 들어
stringA = "Call me Call me Call me now"
stringA.count("Call")
위 처럼 코딩했을 경우 Call은 총 3번 문자열에 등장하므로 3이 return된다.
f-strings
fstring은 파이썬 3.6에서부터 사용이 가능해졌다. 문자열 앞에 f를 붙이면 사용할 수 있는 구조다. 다음의 예제를 보면서 이해해보자
name = "Steve Rogers"
f"His name is {name!r}."
f"His name is{repr(name)}." # repr and !r are basically the same, they do the same thing
from datetime import datetime
today = datetime(year=2020, month=7, day=22)
f"{today: %B %d %Y}"
f를 붙어셔 표현할 경우 출력은 "His name is Steve Rogers", "July 22, 2020" 등으로 출력된다. 더 자세한 정보는 파이썬 docs파일에 더 자세하게 기록되어있다.
'Python > Python Basics' 카테고리의 다른 글
Data types in python (0) | 2020.07.18 |
---|---|
What is python (0) | 2020.07.18 |