-
[자료형] 문자Python/Python 기초 2020. 3. 4. 02:10
문자열 표현
Python에서의 문자열은 string이라고 하며 작은따옴표(') 또는 큰 따옴표(")를 사용하여 문자열로 만들 수 있습니다.
"Life is too short, " 'You need Python!'
이 외에도 작은 따옴표나 큰 따옴표를 중복 사용하여서도 표현할 수 있습니다.
'''Life is too short,''' """You need Python!"""
Hello Python, It's so Good 처럼 문자열 안에 작은따옴표나 큰 따옴표를 포함하고 싶은 경우에는 다음과 같은 방법으로 따옴표를 출력할 수 있습니다.
1. 큰 따옴표안에 작은따옴표를 넣거나 작은따옴표 안에 큰 따옴표를 넣습니다.
"Hello Python, It's so Good"
이처럼 안에 사용된 작은 따옴표는 문자열을 만드는 기호로 인식되지 않습니다.
2. \(백 슬래시) 문자를 같이 사용합니다.
'Hello \"Python\"' "Hello \'Python\'"
문자열이 길 경우 줄 바꿈을 하고 싶은 경우에는 \n을 사용하여 줄 바꿈을 할 수 있습니다.
"Life is too short, You need Python" 이라는 문장에서 콤마(,)를 기준으로 줄 바꿈을 하고 싶은 경우 다음과 같이 사용하면 됩니다.
>>> "Life is too short,\nYou need Python" Life is too short, You need Python
[참고] 이스케이프 코드
문자열 연산
1. 더하기 연산
2개의 문자열을 더하여 하나의 문자열로 만들 수 있습니다.
>>> 'Hello' + ' Python' 'Hello Python' >>> 'Hello' + ' ' + ' Python' 'Hello Python'
2. 곱하기 연산
문자열을 반복하게 하여 출력합니다.
>>> 'Hello' * 3 'HelloHelloHello' >>> 'Hello' * 2 + ' Python' 'HelloHello Python'
3. 문자열 길이 구하기
len 함수를 이용하면 문자열의 길이를 알 수 있습니다.
>>> str = "Life is too short, You need Python" >>> len(str) 34
문자열 Indexting & Slicing
1. Indexing
Index번호는 0번부터 시작하고 HELLO PYTHON이라는 문자에 Indexing 번호를 매겨보면 아래와 같습니다.
문자열의 시작인 H는 Index 번호가 0번이 되고 문자의 마지막인 N은 11번이 됩니다. (문자열에 존재하는 공백도 포함됩니다.)
>>> str = "HELLO PYTHON" >>> str[2] 'L' >>> str = "HELLO PYTHON" >>> str[5] ' ' >>> str = "HELLO PYTHON" >>> str[9] 'H'
2. Slicing
마이너스 문자(-), 콜론 문자(:)를 이용하여 범위를 지정하면 문자열 슬라이싱을 할 수 있습니다.
>>> str = "HELLO PYTHON" >>> str[-3] 'H' >>> str = "HELLO PYTHON" >>> str[:-3] 'HELLO PYT' >>> str = "HELLO PYTHON" >>> str[2:-3] 'LLO PYT'
[주의] 마이너스 문자를 사용할 때 인덱스 번호는 -0번이 아닌 -1번부터 시작합니다.
그 이유는 0과 -0은 같기 때문에 [0]을 하나 [-0]을 하나 같은 값이 나오기 때문입니다.
또한 뽑아낸 슬라이싱을 통해 문자열 더하기도 할 수 있습니다.
>>> str = "HELLO PYTHON" >>> str[2:-3] 'LLO PYT' >>>'HE' + str[2:-3] 'HELLO PYT'
문자열 Formatting
문자열의 중간에 어떤 특정 값을 삽입할 때 사용합니다.
1. 숫자 대입
>>> "I am %d years old." % 58 'I am 58 years old.'
숫자는 %d를 이용하여 넣을 수 있습니다.
2. 문자열 대입
>>> "I am %s years old." % "fifty eight" 'I am fifty eight years old.'
문자열은 %s를 사용하여 넣을 수 있고 넣는 문장에는 반드시 큰 따옴표나 작은따옴표를 사용하여 문자열로 만들어주어야 합니다.
3. 변수 대입
#변수에 숫자 대입 >>> years = "58" >>> "I am %d years old." % years 'I am 58 years old.' #변수에 문자 대입 >>> years = "fifty eight" >>> "I am %s years old." % years 'I am fifty eight years old.'
위처럼 원하는 값을 변수에 넣어 사용할 수 있습니다.
[참고] 문자열 포맷 코드
Format 함수를 이용한 Formatting
문자열에 format함수를 이용하면 좀 더 깔끔한 스타일로 사용할 수 있습니다.
1. {Index}를 이용하여 넣기
index를 이용하여 해당하는 위치에 원하는 문자 또는 숫자를 넣을 수 있습니다.
>>> "I am {0} years old.".format(58) 'I am 58 years old.' >>> "I am {0}{1} years old.".format(5,8) 'I am 58 years old.' >>> "I am {0} {1} years old.".format('fifty',8) "I am fifty 8 years old."
2. {name}을 이용하여 넣기
변수를 설정하여 해당하는 위치에 원하는 문자 또는 숫자를 넣을 수 있습니다.
>>> "I am {str} years old.".format(str='fifty eight') 'I am fifty eight years old.'
3. 정렬
format함수를 이용하여 입력하는 문자를 왼쪽, 오른쪽, 가운데 등 정렬을 할 수 있습니다.
#왼쪽 정렬 >>> '{0:<10}'.format('1234') '1234 ' #오른쪽 정렬 >>> '{0:>10}'.format('1234') ' 1234' #가운데 정렬 >>> '{0:^10}'.format('1234') ' 1234 ' #공백에 문자 채우기 >>> '{0:공^10}'.format('1234') '공공공1234공공공'
4. f 문자열 Formatting
파이썬 3.6 버전 이후부터는 f 문자열 포매팅 기능을 사용 할 수 있습니다.
문자열 맨 앞에 f를 붙이면 사용이 가능합니다.
>>> name = 'Yellow Apple' >>> f'name is {name}' 'name is Yellow Apple' >>> age = 10 >>> f'10년 후 나이 {age + 10}살' '10년 후 나이 20살' >>> f'{{ }}' '{ }'
문자열 관련 함수
count() : 특정 문자의 개수를 알려주는 함수
>>> str = 'Life is too short, You need Python' >>> str.count('i') 2 >>> str.count('e') 3 >>> str.count('Y') 1 >>> str.count(' ') 6 >>> str.count(' ', 5) 5 >>> str.count(' ', 5, 12) 2 >>> str.count('x') 0
find() : 특정 문자의 위치를 알려주는 함수, 찾는 문자나 문자열이 존재하지 않으면 -1을 반환합니다.
>>> str = 'Life is too short, You need Python' >>> str.find('i') 1 >>> str.find(' ') 4 >>> str.find(' ', 5) 7 >>> str.find(' ', 8, 12) 11 >>> str.find('x') -1
index() : 특정 문자의 위치를 알려주는 함수, 찾는 문자나 문자열이 존재하지 않으면 에러가 발생합니다.
>>> str = 'Life is too short, You need Python' >>> str.index('i') 1 >>> str.index(' ') 4 >>> str.index(' ', 5) 7 >>> str.index(' ', 8, 12) 11 >>> str.index('x') error
join() : 문자열 중간에 삽입하는 함수
>>> '/'.join('가나다라') '가/나/다/라' >>> str = '12345' >>> sep = ', ' >>> sep.join(str) '1, 2, 3, 4, 5' >>> ','.join('1') '1'
upper() : 소문자를 대문자로 바꾸는 함수
>>> str = 'Life is too short, You need Python' >>> str.upper() 'LIFE IS TOO SHORT, YOU NEED PYTHON'
lower() : 소문자를 대문자로 바꾸는 함수
>>> str = 'Life is too short, You need Python' >>> str.lower() 'life is too short, you need python'
lstrip() : 왼쪽 공백을 제거하는 함수
>>> str = ' space ' >>> str.lstrip() 'space '
rstrip() : 오른쪽 공백을 제거하는 함수
>>> str = ' space ' >>> str.rstrip() ' space'
strip() : 양쪽 공백을 지우는 함수
>>> str = ' space ' >>> str.strip() 'space'
replace() : (대상 문자열, 바꿀 문자열) 처럼 사용하여 문자열 안의 특정값을 다른 값으로 치환해줍니다.
>>> str = 'Life is too short, You need Python' >>> str.replace('i', '1') 'L1fe 1s too short, You need Python' >>> str.replace(', ', '\n') 'Life is too short\nYou need Python' >>> print(str.replace(', ', '\n')) Life is too short You need Python
split() : 특정 문자열을 기준으로 전체 문자열을 리스트로 변경합니다. 리스트는 다음에 순서에 설명하도록 하겠습니다.
>>> str = 'Life is too short, You need Python' >>> str.split() ['Life', 'is', 'too', 'short,', 'You', 'need', 'Python'] >>> str.split(', ') ['Life is too short', 'You need Python'] >>> str.split('o') ['Life is t', '', ' sh', 'rt, Y', 'u need Pyth', 'n']
다른 자료형을 문자열로 만들기
앞에서 문자열을 숫자형으로 바꾸는 방법을 배웠습니다. 이처럼 다른 자료형도 str 을 앞에 붙여주면 문자열로 만들 수 있습니다.
>>> str(123) '123' >>> str(False) 'False' >>> str([1, 2, 3]) '[1, 2, 3]' >>> str({'a', 'b', 'c'}) "{'a', 'b', 'c'}"
'Python > Python 기초' 카테고리의 다른 글
[자료형] List (0) 2020.03.29 [자료형] 숫자형 (2) 2020.03.02 댓글