데이터 공부/Python

[인프런] 예제로 공부하는 Python 100 문제풀이

민몽 2023. 1. 8. 01:57

안녕하세요 민몽입니다:>

오늘은 인프런에서 무료로 들을 수 있는 '예제로 공부하는 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)