38
Python

컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울

Python

Page 2: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울

프로그래밍 언어

• 컴퓨터란 사람을 대신해서 계산을 하는 계산기

• 계산, 연산, 나아가 명령을 받아 어떤 복잡한 작업을 수행하는기계 : 컴퓨터

• 프로그램이란 기계(컴퓨터)에게 시킨 명령들의 집합

• 그럼 사람이 컴퓨터에게 어떻게 명령을 내리는가?

기계 사람???

Page 3: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울

프로그래밍 언어

• 기계가 이해하는 언어 : 기계어• 001001 11101 11101 1111111111111000

• 사람이 사용하는 언어 : 자연어• “Siri님 내일 춘천 날씨좀 알려주세요”

• 사람이 기계어로 일일이 명령어를 짜는것은 어려운 일

• 약속된 문법에 맞추어진 인공적인 언어(프로그래밍 언어)로 명령어를 짜고(Coding)

• 이(Source code)를 번역(Compile)하여

• 기계어(목적프로그램)로 만든후

• 컴퓨터에 명령을 시킴(실행, execute)

Page 4: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울

프로그래밍 언어

g++, VS…

Page 5: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울

Python

• 1990년 암스테르담의 귀도 반 로섬(Guido Van Rossum)에 의해만들어진 인터프리터 언어

• 사전적인 뜻은 고대 신화 속의 파르나수스 산의 동굴에

• 살던 큰 뱀으로, 아폴로가 델파이에서 파이썬을 퇴치했다는 …

• 어디에서 많이 사용하는가?• – 구글에서 만들어진 소프트웨어의 50%이상이 파이썬으로 만들어졌

다고 함

• – Dropbox(파일 동기화 서비스), Django(파이썬 웹 프레임워크) 등

Page 6: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울
Page 7: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울

Python

• 문법이 쉬워 빠르게 학습할 수 있다– 파이썬을 공부한지 단 하루만에 자신이 원하는 프로그램을 작성할 수 있었다고 함 (프로그래밍 경험이 있었음)

• 간결하다– Perl은 하나의 일을 하기 위한 방법이 100가지– 파이썬은 가장 좋은 방법 1가지를 선호

• 강력하다– 대부분의 모든 일을 할 수 있음

• 시스템 프로그래밍, 하드웨어 제어, 복잡하고 많은 반복연산에는 어울리지 않음

– 파이썬으로 안되면 C, C++로 만들어서 쉽게 파이썬에 포함시킬 수 있음

• 무료이다

• 개발속도가 빠르다– C, C++, Java 등으로 한달 이상 걸릴 것을 1주일 안에 개발 가능– Python을 이용하여 빠르게 Prototype 시스템을 구축 후, 검증 되면 이를 C, C++, Java 등으로 구현 -> 전체 개발 시간을 단축!

Page 8: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울

Python

• 시스템 유틸리티 – 운영체제의 시스템 명령어 지원

• GUI(Graphic User Interface) 프로그램• – Tkinter, wxPython, PyQT, PyGTK

• 웹 프로그래밍 – 많은 라이브러리 제공

• C/C++과의 결합– C/C++로 만든 프로그램을 파이썬에서 호출, 반대도 가능

• 수치연산 프로그래밍 – Numpy 이용 (C로 작성 됨)

• 데이터베이스 프로그래밍 – 오라클, MySQL 등의 도구 제공

• 파이썬으로 할 수 없는 일– 대단히 빠른 속도를 요구하거나 하드웨어를 직접 건드려야 하는 프로그램

Page 9: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울

확장자 보이기

• http://infotrue.tistory.com/5

Page 10: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울

Python

• Python 인터프리터

• (Win7 기준)시작 메뉴의 검색창에 cmd를 입력 -> cmd.exe실행

Python을 입력시 위의 메뉴가 뜨면 설치 성공(Python 인터프리터 환경)

