Python & Automation

Python study - day 1

모모토 2022. 1. 25. 16:24
반응형
자동화를 위한 Python 공부 1일차


 

컴퓨터 구조 및 프로그래밍

  • Computer System
    • Hardware와 Software로 구성
    • 입력 data처리( process ) 하여 사용자가 원하는 information을 제공하는 system
    • 전자계산기와 다른 점은 자동으로 반복적인 처리를 수행 한다는 점이 다르다.
  • Hardware
    • CPU : 산술/논리 연산과 제어 기능을 담당( 기억기능이 없다. )
    • Memory : data와 code( program, 명령 집합 )를 저장하는 기억 기능을 담당
    • I/O device : 입/출력을 담당
  • Software
    • System Software : computer system을 운영하기 위해 사용되는 program
    • Application Software : 사용자( End-user )가 사용하는 program

 

 

자료 구조와 알고리즘

  • 자료구조와 알고리즘
    • Memory에 저장되는 대상
      • program code : 명령 집합
      • data : cpu가 처리할 때 사용하는 값
  • 자료구조 : data를 구조적으로 관리 하는 방법 - memory 관리 방법
    • 선형 구조 : 데이터를 선형적( 연속적이다 )으로 관리 - data 저장
      • 정적 구조 : 크기가 결정되어있는 구조, 배열( Array )
      • 동적 구조 : 크기가 가변적인 구조, list( 연결 list )
    • 비선형 구조 : 데이터 검색을 위한 데이터 관리 - data 검색
      • Tree 구조 : 계층 구조
      • Graph 구조 : Network 구조( 한 지점에서 다른 지점으로 접근하는 경로가 여러개인 경우 )
  • 알고리즘 : 일처리 순서, 명령어를 나열하여 원하는 결과를 얻고자 하는 절차
    • 입력 : 0개 이상의 입력
    • 출력 : 1개 이상의 출력
    • 유한성 : 반드시 종료 되어야 한다.
    • 반복성 : 1번이상의 반복 수행
    • 유효성 : 유효한 명령으로 구성

 

 

What is Python ?

  • 파이썬( Python ) 
    • 오픈 소스 방식의 프로그래밍 언어
    • 인터프리터 방식의 프로그래밍 언어
      • 컴파일 방식 프로그래밍 언어
        • 소스 코드( text )를 일괄적으로 바이너리( binary )로 번역
        • 실행 속도가 빠르다.
      • 인터프리터 방식 프로그래밍 언어
        • 명령에 대한 즉시 처리
    • 프로토타입 작성 시 많이 사용하는 언어 (초기 개발 시 많이 사용하는 언어)
    • 동적 자료형 지원 언어

 

 

파이썬 개발환경 설정

  • 프로그램 작성 과정
  1. 소스 코드 작성 ( 사람 관점 ) - 에디터 프로그램 사용 -> 결과 : text 형태 파일
  2. 컴파일 ( 컴퓨터 관점 ) - 컴퓨터가 이해할 수 있는 바이너리로 변환하는 과정 - 컴파일러 사용 -> 결과 : binary 형태 파일( 실행 불가능한 상태 )
  3. 링크 - 함수의 실제 코드를 결합하는 과정 - 링커 사용 -> 결과 : 실행 가능한 형태의 binary -> 실행 가능한 형태 파일
  4. 실행 - 메모리에 실행 가능한 binary를 로드한 후 실행 - 로더 사용
    1. 인터프리터는 2 ~ 4까지의 동작을 하나의 프로그램으로 수행
  5. 디버깅 - 프로그램에 존재하는 버그( bug ) 수정 - 디버거 사용
  • 파이썬 프로그래밍을 위한 개발 환경 구성
    • 소스 코드 편집을 위한 에디터 프로그램
    • 파이썬 인터프리터 프로그램
  1. 파이썬 공식 인터프리터( 설치해서 사용 )
    1. www.python.org에서 다운로드해서 설치
    2. 최소한의 파이썬 환경만 구성
  2. 파이썬 배포판( 설치해서 사용 )
    1. www.anaconda.com
    2. 파이썬 기본 인터프리터에 데이터 분석이나 머신러닝 등에 필요한 환경을 구성한 인터프리터
  3. 클라우드 환경에서 사용하는 파이썬 인터프리터( 별도의 설치가 필요 없다 )
    1. google colaboratory( 구글 코랩 )
  • 통합 개발 환경( IDE, Integrated Development Environment )
    • 소스 편집, 컴파일, 링크, 로더( 인터프리터 ), 디버거를 하나의 프로그램에서 사용
    • 파이썬 IDE
      • jupyter notebook( jupyter lab ) - web browser 기반 IDE, 파일 확장자. ipynb, google colab은 jupyter notebook을 기반으로 클라우드 환경에서 파이썬 프로그래밍을 할 수 있는 도구
      • Pycharm - 설치 프로그램 형태의 IDE, 파일 확장자 *. py
  • jupyter notebook( jupyter lab )
    • web browser를 이용한 파이썬 IDE
    • 셀( cell ) 단위로 코드 작성 및 실행 가능
    • 셀의 종류는
      • 코드 셀 : 파이썬 코드 작성용 셀
      • markdown 셀 : 문서 작성용 셀
    • jupyter notebook( google colab ) 단축키
      • shift + enter : 현재 셀 실행 및 새로운 셀 생성
      • ctrl + enter : 현재셀 실행
      • b, ( ctrl + M, B : google colab ) : 새로운 코드 셀 생성
      • m, ( ctrl + M, M : google colab ) : 현재 셀을 Markdown 셀로 변경
      • d, ( ctrl + M, D : google colab ) : 현재 셀 삭제

 

 

