세리프 따라잡기

파이썬 프로그래밍 기초: 자료형(2) 본문

Python

파이썬 프로그래밍 기초: 자료형(2)

맑은 고딕 2021. 5. 13. 17:57

문자열 포매팅

사용 이유: 따옴표로 여러 번 안 닫아 줘도 된다.

 

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]

 

Comments