본문 바로가기
언어/Python

[유튜브 나도코딩 1분파이썬] 100분완성 강의 요약본 #12강~19강

by 바다의 공간 2024. 5. 6.

[12강. 메소드]

메소드(methdo)라는것 = 클래스 내에 정의된 어떤 동작, 기능을 하든 코드들의 묶음

쉽게생각하면 기능 이라고 생각하면 된다.

메소드 사용 형식 문자열.메소드(...)

문자열.메소드(...)입니다. 물론 메소드안에 어떤게 들어가있겠죠?

ex) letter = 'how are YOU?'

이렇게 있는 문자열의 모든 내용을 소문자로 바꾸기위해서는 lower이라는 메소드가필요합니다.

print(letter.lower())을 실행하게 되면 #how are you? 라고 출력되는겁니다.

 

모든걸 대문자로 바꾸기 위해서는 upper 이라는 메소드가 필요합니다.

print(letter.upper())을 실행하게 되면 #HOW ARE YOU? 라고 출력됩니다.

 

첫글자를 대문자로하고 나머지는 모두 소문자로 바꾸고싶다면 capitalize라는 메소드가 필요합니다.

print(letter.capitalize())를 실행하게 되면 #How are you? 라고 출력됩니다.

 

각단어들의 첫 글자만 대문자로하고 싶다면 title라는 메소드가 필요합니다.

print(letter.title())를 실행하게 되면 #How Are You? 라고 출력됩니다.

 

대소문자를 뒤바꾸고 싶을때는 swapcase메소드가 필요합니다.

print(letter.swapcase())를 실행하게 되면 #HOW ARE you? 라고 출력됩니다.

 

문자열을 나누고 싶을때는 split라는 메소드가 필요합니다.

print(letter.split())를 실행하게 되면 #['how', 'are', 'YOU?']라고 출력됩니다.

이럴때는 띄어쓰기를 기준으로 나누어진 결과를 리스트의 형태로 변환하게 됩니다.

 

'how'가 몇번 쓰였는지 알고싶다면 count라는 메소드가 필요합니다.

print(letter.count('how'))를 실행하게되면 #1라고 출력됩니다.

 

[13강. 메소드 2 ]

 

s = '나도고등학교'

특정 문자로 시작하는지확인하려면 사용할 수 있는 메소드는 startswith입니다.

