[인프런] 예제로 공부하는 Python 100 문제풀이
안녕하세요 민몽입니다:>
오늘은 인프런에서 무료로 들을 수 있는 '예제로 공부하는 Python 100' 문제풀이 강의를 들으면서
헷갈렸던 부분들을 한번에 정리해보려고 해요 ! 강의는 아래 사진과 같이 세 파트로 나눠져있어요.
파이썬에 대해 공부하면서 어려운 파트가 있으셨다면 강의에서 제공해주는 예제로 한번 더 공부해보시는 걸 추천드려요.
저도 한번씩 복습하고 어려웠던 부분들은 따로 정리해두니까 이후에 까먹더라도 빠르게 찾아볼 수 있어서 좋았어요.
순서대로 따라가지 않아도 필요한 부분들만 빠르게 문제 풀이를 통해 복습해볼 수 있어서 좋았어요.
아래는 제가 공부하면서 정리했던 글을 모아봤습니다 !
다음은 유튜브에서 '나도코딩' 님의 파이썬 강의를 들으며 공부했던 내용을 정리해볼게요 -
읽어주셔서 감사합니다 !
Part1. 변수
- a is b : a 와 b 가 같은 객채를 가리키고 있는지 ? ( 값 비교 X )
- a == b : a 와 b의 값이 같은지 ?
숫자 , 문자열의 경우
- a = 101 , b = 100 + 1
→ 이미 메모리 공간 상에 101이 할당되어 있기 때문에 새로운 101의 공간을 할당하지 X 이미 있는 객체를 가리킴
따라서 a is b -> True
- e = [1,2,3,4,5], f = [1,2,3,4,5]
→ 리스트 객체는 따로 공간 할당 ! 따라서 e is f -> False
a = 'korea' , b = 'korea!'
c = b[:-1]
print(c,id(c))
print(a is c)
→ 슬라이스 한 경우 새로운 공간을 할당 받음. a is c = False
→ 슬라이스 시 값의 변화가 없을 경우 같은 객체를 가리킴
Part1. 자료형
- {1,2,3,4,5} : set (집합)
- {'a':12,'b':15} : dictionary { 키 : value }
아스키코드
ord()함수는 문자를 입력받아 해당 문자에 해당하는 아스키코드 값 반환 ( ordial number )
- A : 65 , a : 97, 0 : 48
- Enter : 13
- 아스키코드 0번 = NULL
- chr = chr(a) 이렇게 했는데 첨엔 잘 되더니 갑자기 아래와 같은 에러 발생.
해결책 : 'str' object is not callable → 예약어를 변수명으로 지정했을 때 발생 . del 로 지우면 됨
- chr() : ord() 의 반대 , 숫자(정수)를 입력받아 숫자에 해당하는 아스키코드 반환
Part1. 연산자
- % : 나머지 연산
- // : 몫 반환
- 정수형과 실수형 연산 → 실수형(double)
1. 산술연산자
- +,-,*,** 제곱 , / , // 몫 반환 , % 나머지 연산
2. 관계연산자 대소비교, 일치하는지 ? 비교
- > < >= <= != ==
3. 논리연산자
- and , or , not
4. 할당연산자
- = , += , -=, *=, /=
5. 멤버십연산자
- in 연산자
6. 부울연산자
- True, False 값 출력
- bool()
- 1 : True , 0 : False , 그 외 숫자 : True
Part1.반복문 ( for문 )
print() 함수 사용법
- print( , end = " " ) → 줄 바꿈 X, 사이에 원하는 문자 입력 가능 , 기본값 = 개행
- print( , seq = " " ) → 콤마로 구분되는 문자 바꿀 수 있음 , 기본값 = 공백
range()함수 옵션
- range ( start , end , step )
- 짝수만 출력하고 싶을 때,
1. i % 2 == 0
2. range( 2, 100 , 2 )
정방향 출력
for i in lst[:: 1 ] :
print( i )
역방향 출력
for i in lst[:: -1] :
print( i )
Numpy
1. numpy.reshape 의 -1 의 기능
- np.arange(10).reshpae(-1,5) → 열 위치에 임의의 정수가 있을 때, 그 정수에 따라 열의 개수 자동으로 구조화
- np.arange(10).reshpae(5,-1) → 행 위치에 임의의 정수가 있을 때, 그 정수에 따라 열의 개수 자동으로 구조화
- np.arange(10).reshape(-1) → 1차원 배열 반환
2. numpy 인덱싱과 슬라이싱 차이점
- 인덱싱 : numpy array 객체를 인덱싱할 경우, 인덱싱 한 만큼 차원의 개수가 줄어든다.
- 슬라이싱 : 차원의 개수가 줄어들지 않는다.
- 2차원 array의 경우
arr[0,1] → 0차원 값 반환 , 크기 ()
arr[1:4, 2] → 1차원 값 반환, 크기(3,)
arr[1:4, 2:3] → 2차원값 반환, 크기(3,1)