EverGiver
02-2 문자열 자료형 본문
728x90
문자열(String)이란 문자, 단어 등으로 구성된 문자들의 집합을 의미한다.
>>> "Life is too short, You need Python"
>>> "a"
>>> "123"
>>> 'love'
문자열 작성 및 사용
- 큰따옴표(")로 양쪽 둘러싸기
- 작은따옴표(')로 양쪽 둘러싸기
- 큰따옴표 3개를 연속(""")으로 써서 양쪽 둘러싸기
- 작은따옴표 3개를 연속(''')으로 써서 둘러싸기
작은따옴표 및 큰따옴표 사용
- 문자열에 작은따옴표 (') 포함시키기
>>> "Python's favorite food is apple"
- 문자열에 큰따옴표 (') 포함시키기
>>> "Python's favorite food is apple"
- 백 슬래시(\)를 사용해서 작은따옴표(')와 큰따옴표(")를 문자열에 포함시킨다
백 슬래시(\)를 작은따옴표(')나 큰따옴표(") 앞에 삽입하면 백슬래시(\) 뒤의 작은따옴표(')나 큰따옴표(")는 문자열을 둘러싸는 기호의 의미가 아니라 문자 (') , (") 그 자체를 뜻하게 된다.
>>> 'Python\'s favorite food is apple'
>>> "\"Python is very easy.\" he says."
여러 줄인 문자열
- 줄을 바꾸는 이스케이프 코드'\n'
>>> "Life is too short\nYou need python"
- 연속된 작은따옴표 3개(''') 또는 큰따옴표 3개(""") 사용
#작은따옴표 3개 >>> multiline = ''' ... Life is too short ... You need python ... ''' #큰따옴표 3개 >>> multiline = """ ... Life is too short ... You need python ... """
이스케이프 코드
코드 | 설명 |
\n | 문자열 안에서 줄을 바꿀 때 사용 |
\t | 문자열 사이에 탭 간격을 줄 때 사용 |
\\ | 문자 \를 그대로 표현할 때 사용 |
\' | 작은따옴표(')를 그대로 표현할 때 사용 |
\" | 큰따옴표(")를 그대로 표현할 때 사용 |
\r | 캐리지 리턴(줄 바꿈 문자, 현재 커서를 가장 앞으로 이동) |
\f | 폼 피드(줄 바꿈 분자, 현재 커서를 다음 줄로 이동) |
\a | 벨 소리(출력할 때 PC 스피커에서 '삑' 소리가 난다) |
\b | 백스페이스 |
\000 | 널 문자 |
→ 활용 빈도 높은 것 : \n, \t, \\, \', \"
문자열 연산
- 문자열 더해서 연결
>>> head = "Python"
>>> tail = "is fun!"
>>> head + tail
'Python is fun!'
- 문자열 곱하기
>>> a = "Python"
>>> a * 2
'PythonPython'
- 문자열 길이 구하기
len 함수 사용
>>> a = "Life is too short"
>>> len(a)
17
문자열 인덱싱과 슬라이싱
인덱싱(Indexing)이란 무엇인가를 '가리킨다'는 의미, 슬라이싱(slicing)은 무엇인가를 '잘라낸다'는 의미
문자열 인덱싱
>>> a = "Life is too short, You need Python"
>>> a[3]
'e'
>>> a[0]
'L'
>>> a[-1]
'n'
"파이썬은 0부터 숫자를 센다!!!!"
문자열 슬라이싱
#한 문자만을 뽑아 이용
>>> a = "Life is too short, You need Python"
>>> b = a[0] + a[1] + a[2] + a[3]
>>> b
'Life'
#슬라이싱 사용
>>> a = "Life is too short, You need Python"
>>> a[0:4]
'Life'
슬라이싱 기법
a[시작 번호:끝번호]
→ 끝 번호 부분을 생략하면 시작 번호부터 그 문자열의 끝까지 뽑아낸다.
→ 시작 번호를 생략하면 문자열의 처음부터 끝 번호까지 뽑아낸다.
→ 시작 번호와 끝 번호를 생략하면 문자열의 처음부터 끝까지를 뽑아낸다.
문자열 포매팅
문자열 포매팅
- 숫자 바로 대입
>>> "I eat %d apples." %3 'I eat 3 apples.'
- 문자열 바로 대입
>>> "I eat %s apples." %"five" 'I eat five apples.'
- 숫자 값을 나타내는 변수로 대입
>>> number = 3 >>> "I eat %d apples." % number 'I eat 3 apples.'
- 2개 이상의 값 넣기
>>> number = 10 >>> day = "three" >>> "I ate %d apples. So I was sick for %s days." % (number, day) 'I ate 10 apples. So I was sick for three days.'
문자열 포맷 코드
코드 | 설명 |
%s | 문자열(String) |
%c | 문자 1개(Character) |
%d | 정수(Integer) |
%f | 부동 소수(Floating-point) |
%o | 8진수 |
%x | 16진수 |
%% | Literal % (문자 '%' 자체) |
포맷 코드와 숫자 함께 사용
- 정렬과 공백
→ %10s는 전체 길이가 10개인 문자열 공간에서 대입되는 값을 오른쪽으로 정렬하고 그 앞의 나머지는 공백으로 남겨 둔다>>> "%10s" % "hi" ' hi'
h i
→ %-6s는 반대쪽인 왼쪽 정렬>>> "%-6sjane" % 'hi' 'hi jane'
h i j a n e - 소수점 표현
→ 3.42134234를 소수점 네 번째 자리까지만 나타내고 싶은 경우>>> "%0.4f" %3.42134234 '3.4213'
→ '.' : 소수점 포인트를 말하고 그 뒤의 숫자 4는 소수점 뒤에 나올 숫자의 개수를 의미
→ 숫자 3.42134234를 소수점 네 번째 자리까지만 표시하고 전체 길이가 10개인 문자열 공간에서 오른쪽으로 정렬>>> "%10.4f" % 3.42134234 ' 3.4213'
3 . 4 2 1 3
format 함수를 사용한 포매팅
- 숫자 바로 대입
>>> "I eat {0} apples".format(3) 'I eat 3 apples'
- 문자열 바로 대입
>>> "I eat {0} apples".format("five") 'I eat five apples'
- 숫자 값을 가진 변수로 대입
>>> number = 3 >>> "I eat {0} apples".format(number) 'I eat 3 apples'
- 2개 이상의 값 넣기
>>> number = 10 >>> day = "three" >>> "I ate {0} apples. So I was sick for {1} days.".format(number, day) 'I ate 10 apples. So I was sick for three days.'
- 이름으로 넣기
>>> "I ate {number} apples. So I was sick for {day} days.".format(number=10, day=3) 'I ate 10 apples. So I was sick for 3 days.'
- 왼쪽 정렬
→ :<10 사용하면 치환되는 문자열을 왼쪽으로 정렬하고 문자열의 총 자릿수를 10으로 맞춘다>>> "{0:<10}".format("hi" 'hi '
- 오른쪽 정렬
>>> "{0:>10}".format("hi") ' hi'
- 가운데 정렬
>>> "{0:^10}".format("hi") ' hi '
- 공백 채우기
>>> "{0:=^10}".format("hi") '====hi====' >>>"{0:!<10}".format("hi") 'hi!!!!!!!!'
- 소수점 표현
>>> y = 3.42134234 >>> "{0:0.4f}".format(y) '3.4213' >>> "{0:10.4f}".format(y) ' 3.4213'
- { 또는 } 문자 표현
>>> "{{ and }}".format() '{ and }'
f 문자열 포매팅
파이썬 3.6 버전부터 f 문자열 포매팅 기능 사용!!!
>>> name = '홍길동'
>>> age = 30
>>> f'나의 이름은 {name}입니다. 나이가 {age}입니다.'
'나의 이름은 홍길동입니다. 나이가 30입니다.'
- 딕셔너리
>>> d = {'name' : '홍길동', 'age' : 30} >>> f'나의 이름은 {d["name"]}입니다. 나이는 {d["age"]}입니다.' '나의 이름은 홍길동입니다. 나이는 30입니다.'
- 정렬
>>> f'{"hi":<10}' 'hi ' >>> f'{"hi":>10}' ' hi' >>> f'{"hi":^10}' ' hi '
- 공백 채우기
>>> f'{"hi":=^10}' '====hi====' >>> f'{"hi":!<10}' 'hi!!!!!!!!'
- 소수점
>>> y = 3.42134234 >>> f'{y:0.4f}' '3.4213' >>> f'{y:10.4f}' ' 3.4213'
- { } 문자
>>> f'{{ and }}' '{ and }'
문자열 관련 함수
- 문자 개수 세기 (count)
>>> a = "hobby" >>> a.count('b') 2
- 위치 알려주기 1 (find)
>>> a = "Python is the best choice" >>> a.find('b') 14 >>> a.find('k') -1 #존재하지 않는 경우
- 위치 알려주기 2 (index)
>>> a = "Life is too short" >>> a.index('t') 8 >>> a.index('k') #오류 발생
- 문자열 삽입 (join)
>>> ",".join('abcd') 'a,b,c,d' #리스트 사용 >>> ",".join(['a', 'b', 'c', 'd']) 'a,b,c,d'
- 소문자를 대문자로 바꾸기 (upper)
>>> a = "hi" >>> a.upper() 'HI'
- 대문자를 소문자로 바꾸기 (lower)
>>> a = "HI" >>> a.lower() 'hi'
- 왼쪽 공백 지우기 (lstrip)
>>> a = " hi " >>> a.lstrip() 'hi '
- 오른쪽 공백 지우기 (rstrip)
>>> a = " hi " >>> a.rstrip() ' hi'
- 양쪽 공백 지우기(strip)
>>> a = " hi " >>> a.strip() 'hi'
- 문자열 바꾸기 (replace)
>>> a = "LIfe is too short" >>> a.replace("Life", "Your leg") 'Your leg is too short'
- 문자열 나누기 (split)
>>> a = "Life is too short" >>> a.split() #공백을 기준으로 문자열 나눔 ['Life', 'is', 'too', 'short'] >>> b = "a:b:c:d" >>> b.split(':') #:기호를 기준으로 문자열 나눔 ['a', 'b', 'c', 'd']
728x90
'Python > 문법' 카테고리의 다른 글
02-6 집합 자료형 (0) | 2021.07.29 |
---|---|
02-5 딕셔너리 자료형 (0) | 2021.07.27 |
02-4 튜플 자료형 (0) | 2021.07.25 |
02-3 리스트 자료형 (0) | 2021.07.23 |
02-1 숫자형 (0) | 2021.07.05 |
Comments