In My Closet

사랑하는 모든 것

Study/Phython

[Phython] C++과 달라서 당황스러웠던 파이썬

calluna 2020. 11. 3. 14:22

 

1. 인터프리터(interpreter) 언어

- 파이썬은 소스 코드를 바로 실행하는 언어 >> 한줄 한줄 작성해서 실행하면 결과를 확인 할 수 있음
아 이건 내가 주피터 사용해서였네 ㅎ

- C++의 경우 소스코드를 작성하고 컴파일해서 실행시키는 것과 다르게 작동한다.

 

2. 사라진 ; {} 같은 것들..

- C++로 코딩을 하다가 처음 파이썬을 시작했을 때, 제일 많이 한 실수가 코드 끝나는 부분에 습관적으로 붙이는 ;(세미콜론)

- 반복문 등에서 등장하던 {} 들이 사라지고 들여쓰기에 따라서도 오류가 날 수 있는 파이썬..

 

파이썬 코딩했을때, 오류가 나면 대부분 오타라는데...나는 대부분 문장 끝 세미콜론들과 등장한 {} 등등 당연하게 사용했던 것들이 오류가 되어서 돌아왔다... 파이썬 코딩하다가 또 C++가면 저것들 안써서 오류ㅎㅎㅎㅎㅎ아주 난리가 났다

 

3. 자동으로 메모리를 관리해주는 언어 - 파이썬의 메모리 관리

- 사용자가 직접 메모리 할당범위를 조절하지 않아도 자동으로 된다.

- malloc을 안써도!! vector를 안써도...!! linked list를 안써도...!! 마치 동적 할당을 한것처럼 메모리 범위 조절이 된다. 파이썬을 쓰는 경우 메모리 할당범위를 거의 신경을 안쓰게 됐다.

- 처음 이걸 접했을땐, 이게 어떻게 가능해...? 이게 뭐야???? 뭐지???이랬었는데...Phython Memory manager가 있어 파이썬의 메모리를 관리해준단다..변수나 함수 등이 호출될때 마다 저 manager가 운영체제와 상호작용하면서 메모리 할당을 결정하고 이후 해제하고 하는듯 하다. 

- Phython Memory manager에 대해서 자세하게 알지 못하지만, 앞으로 계속 파이썬이라는 언어를 사용하고 활용하려면 한번쯤은 정확하게 공부해두어야할 것 같다.

 

4. Colab 한글 입력 문제

- 외부에서 공부를 할때, 노트북을 들고다닐 수 없어서 아이패드로 코딩할까 생각하다가 파이썬은 Colab으로 하면 되겠다고 생각함(나머진 걍 원격)

- 블루투스 키보드 구매해서 연결 >> 아이패드에 Colab 앱 받아서 코딩해보니 몇가지 빼고 잘 코딩 됨! 잠시 행복^^

- 실수 노트처럼 활용할 예정이라서 오류 났던 부분에 대해 오류 리뷰와 이유, 해결 방법을 작성하려고 한글로 전환하여 입력하는 순간 지옥문 열림

- 예를 들면, [안녕하세요]를 Colab에서 블루투스 키보드로 한글 입력을 하면 [ㅇ아안ㄴ녀녕ㅎ하ㅅ셍ㅇ요] 이런식으로 출력됨.

 

 

정말...와이라노...ㅜㅜ나한테 와이라노...

 

 

- 저런 한글 입력 오류를 뭐라고 하는지 생각도 안남....앱에서 나는 오류인가 싶어서 크롬으로 Colab 실행해봄...똑같음^^

- 블루투스 키보드 문제인가 했지만, 키보드 오류가 있으면 [ㅇㅏㄴㄴㅕㅇㅎㅏㅅㅔㅇㅛ] 보통 이런식으로 나옴

- 다른 웹사이트, 앱에서는 정상적으로 입력됨/ 영어는 이런 오류 없이 아주 잘~~입력 됨

- 결론 : Colab에서만 발생하는 오류로 블루투스 키보드 오류 아님 ^^ >> 그러므로 영어만 쓰면 됨

코랩 편해서 좋다고 희희낙락하다가 한글에 잠시 멘붕오고 해결할 수 없는 부분인거 확인하고 평안을 얻음

5. 배우기 쉬운 언어, 문법이 쉬운 언어
- 문법이 쉽다.. 다른 언어에 비해서 상당히 자유로운 문법 형식을 가지고 있다. 마치 영어를 해석 하듯 읽으면 코드의 내용이 보일정도.
- 처음 프로그래밍 언어를 접하는 사람들이 느끼기에 타 언어에 비해서 쉬움
- 하지만...나에겐 혼란스러움의 언어였다.
- 앞서 동적 할당과 비슷하게 이게 왜 되는거지??? 왜 실행이 되지?? 왜 돌아가지???? 하는 일이 너무 많았던 언어 ㅋㅋㅋ 여전히 이게 왜 돌아가는지 모를때가 있는데 아주 잘~~돌아간다.
- 변수의 data type도 지정안해도 될 정도 >> 알아서 변수에 저장된 값의 data type 스스로 판단하여 자료형 알아내기 때문.
- 그러나 개발자가 고려할 요소가 타 언어에 비해 적기때문에 배우기 쉬운 언어가 맞는것 같다.

5. list, array, DataFrame, Series

list는 저장되는 데이터 타입이 모두 같을 필요 없음.

array는 colum, row 모두 들어가는 데이터 타입이 모두 동일 해야함

dataframe은 각 column의 데이터 타입은 동일해야함.

 

저장 데이터 타입 외에도 각 특징이 다른데...이게 은근 헷갈리는 부분..

물론 사용할때 헷갈린다기보단 누군가가 설명을 요구할때 바로 생각나지 않는다. 저것 외에도 물론 각각 다른 특징들이 있지만, 내가 가장 크게 처음으로 느낀 다른 특징은 저거였다.