위키북스 박응용 저 "점프 투 파이썬" 책을 읽고 정리한 내용입니다.

다소 잘못된 내용과 구어적 표현 이 포함되어 있을 수 있습니다.

파이썬에서의 문자열을 불변객체다

  • 문자열의 문자 하나를 인덱스로 접근해 수정한다던가 등의 행위는 금지된다
  • = 로 참조복사를 해도 불변객체이기 때문에 두 변수의 동기화는 안된다
  • 참조복사가 아닌 값 복사를 하고싶을때는 [:] 슬라이싱을 이용하면 된다

기본적인 표현법

'str'
"str"
'''str'''
"""str"""

줄바꿈

'\n'
'''<ENTER>'''
"""<ENTER>"""

인덱스참조

str[int]
  • 음수를 넣으면 뒤에서부터 온다

슬라이싱

str[a:b:c]
  • a = 첫인덱스 : 생략하면 0
  • b = 끝인덱스 : 생략하면 문자열 맨끝
  • c = 인덱스이동 : 디폴트는 1, 0주면 에러남, 음수는 역이동(문자열 뒤집기에 이용)
  • 파이썬의 문자열 슬라이싱은 연산속도가 아주 빠르다. 문자열을 처리할 일이 있으면 리스트로 바꾸거나 하지 말고 문자열 자체에서 슬라이싱 등을 이용하는게 좋다

포매팅

퍼센트 포매팅

("%10s" % 123)
("%0.2f" % 1.23456)
  • 10 : 포매팅되는 부분 총길이가 10이 되고 123은 오른쪽 정렬 후 남는부분은 스페이스바로 채움. 숫자가 음수이면 왼쪽정렬. 이딴거 필요없으면 숫자는 안써도됨
  • s : 포매팅되는놈의 자료형. s는 문자열이기때문에 아무거나 넣어도 된다
  • % 123 : 123을 포매팅시키겟다는 뜻
  • 0.2 : 소숫점 뒤 2자리까지 표시하겠다는 뜻
  • f : 소숫점 자리수를 지정할때는 f로 자료형을 지정해 줘야 한다

인덱스 포매팅

"{0} {1} {2}".format(123, 456, 789)
"{a} {b} {c}".format(a = 1, b = 2, c = 3)
  • {} 안의 숫자가 인덱스, 뒤에 123 456 789가 인덱스 순대로 들어감
  • 문자 인덱스를 사용할때는 format() 안에 직접 명기해야함

변수 포매팅

f"{변수1} {변수2}"
  • 변수를 직접 안에 포매팅하고싶을때

변형해서 포매팅하기

"{a:$^10}".format(a = 123)
f."{a:$^10}"
"{a:0.2f}".format(a = 1.234)
f."{a:0.2f}"
  • a : format 에서는 인덱스(숫자가능), f 에서는 변수명
  • $ : 총 길이중 포매팅하고 남은 공백을 $ 로 채운다는 뜻 (다른 문자도 가능)
  • ^ : 포매팅되는 123이 가운데 정렬된다는 뜻. > 는 오른쪽, < 는 왼쪽이다
  • 10 : 총 길이가 10이라는 뜻.
  • 0.2 : 소숫점 뒤 2자리까지만 표시
  • f : 실수형. 소숫점 자리수 표현시에는 f반드시 써줘야된디

문자열 함수들

문자 개수 세기

a.count('b')
  • ’b’ 의 갯수를 a 에서 세어서 알려줌

문자의 최소인덱스 찾기

a.find('b')
a.index('b')
  • 문자열 a 에서 ’b’ 가 나온 첫 인덱스를 반환한다
  • find 함수는 문자열이 없을때 -1 반환하고 index 는 오류를 발생시킨다

문자 사이사이에 원하는 문자 넣기

'$'.join("abcd")
  • 결과는 “a*b*c$d” 이다

대소문자화

a.upper() # 대문자화
a.lower() #소문자화

공백지우기

a.lstrip()
a.rstrip()
a.strip()
  • lstrip() : 문자열a의 왼쪽 공백이 전부 사라진다
  • rstrip() : 문자열a의 오른쪽 여백이 전부 사라진다
  • strip() : 문자열a의 양쪽 여백이 전부 사라진다

문자열 바꾸기

a.replace("이걸로", "이것을")
  • 문자열 a 의 뒤엣놈을 앞에놈으로 바꾼다

문자열 리스트화

a.split("기준")
  • 문자열을 “기준” 으로 나눠서 리스트로 반환한다
  • “기준” 을 안쓰면 스페이스바를 기준으로 나눈다