세리프 따라잡기
파이썬 프로그래밍 기초: 자료형(2) 본문
문자열 포매팅
사용 이유: 따옴표로 여러 번 안 닫아 줘도 된다.
1. 포매팅을 사용하지 않은 방법
>>> "i eat "+str(3)+" apples" # 문자 3을 넣어줌
'i eat 3 apples'
2. 포매팅을 사용한 방법 : 더 편리함
>>> "i eat %d apples." %3
'i eat 3 apples.' # d의 자리에 뒤에 적은 3이 출력됨.
2-1. 포매팅 활용
num = 5
day = "three"
a = "i ate %d apples. so i was sick for %s days" %(num, day) # "% () ,"를 이용해 2개 이상의 값 넣기
print(a) # i ate 5 apples. so i was sick for three days
* %s 코드의 재밌는 점!
= 예를 들어 숫자 3을 넣으려면 %d를 이용해야 하고, 3.24를 넣으려면 %f를 사용해야 한다. 그런데 %s를 사용하면 자동으로 문자열로 바꿔주기 때문에, 포맷 코드에 맞춰 쓸 생각을 안 해도 된다. 😁
- 문자열 포맷 코드
코드 | 설명 |
%s | 문자열(string) |
%c | 문자 1개(character) |
%d | 정수(integer) |
%f | 부동 소수(floating-point) |
%o | 8진수 |
%x | 16진수 |
%% | literal % = 문자 % 출력 ex. 'error is 98%'를 출력하고 싶다면, >>>'error is %d%%' %98 라고 입력 |
- 소수점 표현하기
# 그냥 소수 표현
>>> '%f는 원주율! 그 뒤는 몰라' %3.141592
'3.141592는 원주율! 그 뒤는 몰라'
# 소수점 표현
>>> '%0.2f는 원주율! 그 뒤는 몰라' %3.141592
'3.14는 원주율! 그 뒤는 몰라'
%0.2f의 입력값이 3.14인 것 처럼,
%간격.소수점 남길 자리 수f ← 형태로 쓰면 소수점 표현이 된다.
- format 함수를 사용한 포매팅
a='today is {}'.format('thursday') # .format()을 이용
print(a) # today is thursday
혹은 변수 이름을 주어 바꾸기
a='today is {day}'.format(day='thursday') # day라는 변수에 넣어주어 출력
print(a)
여러 개를 넣었을 때
a='today is {day}. {date}'.format(date='5/13',day='thursday') #변수 이름에 따라, 변수에 맞춰서 포매팅
print(a) # today is thursday. 5/13
+ python 3.6 버전부터는 f 문자열 포매팅 기능을 사용할 수 있다. [버전 미만은 사용할 수 없음]
name='gothic'
age='3'
a=f'{name}이는 {age}쨜 입니다ㅎㅎ' #앞에 f(format)을 넣어 포매팅
print(a) #gothic이는 3쨜 입니다ㅎㅎ
문자열 관련 함수
문자 개수 세기
- count: 문자열 중 b의 개수를 돌려준다.
a='hobby'
print(a.count('b')) #2
- find: 문자열 중 y가 처음 나온 위치를 반환한다.
h | o | b | b | y |
0 | 1 | 2 | 3 | 4 |
# 찾는 게 있다
a='hobby'
print(a.find('y')) # 4
# 찾는 게 없다
a='hobby'
print(a.find('a')) # -1
이때 찾는 문자나 문자열이 존재하지 않으면 '-1'을 반환한다.
* 위치를 알려주는 함수 중 index가 있으나, find보다 잘 안 쓰임
문자열 삽입
- join: 리스트를 배울 때 많이 사용
a=','.join('abcde')
print(a) #a,b,c,d,e
- upper, lower: 대문자/소문자로 바꾸기
#대문자로
a='bye'
print(a.upper()) #BYE
#소문자로
b='HI'
print(b.lower()) #hi
- lstrip, rstrip: 왼쪽/오른쪽 공백 제거
a=' space '
print(a.lstrip()) #space [왼쪽 공백만 제거, 오른쪽은 존재]
a=' space '
print(a.rstrip()) # space [오른쪽 공백만 제거, 왼쪽은 존재]
- replace: 문자열 바꾸기
a='life is too short'
print(a.replace('life','your leg')) #your leg is too short
life를 your leg로 바꿔줌
- split: 문자열 나누기
# 공백을 기준으로 문자열 나눔
a='life is too short'
print(a.split()) #['life', 'is', 'too', 'short']
# / 기호를 기준으로 문자열 나눔
b='a/b/c/d'
print(b.split('/')) #['a', 'b', 'c', 'd']
→ 리스트로 만들어줌
리스트(List)
: 변수 여러개를 묶는 역할
a=['malgun','gothic','tistory',['blog','python']]
print(a[2]) #tistory
print(a[3]) #['blog', 'python']
print(a[3][1]) #python
리스트 안에 리스트를 계속 넣을 수 있다.
- 인덱싱과 슬라이싱이 가능하다.
a=['malgun','gothic','tistory',['blog','python']]
print(a[1]+a[2]) #gothictistory 인덱싱
print(a[1:3]) #['gothic', 'tistory'] 슬라이싱
- 리스트는 연산(+, *)이 가능하다.
a=[1,2,3]
b=[4,5,6]
print(a+b) #[1, 2, 3, 4, 5, 6]
print(a*3) #[1, 2, 3, 1, 2, 3, 1, 2, 3]
- len: 길이 구하기
a=[1,2,3,4,5,6]
b=[4,5,6]
print(len(a)) #6
* 리스트 연산 오류
>>>a=[1,2,3]
>>>a[2]+'hi'
라고 했을 때 3hi가 아닌 오류가 뜨는 이유는 int(3)와 str(hi)의 연산이기 때문이다. 정수와 문자열은 더할 수 없다.
3hi로 만들어주고 싶다면 >>>str(a[2])+'hi' 라고 해줘야 한다.
리스트의 수정과 삭제
- 값 수정
a=[1,2,3]
a[2] = 5
print(a) #[1, 2, 5]
- 슬라이싱으로 수정
a=[1,2,3]
a[0:2]=['one','two']
print(a) #['one', 'two', 3]
- 슬라이싱으로 삭제하기
a=[1,2,3]
a[0:2]=[]
print(a) #[3]
이렇게 [] 공백을 주면 해당 자리가 삭제가 된다.
- del 함수 사용해 요소 삭제
a=[1,2,3]
del a[1:]
print(a) #[1]
리스트 관련 함수
- append: 요소 추가
#기본
a=[1,2,3]
a.append(4)
print(a) #[1, 2, 3, 4]
#리스트에 리스트 추가
a=[1,2,3]
a.append([4,5])
print(a) #[1, 2, 3, [4, 5]]
- sort: 문자는 알파벳/가나다 순으로, 숫자는 크기 순으로 정렬된다.
# 문자
a=['맑은','고딕','티스토리','블로그']
a.sort()
print(a) #['고딕', '맑은', '블로그', '티스토리']
# 숫자
a=[14,2,1,5,0]
a.sort()
print(a) #[0, 1, 2, 5, 14]
- reverse: 바르게 정렬해서 역순으로 뒤집는게 아니고, 현재 리스트 그래도 뒤집는다.
a=[3,5,1,4]
a.reverse()
print(a) #[4, 1, 5, 3]
- insert: 요소 삽입
a=[1,2,3]
a.insert(0,4)
print(a) #[4, 1, 2, 3]
a.insert(0,4) = 0번째 인덱스에 4를 삽입하라는 것.
- remove: 리스트에서 첫 번째로 나오는 x를 삭제하는 함수
a=[1,2,3,1,2,3,1,2,3]
a.remove(2)
print(a) #[1, 3, 1, 2, 3, 1, 2, 3]
2를 remove하면 첫 번째로 나오는 2만 제거되고, 나머지 2들은 살아있다.
- pop: 리스트의 맨 마지막 요소를 돌려주고 그 요소를 삭제
a=[1,3,4,5]
a.pop()
# print(a.pop(),a)를 통해 5가 나가고 [1, 3, 4]가 남은 걸 알 수 있음.
- extend: 원래의 리스트에 x리스트를 넣어줌
a=[1,2,3]
b=[6,7]
a.extend(b)
print(a) #[1, 2, 3, 6, 7]
'Python' 카테고리의 다른 글
파이썬 프로그램의 구조 쌓기: 제어문(1) (0) | 2021.05.15 |
---|---|
파이썬 프로그래밍 기초: 자료형(3) (0) | 2021.05.14 |
파이썬 프로그래밍 기초: 자료형(1) (0) | 2021.05.11 |
파이썬에 대해 (0) | 2021.05.10 |