print(s.startswith('나도')를 실행하게 되면 #True 라고 출력됩니다.

괄호속에 확인하려는 값을 넣어주면 됩니다. 결과는 불리안 형태로 나오게 됩니다.

 

특정 문자로 끝나는지 확인하려면 사용할 수 있는 메소드는 endswith입니다.

print(s.endswith('초등학교')를 실행하게 되면 #False 라고 출력됩니다.

괄호속에 확인하려는 값을 넣어주면 됩니다. 결과는 불리안 형태로 나오게 됩니다.

 

s = '...나도고등학교...'

라고 가정했을대 앞뒤로 불필요한 부분을 제거하려고 할때 사용할 수 있는 메소드는 strip(' ')입니다.

괄호안에 제거하려는 문자들을 넣어두면 됩니다.

print(s.strip('.')를 실행하게 되면 #나도고등학교 라고 출력됩니다.

괄호속 안에 아무것도 넣지않으면 문자열 앞뒤로 불필요한 공백들이 제거 됩니다.

 

 

s = '나도고등학교'

'고등학교'를 '고교'로 문자열 일부를 바꿀수도 있는데, 그럴때 사용하는 메소드는 replace입니다.

print(s.replace('고등학교' , '고교'))를 실행하게 되면 #나도고교 라고 출력됩니다.

 

특정 글자가 어디에있는지 확인할때 사용하는 메소드는 find입니다.

'학교'라는 글자를 찾고싶다면 인덱스 기준으로 어디에 위치해있는지 알려주게 됩니다.

print(s.find('학교')를 실행하게 되면 #4 가 출력됩니다.

 

문자열을 다른 문자들 사이에 가운데로 집어넣고 싶을때 사용하는 메소드는 center입니다.

총 길이를 10글자로 정의를 해두고 하이픈을 적어서 나도고등학교를 하이픈으로 감싸는 총 10글자에 해당하는 결과를 낼 수 있습니다.

print(s.center(10, '-'))을 실행하게 되면 #--나도고등학교-- 가 출력됩니다.

더 다양한 메소드를 찾아보려면?

구글 -> python 내장형 -> 문자열 메소드를 참고하면 좋다. 아래에 링크를 걸어놨으니 참고하시길!!

https://docs.python.org/ko/3/library/stdtypes.html

 

[14강. 문자열 포맷]

python = '파이썬'

java = '자바'

print를 이용해서 둘 다출력하려면 print(python + ' ' + java)를 이용한 실행결과는 #파이썬 자바 가 출력됩니다.

더 간단히 하려면 바로 ,(콤마)를 이용하는것입니다.

print(python, java)로 출력하더라도 동일한 #파이썬 자바 라는것이 출력됩니다.

 

변수값을 있는 그대로가 아닌 다른 문장 속에 포함 시키려면 어떻게 해야할까요?

이럴때 문자열 포맷을 이용하면 됩니다.

 

문자열 포맷

1. {} + format

print('개발언어에는 {},{}등이 있어요'.format(python, java))

#실행결과 : 개발언어에는 python, java등이 있어요.

순서대로 문자열 내의 중괄호에 대입이 됩니다.

 

2. {N} + format / N :0,1,2, ...

print('개발언어에는 {0},{1}등이 있어요'.format(python, java))

#실행결과 : 개발언어에는 python, java등이 있어요.

중괄호 안의 숫자를 통해서 정해줄 수 있다.

 

3. f-string / 파이썬 3.6이상

print(f'개발언어에는 {python}, {java}등이 있어요)

#실행결과 : 개발언어에는 python, java등이 있어요.

 

[15. 탈출 문자]

예문1)

친구가 "파이썬 배우기 쉬워?" 하고 물었다. 를 출력하려면

print('친구가 "파이썬 배우기 쉬워?"하고 물었다.') 

#실행결과 : 친구가 "파이썬 배우기 쉬워?"하고 물었다.

 

예문2)

나는 속으로 '엄청 어려운데...'라고 생각했다.

print( "나는 속으로 '엄청 어려운데...'라고 생각했다."

#실행결과 : 나는 속으로 '엄청 어려운데...'라고 생각했다.

 

그렇지만...

하지만 '나만 당할 순 없지'라는 생각에 "엄청 쉽지"라고 했다.

이럴경우에는 이미 큰따옴표 작은따옴표가 있어서 원하는 결과를 얻기 쉽지않다.

그래서 사용하는것이바로 탈출문자이다.

 

탈출 문자

역실래시(\)와 특정 문자(숫자)의 조합으로 표현할 수 없는 기능이나 문자를 표시.

탈출문자
큰 따옴표 \"
작은 따옴표 \'
역슬래시 \\
줄바꿈 \n

 

[16. 리스트]

변수같은경우에는 하나의 값을 저장다고 하면 리스트같은 경우에는 여러값을 저장합니다.

일반적으로는 서로 관련 있는 연속적인 데이터들을 관리하는데 사용합니다.

 

리스트의 형태

리스트 = [값1, 값2, 값3, ....]

 

 

리스트는 똑같은 값을 넣는것는 중복값을 허용, 정수 실수 불리언, 문자, 빈 값 등 모두 가능하기때문에

my_list= [1, 2, 3, 3, 3, 'True', '아무거나', 3.1542] 도 가능합니다. 

my_bongtu = [] 도 가능함.

 

[17. 리스트 2]

my_list = ['신발', '과자', '콜라']

print(my_list[0])를 출력하게되면 신발 이 출력됩니다.

리스트는 순서를 보장해주고 슬라이싱도 가능하다는 말입니다.

 

리스트를 수정하려면? 메소드 append를 사용하면 됩니다.

my_list.append('빅파이') #값 추가

print(my_list)를 실행하면 : ['오예스', '몽쉘', '초코파이', '빅파이']

 

리스트 요소를 지우려면 메소드 remove를 사용해도 됩니다.

리스트와 리스트를 합치려면? 메소드 extend()를 사용하면 됩니다.

list1 = ['빨강', '주황']

list2  = ['노랑', '초록']

list1.extend(list2) 를 하면 리스트의 값이 합쳐지게 되고

print(list1)을 실행하게 되면 ['빨강', '주황', '노랑', '초록']이 출력됩니다.

메소드 의미
insert() 원하는 위치에 값 추가
pop() 원하는 위치(또는 마지막)의 값 삭제
clear() 모든 값 삭제
sort() 값 순서대로 정렬
reverse() 순서 뒤집기
copy() 리스트 복사
index() 어떤 값이 어디에 있는지
count() 어떤 값이 몇개 있는지

 

[18. 튜플]

튜플은 대괄호가 아닌!!! 소괄호 속에 값들을 지정합니다.

리스트는 대괄호, 튜플은 소괄호

튜플은 한번 만들고나면 수정이 불가능하다는것도 특징입니다. 이해하기 쉽게 표현하자면

읽기 전용 리스트라고 이해해도 좋습니다. 

튜플형식

tuple = ('봄', '여름') #기본형식

tuple = ('봄', '여름',' 여름')  #중복 허용

tuple = ('봄', '여름',' 여름', '3.14', 2, 3, True)  #뭐든지 다 넣을 수 있음.

 

튜플의 원소들의 순서도 보장이 된다.

단 수정은 되지 않음

슬라이싱을 통해서 원하는 만큼 출력도 가능합니다. 

 

[19. 튜플 2 ]

tuple = ('봄', '여름',' 가을')

이렇게 오른쪽에있는 값들을 왼쪽에 넣는것을 #패킹 이라고 합니다.

 

그런데 파이썬에는 이것의 반대인 개념도 있습니다.

 ('벚꽃', '개나리',' 봉숭화') = tuple #언패킹  이라고 합니다.

tuple에 있는 내용들을 하나씩 꺼내서 '봄', '여름', '가을'에 각각 저장하게 되는겁니다.

그렇게 되면

'벚꽃' = '봄'

'개나리' = '여름'

'봉숭화' = '가을'

로 구현이 되는거겠죠.

 

언패킹에서는 *을 이용할 수 있습니다.

numbers = (1,2,3,4,5,6,7)

(one, two, *others) = numbers

를 이용해서 보자면

one은 1 two는 2 로 *others는 3,4,5,6,7인 나머지를 모두 의미합니다.

이때 others는 튜플이 아닌 리스트의 형태로 된다는 점 주의해야합니다.

 

별의 위치가 앞으로 올때는?

numbers = (1,2,3,4,5,6,7)

(*others, seven, six) = numbers

*others = [1,2,3,4,5] 

 

즉 others는 각각 값이 아닌 다른 남는값들을 넣습니다.