문자열 자료형
문자열 (String) , 즉 문자, 단어 등으로 구성된 문자들의 집합을 의미한다
파이썬에서 문자열을 작성하는 4가지 방법
"Hello World"
'Hello World'
"""
Life is too short
You need python
"""
'''
Life is too short
You need python
'''
방식이 4가지나 되는 이유는 아래와 같다
1. 문자열에 작은 따옴표를 사용하는 경우
"She's all of me"
2. 문자열에 큰 따옴표를 사용하는 경우
- 작은 따옴표로 감싸서 해결하는 방법
'"I like python." he says.'
- 백슬래시( \ )를 사용해서 해결하는 방법
"\"I like python.\" he says."
3. 여러 줄인 문자열을 사용하는 경우
- 연속된 작은따옴표 혹은 큰따옴표 3개를 사용해서 해결하는 방법
"""
Life is too short
You need python
"""
'''
Life is too short
You need python
'''
- 이스케이프 코드 ( \n )을 사용해서 해결하는 방법
"Life is too short\nYou need python"
문자열 연산
"I like " + "python"
"python" * 3
연결 연산과 곱하기 연산이 가능하다
len() 함수로 문자열의 길이를 구할 수 있다.
문자열 인덱싱, 슬라이싱
슬라이싱 기법으로 a[시작 번호:끝 번호]를 지정할 때 끝 번호에 해당하는 것은 포함하지 않는다
#인덱싱, 슬라이싱 대상[start:stop:step]
print(s[0], s[3])
print(s[-1], s[-3])
print(s[0:3], s[3:], s[:3], s[:], s[1:5:2], s[::2])
print(s[-4:-1],s[-3:])
print('fre' + s[2:])
s u
e n
seq uence seq sequence eu sqec
enc nce
frequence
s2 = 'kbs mbc'
s2 = ' ' + s2[:4] + 'sbs ' + s2[4:] + ' '
print(s2, len(s2))
print(s2.strip()) # lstrip(), rstrip()
s3 = s2.split(sep=' ')
print(s3)
print(' '.join(s3))
a = 'life is too long'
b = a.replace('life', 'your leg')
print(b)
kbs sbs mbc 13
kbs sbs mbc
['', 'kbs', 'sbs', 'mbc', '']
kbs sbs mbc
your leg is too long
문자열 포매팅
- 문자열 포맷 코드
%s 포맷 코드는 어떤 형태의 값이든 변환해 넣을 수 있다.
%s 문자열(String)
%d 정수(Integer)
%f 부동소수(floating-point)
"I like %s." % "python"
- format 함수
문자열의 format 함수를 사용하면 좀 더 발전된 스타일로 문자열 포맷을 지정할 수 있다
물론 숫자도 가능하다
"I like {0}." .format("python")
"I like {0}. We {1} together!" .format("python", "study")
"I like {0}. We {do} together!" .format("python", do="study")
- f문자열 포매팅
파이썬 3.6 버전부터는 f 문자열 포매팅 기능을 사용할 수 있다. 파이썬 3.6 미만 버전에서는 사용할 수 없는 기능이다
program = 'python'
do = 'study'
f'I like {program}. We {do} together!'
문자열 관련 함수
count()
문자 개수 세는 함수
문자열 중 해당 문자의 개수를 돌려준다.
find()
위치 알려주는 함수
해당 문자가 처음으로 나온 위치를 반환한다. 만약 찾는 문자나 문자열이 존재하지 않는다면 -1을 반환한다.
index()
위치 알려주는 함수
해당 문자가 맨 처음으로 나온 위치를 반환한다. 만약 찾는 문자나 문자열이 존재하지 않는다면 오류를 발생시킨다.
join()
문자 사이에 해당 문자를 삽입한다
uppper(), lower()
대문자로 바꾸는 함수, 소문자로 바꾸는 함수
lstrip(), rstrip(), strip()
각각 왼쪽, 오른쪽, 양쪽 공백 지워주는 함수
replace(바뀌게 될 문자, 바꿀 문자열)
문자열의 특정 부분을 다른 값으로 바꿔주는 함수
split()
괄호 안의 값을 기준으로 문자열을 나눠주는 함수특정한 값이 없다면 공백을 기준으로 나눈다. 나눠진 값은 리스트에 들어가게 된다.
리스트 자료형
리스트 자료형은 순서가 있고 수정이 가능하다
리스트 안에 다른 리스트를 포함한 모든 자료형을 담을 수 있다.
a = [1, 2, 3]; b =[10, a ,12.5, True, '문자열']
print(a, type(a), id(a))
print(b, type(b), id(b))
aa = []
bb = list()
print(type(aa), type(bb))
[1, 2, 3] <class 'list'> 2610174741760
[10, [1, 2, 3], 12.5, True, '문자열'] <class 'list'> 2610174739904
<class 'list'> <class 'list'>
리스트 연산하기
문자열과 마찬가지로 더하는 것과 반복하는 것이 가능하다
a = [1, 2, 3]
b = [4, 5, 6]
a + b
[1, 2, 3, 4, 5, 6]
a = [1, 2, 3]
a * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
리스트 인덱싱, 슬라이싱, 관련 함수
family =['엄마', '아빠', '나', '여동생']
print(family[2])
print(family[0:2])
family.append('남동생')
family.insert(0, '할아버지')
family.extend(['삼촌', '조카'])
family += ['이모', '고모']
family.remove('남동생')
del family[2]
print(family,len(family))
print(family.index('나'))
print('엄마' in family, '할머니' in family)
나
['엄마', '아빠']
['할아버지', '엄마', '나', '여동생', '삼촌', '조카', '이모', '고모'] 8
2
True False
- 리스트 관련 함수 및 연산자
append()
리스트의 마지막에 자료형을 추가하는 함수이다.
sort()
리스트의 요소를 순서대로 정렬하는 함수이다.
reverse()
리스트의 순서를 역순으로 뒤집는 함수이다. 정렬 기능은 없다.
index(x)
x가 리스트의 요소로 존재한다면 그 위치를 리턴한다
insert(a, b)
a번째 위치에 b를 삽입하는 함수이다. 0번째 부터 시작한다
extend(x)
리스트를 확장해준다. x 위치에 리스트 자료형만 넣을 수 있으며 기존 리스트에 새로운 리스트를 붙여준다
+=
extend()와 용도가 같다
remove(x)
리스트에서 첫 번째로 나오는 x 값을 삭제하는 함수이다.
pop(x)
x를 넣지 않은 경우 리스트의 마지막 요소를 리턴하고 삭제한다
x를 넣은 경우 x번째 요소를 리턴하고 삭제한다
count()
리스트의 개수를 세어주는 함수이다
del
해당 리스트를 삭제한다
in
해당 요소가 리스트에 있는지 확인해준다
일반 복사와 copy.deepcopy 비교
일반 복사는 id 값까지 복사하여 기존 변수의 영향을 그대로 받는다
deepcopy 는 새로운 객체로 생성되어 영향을 받지 않는다.
name = ['js', 'java', 'spring']
name2 = name # 얕은 복사 : 주소 치환
import copy
name3 = copy.deepcopy(name) # 깊은 복사. 새로운 객체로 생성
name[0] = 'python'
print(name)
print(name2)
print(name3)
['js', 'java', 'spring']
['js', 'java', 'spring']
['python', 'java', 'spring']
stack queue
stack : last in first out
queue : first in first out
stack, queue 참고자료
위에서 배운 append(), pop() 함수를 사용해서 stack queue 를 보여주고자 한다
append()
리스트의 마지막에 자료형을 추가하는 함수이다.
pop()
리스트의 마지막 요소를 리턴하고 삭제한다
print("stack : last in first out, queue : first in first out")
sbs = [1, 2, 3]
sbs.append(4)
print(sbs)
sbs.pop()
print(sbs)
sbs.pop()
print(sbs)
print()
sbs = [1, 2, 3]
sbs.append(4)
print(sbs)
sbs.pop(0)
print(sbs)
sbs.pop(0)
print(sbs)
stack : last in first out, queue : first in first out
[1, 2, 3, 4]
[1, 2, 3]
[1, 2]
[1, 2, 3, 4]
[2, 3, 4]
[3, 4]
'python' 카테고리의 다른 글
python 정규표현식 (1) | 2022.10.04 |
---|---|
tuple, set, dict (1) | 2022.10.04 |
출력서식 (0) | 2022.10.04 |
연산자 (0) | 2022.09.30 |
python과 자료형 기초 (1) | 2022.09.30 |