본문 바로가기

Python/Default

Python 교육 1일차

프로그래밍 언어의 특징

1. 인터프리터

2. 문법

3. 개발툴

 

Data / 함수 / 객체

- 파이썬은 모든 것이 객체이다

- Data의 자료형

> List : 데이터의 중간 결과 저장(임시 저장), 분석 결과물 저장 용도

> Tuple : 메인 함수에 여러 개의 인자를 넣을 때 (*Tuple 형식으로) key 없이 value만 모아서 쓴 것이 튜플

> Set : (Lookup table) key만 모아둔 것.

> Dict : key/value로 존재. key는 고유한 단어로 존재하며 value는 key가 의미하는 내용.

Dict = Set(key) + Tuple(Value)

Temp(dict) = List

- 객체(Class의 Instance)

> int, float 이런 것들은 다 원형 class가 있고 선언하면서 Instance가 되는 것임(메모리에 올라감!)

> 해석 가능한 문자열들(Token)

> 메모리 관리를 따로 해주지 않아도 파이썬은 알아서 메모리 관리를 해준다.

> a(변수) = 1(상수)

상수란 값이 변하지 않는 칭긔 칭긔이다.

- mutable  - 변할 수 있는 / immatable - 못 변해요(Scala)

 만약 리스트를 할당한다면 list = [1, 2, 3, 4, 5] list[0] = 1 , list[1] = 2 이런 식으로 가겠지. 각각의 인덱스는 요소를 가리키고 있으며 (주소 값) 요소를 변경할 수 있다. 이는 mutable 하다는 것을 의미한다. 성분도 바꿀 수 있고 새로운 칭구를 append 할 수도 있다.

 하지만 튜플을 생각해보자. tuple = (1, 2, 3, 4, 5) 변하지 않는 데이터를 저장하는 용도. append도 update도 안되는 immatable한 친구이다.

 Set은 멀까.. 이 친구는 집합이라고 생각하면 된다. 성분을 추가할 수 있으므로 mutable한 친구이다. 대신 기존에 있던 성분들과 완전하게 다른 친구를 넣어주어야 한다.(Unique 속성) Dict도 마찬가지로 mutable하다. 따라서 영~원히 변하지 않는 친~구는 tuple이다.

list = [5, 'a']

tuple = (5, 'a')

Set = {5, 'a'}

dict = {5:7, 'a':8}

Set[0] = ? 무슨 값이 나올까 ?. 아무도 모른다. 얘네들은 안에서 서로 순서를 정해놓지 않았기 때문에 그 때 그 때 다른 값이 나타난다. 따라서 색인의 용도로는 절대 사용할 수 없다.

 연산이 너무 많아서 메모리가 부족하면 어떻게 될까? lazy extenstion. 실행시 계획을 잔뜩 만들어놓고 액션일 때 한 번에 한다. 코드 최적화를 할 시 여태 책임은 내가 졌는데 텅스턴 엔진을 통해 알아서 최적화를 해주고 중간 저장 데이터(중간 연산의 산출물)은 만들지 않고 최종 결과물만 주는 것이다. 

 값을 메모리에 올려놓으면 메모리를 소비할 수 밖에 없다. 하지만 generate, itorate 하면 값을 가지는게 아니라 저 가질거에욘~하고 계획만 세우고 있는 것이다.

 

- 패키지 : 한번에 사용하기 위한 용도로 모아 놓은 것

- 모듈 : 어떤 곳에다가 끼워넣는 의미.

- 라이브러리 : 큰 장소에 빼곡히 채워넣은 것.

 규모가 크면 라이브러리. 쪼끔 사용하면 패킷. 째깐째깐 한 것은 모듈.

> 모듈 (클래스, 함수, 서브 모듈)

pip install urllib

pip update urllib

필요할 때 필요한 명령만 불러와야 한다. 따라서

import urllib


오후는 JupyterNoteBook을 사용한다. 그야말로 평범하구만.

(base) path>jupyter notebook --notebook-dir=C:\Users\kosta\Documents\temp
(중간 삭제)
[I 13:14:03.464 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 13:14:03.520 NotebookApp]

    To access the notebook, open this file in a browser:file:///rver-13704-open.html
    Or copy and paste one of these URLs:
        http://localhost:8889/?token=dba083b48e3b5ff75f5aa09d4ce0f6c8256ee9824c4569a7

anaconda를 이용해 다음과 같이 원하는 위치에서 실행할 수 있다.

New를 통해 새로운 노트북을 생성하고 Markdown 셀로 원하는 제목을 정해준다. 1 line씩 실행할 수 있으며 In을 통해 코드를 입력하고 Out을 통해 결과를 보여준다. 얘는 리눅스의 명령어를 모두 수용해주는 착한 모습을 보인다.

!를 사용하면 os의 명령어를 사용할 수 있다. %를 사용하면 주피터 노트북의 명령어를 사용한다는 것이다.

이렇게 작성하면 hello_world.py에다가 작성하라고 하는 것이다.

불러오기도, 실행하기도 할 수 있다.

간단한 구구단도 함 만들 수 이따

6단 이하에서 짝수단만 출력하긔

enumrate , zip ---> for 문 안에 사용하는 option

억지로 쓰려고..구질구질스의 결정체..

이렇게 쓸 수 있는건 처음 알았따 신기방기