파이썬 프로그램 구조

  • 파이썬 프로그램은 key word( 예약어 ), user define word( 사용자 정의어 )를 사용한다.
  • key word는 소문자
  • 파이썬 프로그램은 특별한 구조적 특징은 없다. 명령어를 위에서 아래로 나열해서 표현한다.
  • 파이썬 프로그램은 indentation( 들여 쓰기 ) 규칙이 중요하다.
  • 하나의 문장이 ‘:’( colon )으로 끝나면 다음 첫 줄은 일정 간격의 indentation( 들여 쓰기 )을 적용하여야 한다.
  • indentation( 들여 쓰기 )는 통상 tab 간격( 4칸 )을 주로 사용한다. 하지만 tab 간격이 아니라도 항상 같은 간격을 띄워주면 된다.
  • 파이썬은 대/소문자를 구분한다.
  • ()로 끝나면 함수( function )이다.
  • 파이썬에서 #은 주석( comment )을 의미한다.
  • 프로그램 언어 공부 방법
    • 해당 프로그램 언어 개발 환경 구축 방법 이해
    • 해당 프로그램 언어 프로그램 구조 이해

자료형을 중심으로 이해하는 것이 중요하다.

  • 자료형 이해 - memory 사용 방법( data 관리 방법 )
  • 연산자 이해 - data를 가공하는 방법
  • 제어문 이해 - 프로그램 실행 흐름 제어( 알고리즘 표현 )

기능에 따른 모듈화

  • 함수( function ) 이해
  • 입출력 방법 이해
  • ( 함수, 클래스 ) 라이브러리 사용법 이해

 

 