종료는 [Ctrl]+[z]키를 누른후 [Enter]

Page 11: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울

Python

• 입력

Page 12: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울

Python

• 작업폴더 생성

• 소스코드(text파일) 생성

• 파일명 변경(이때 확장자는 py)

• 해당 파일 오른쪽 클릭후 Notepad++로 실행

Page 13: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울

Python

• 기본 작업 환경

저장!

Page 14: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울

Python

• 현재 작업폴더(소스코드가 존재하는 폴더)에서 [왼쪽Shift]+[마우스 오른쪽 클릭]으로 메뉴를 열어 명령 창을 실행

python 명령어를 친후 띄어쓰기를 넣은후 실행할 소스코드파일 이름을 집어 넣고 [Enter]

종료는 [Ctrl]+[c]

Page 15: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울

Python 자료형

• 컴퓨터는 계산기

1 + 2 = 3

값연산

결과(저장)

Page 16: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울

Python 자료형

• 컴퓨터는 계산기

1 + a = ??

값연산

결과(저장)

변수

Page 17: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울

Python 자료형

• 변수 : 프로그램이 어떠한 작업을 하기위해 데이터를 저장하는공간(엑셀에서의 셀)

• 자료형 : 변수에 저장하는 데이터의 형태(숫자, 문자열 등등)

• 1, 2, 3, …

• 1.0, 2.3, 3.52, …

• “apple”, “한글”, …

• True, False

• Python에서는 기본적으로 Number, String, List, Tuple, Dictionary 등이 제공됨

Page 18: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울

Python 자료형

변수 이름(python에서는 따로 자료형을 지정하여 선언할 필요 없음)

등호(=)는 대입을 의미왼쪽의 변수에 오른쪽 값을 대입

하겠다는 의미

대입할 값값을 직접 입력할수도 있고변수등을 사용한 식이나 함

수 사용 가능

Page 19: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울

Python 자료형

• Number

항목 예시

Integer(정수) 123, -345, 0

Real number(실수) 123.45, -1234.5, 3.4e10

Complex number(허수) 1+2j, -3j (python에서 i대신 j로)

Octal digit(number, 8진수) 034, 025

Hexadecimal digit(number, 16진수) 0x2A, 0xFF

Page 20: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울

Python 자료형

• Number• Integer(정수)

• Real number(실수)

• Octal digit(number, 8진수)

• Hexadecimal digit(number, 16진수)

Page 21: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울

Python 자료형

• 숫자 연산

Page 22: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울

Python 자료형

• 문자열

• (‘)나 (“)를 사용하여 구분

• “Hello Word”

• ‘Python’

Page 23: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울

Python 자료형

• (‘)을 문자열 안에 포함시킬 때

• (“)을 문자열 안에 포함시킬 때

Page 24: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울

Python 자료형

• \(역슬래시)로 (‘)과 (“)를 문자열 안에 포함시키기

Page 25: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울

Python 자료형

• 여러줄의 문장을 한번에 처리 할시

• 줄 바꿈 문자인 ‘\n’ 삽입

• 연속된 double quotation 세 개 (“““) 이용

Page 26: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울

???

• Print 명령어

• 화면에 출력하는 명령어 print 를 이용해서 출력

• 변수명만 쓰면 그냥 내용물 출력임

Page 27: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울
Page 28: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울

Python 자료형

• 문자열 합치기(연결)

• 문자열 곱하기(반복)

Page 29: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울
Page 30: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울

[수정사항] 상위버전(2.7.6이상?)에서 지원하는기능

Page 31: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울
Page 32: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울
Page 33: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울
Page 34: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울

실수(real number)

Page 35: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울
Page 36: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울
Page 37: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울
Page 38: 컴퓨터 개론 및 실습 - Kangwoncs.kangwon.ac.kr/~hhs/2017_1_01/2017_03_15.pdf · •시스템프로그래밍, 하드웨어제어, 복잡하고많은반복연산에는어울