자료형 / 연산자 / 제어문

  • 자료형( data type )
    • 메모리에 데이터를 저장하기 위한 공간 확보 방법
    • 자료형 종류
      • 기본 자료형 : 원시( 원자 ) 데이터( 하나의 값 )를 관리하기 위한 자료형
        • 숫자 : 산술 연산( 사칙연산 )이 가능한 데이터 형태
          • 정수( int )
          • 실수( float )
          • 복소수( complex )
        • 문자 : 산술 연산이 불가능한 데이터 형태
          • byte 문자( byte ) -> 1byte 단위로 문자를 저장하는 자료형
          • 문자( 문자열 )( str ) -> sequence 자료형, 문자( 문자열 ) 집합
        • 논리 : 참( True, 1 )/거짓( False, 0 )에 대한 데이터( boolean )
      • sequence 자료형 : 데이터 집합을 관리하기 위한 자료형
      • 사용자 정의 자료형 : 사용자가 원하는 형태로 자료를 관리할 때 사용하는 자료형
  • 상수( constant ) : 변하지 않는 값, literal 이라고도 한다.
  • 변수( variable )
    • 값을 저장하는 기억 공간을 의미하며 변수명은 사용자 정의어에 해당한다.
    • 변수가 생성될 때 저장되는 값에 의해서 변수의 자료형이 결정된다. -> 동적 자료형
      • 동적 자료형( dynamic typing ) : 프로그램 실행 시 자료형이 결정된다. 동적 자료형을 사용하면 실행 속도가 늦다.
  • 컴퓨터 문자 표현 방식
    • ASCII 문자 : 1 byte로 표현하는 문자로 한글 표현이 불가능하다.
    • UNICODE 문자( UTF-8 ) : 2 byte로 표현하는 문자로 한글 표현이 가능하다.(다만 변수는 한글로 만드는 건 권장하지 않는다.)
    • 컴퓨터에서 문자를 표현하기 위해 변환하는 동작을 문자 인코딩( encoding )이라고 한다.
  • 파이썬은 UNICODE 문자를 사용하는 언어이다.
  • 네트워크를 이용하여 통신할 때는 ASCII 코드를 사용해야 한다.
  • 파이썬으로 네트워크 프로그램 작성 시 데이터 송/수신할 때 byte 자료형으로 encoding / decoding를 적용해야 한다.
  • 논리 값은 True( 참, 1 ) / False( 거짓, 0 )으로 표현
  • 변수 사용 방법
    • 변수 생성
    • 변수 내용 변경
      • 값 치환 : R value 값( 연산 결과 값 )을 L value 변수에 기억
      • 값 누적 : L value 변수 값과 다른 값과의 연산 결과를 다시 L value 변수에 저장하는 연산 방식, L value 변수 내용을 원하는 값만큼 증가시키는 동작
    • =( 치환 연산자 ) : =( 치환 연산자 ) 오른쪽( R-value)의 값을 =( 치환 연산자 ) 왼쪽( L-value)의 변수에 기억시켜라
    • L value에는 반드시 변수만 사용할 수 있다.
  • 표준 입출력
    • 표준 입출력 장치 : 특별한 장치 지정 없이 사용하는 입출력 장치
      • 표준 입력 장치 : stdin, 키보드
      • 표준 출력 장치 : stdout, 모니터
      • 표준 에러 표시 장치 : stderr, 모니터
    • 표준 입출력 함수( 내장 함수 )
      • input() 함수
        • 표준 입력 장치로부터 메모리로 저장하는 함수
        • 컴퓨터 시스템은 모든 입력을 문자열( 문자 )로 입력을 받는다.
        • 필요에 따라 형 변환을 수행해서 입력값을 사용한다.
      • print() 함수
        • 표준 출력 장치에 메모리 내용을 출력하는 함수
        • 제어 문자 : 화면 출력을 목적으로 하지 않고 기능 수행을 목적으로 하는 함수
          • \n : 줄 바꿈
          • \t : tab 키
        • print() 함수는 자동 줄 바꿈 기능을 제공한다.
        • print() 함수의 자동 줄 바꿈 기능을 멈출 때에는 end 옵션을 사용한다.
  • 자료형 변환
    • 사용자가 원하는 형태의 자료형으로 변환하는 동작으로 파이썬 내장 함수( 형 변환 함수 )를 사용한다.
      • int() 함수 : 정수형으로 변환
      • float() 함수 : 실수형으로 변환
      • complex() 함수 : 복소 수형으로 변환
      • bytes() 함수 : byte 형으로 변환
      • bool() 함수 : 논리형으로 변환
  • 연산자
    • 변수의 내용을 이용하여 값의 변화나 판단을 수행하는 기능
    • 산술 연산
      • 같은 자료형에 대한 연산 결과는 해당 자료형에 대한 결과
      • 나눗셈은 연산 결과가 항상 실수형이다.
      • 컴퓨터는 산술 연산 시 항상 같은 자료형 연산만 가능하다.
    • 관계 연산
      • , <, >=, <=,!=, ==
    • 논리 연산
      • and, or, not

'Python & Automation' 카테고리의 다른 글

Python Study - day 6  (0) 2022.02.01
Python Strudy - day 5  (0) 2022.01.31
Python Study - day 4  (0) 2022.01.27
Python Study - day 3  (0) 2022.01.27
Python study - day 2  (0) 2022.01.26