44
산업공학과를 위한 프로그래밍 입문 (w/파이썬) PART I : 파이썬 기초 가천대학교 | 산업경영공학과 최성철 교수

산업공학과를위한 프로그래밍문 (w/파이썬contents.kocw.net/KOCW/document/2014/gacheon/choisungchul/3.pdf · Source: 파이썬3 바이블, ... 력모드, 커서키로네비게이션(왔다갔다)

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

산업공학과를 위한프로그래밍 입문 (w/파이썬)

PART I : 파이썬 기초

가천대학교 | 산업경영공학과

최성철 교수

파이썬 시작하기

College of EngineeringDept. of Industrial Engineering

파이썬 설치

ㆍ Python Software Foundation에 의해 관리됨

ㆍ https://www.python.org를 통해

다운로드 가능

ㆍ최신버전은 3.4.1 이나 2.X대 버전도

사용하는데 불편은 없음

(기존 라이브러리 사용 여부에 따라 버전 선택)

자신의 OS에 맞는 버전을 선택하여 설치

윈도우에 설치할 경우,

Python IDLE를 사용하여 Pyhon을 시작 가능

College of EngineeringDept. of Industrial Engineering

리눅스 CLI 환경

리눅스

: 핀란드의 리누스 토발즈가 멀티유저, 멀티쓰레딩을 지원하는

유닉스를 본따 개발한 개인 PC용 운영체제

1인 유저를 고려하여 만든 윈도우 계열과 달리, 멀티유저를

고려하여 개발하였기 때문에 네트워크 기능 및 서버로서의

성능이 매우 뛰어남. 오늘날 스마트 폰 OS인 안드로이드의 모태

Command Line Interface (CLI)

: Graphic User Interface (GUI) 와 달리 Text를 사용하여

컴퓨터에 명령을 입력하는 인터페이스 체계

College of EngineeringDept. of Industrial Engineering

CLI in Windows

Windows에서도 CLI 환경의

명령 입력 가능시작 → cmd 입력 (하단명령어 입력 란)

College of EngineeringDept. of Industrial Engineering

CLI in Windows 주요명령어

명령어 수행내용

dir 해당 폴더의 파일리스트 보여주기

mkdir python "python" 이라는 이름으로 새폴더 만들기

copy abc.txt python\ "abc.txt" 파일을 "python" 폴더로 복사

cd python "python" 폴더로 이동

move abc.txt ..\ "abc.txt" 파일을 부모폴더로 이동 (복사후 삭제)

cd.. 부모 폴더로 이동

del abc.txt "abc.txt" 파일 삭제

rmdir python "python" 폴더 삭제

참고: http://goo.gl/nFDNXw

GUI환경의 명령들도 CLI를 통해 호출 가능

예) 작업관리자 호출 : taskmgr

College of EngineeringDept. of Industrial Engineering

CLI 명령들의 특징

PATH가 설정되어야 어디서나 작동 가능노트패드 실행: notepad익스플로러 실행: "c:\Program Files\Internet Explorer\iexplore"

실행시 실행인자(argument) 값 사용 가능종료: shutdown /s, 재시작: shutdown /r

같은 명령어지만 인자값(옵션 또는 인수)에 따라 기능이 다름

여러 명령어를 동시에 또는 자동화하여 실행 가능예) autoexec.bat

리눅스 CLI 환경 사용하기

College of EngineeringDept. of Industrial Engineering

시작하기전에…

본 강의에서는 프로그래밍을 작성 환경을

8주까지 리눅스 CLI 환경을 한정함

모든 실습/숙제는 리눅스 서버를 통해서 이루어짐

각 리눅스 접속 계정 및 비밀번호는 Email을 통해

기공지 하였으며, 본인만 사용하여야 함

College of EngineeringDept. of Industrial Engineering

Why Programming in LINUX

자유도

다양한 라이브러리를 사용시 설치/설정이 용이함

속도

익숙해질 경우 매우 빠른 실행 속도를 제공

간지

리눅스를 쓰고 있으면 왠지 해커처럼 멋져 보임

College of EngineeringDept. of Industrial Engineering

리눅스 서버 접속하기

본 강의에서는 보안텔넷(SSH) 방식을 이용하여,

교내에 설치된 리눅스 서버에 접속함

SSH 접속을 위하여 putty을 사용

다운로드: http://goo.gl/mIeQuK

12

3

4

5

6

① 서버주소

② Port: 22

③ 접속방식: SSH

④ 세센명: 본인 지정

접속 순서

⑤ & ⑥: 저장 및 열기

1

2

접속시

한글표시 설정

① 창 → 변환

② UTF-8 선택

④ 세센명: 본인 지정

⑤ & ⑥: 저장 및 열기

앞장 부분 다시

계정과 비밀번호 입력후 나오는 화면

College of EngineeringDept. of Industrial Engineering

[참고] 리눅스 기본 명령어

출처 및 참고: http://goo.gl/zEayTF

Linux 명령어 설 명 윈도우 명령

↑/ ↓ 이전에(↑) / 다음에(↓) 입력했던 명령어 doskey

cd x (또는 cd /x) 디렉토리 X로 가기 cd

cd .. (또는 cd ../ 또는 cd /..) 한 디렉토리 위로 가기 cd..

x 다음 [tab] [tab] x 로 시작하는 모든 명령어 보기 -

ls (또는 dir) 디렉토리 내부 보여주기 dir

cat 터미널 상의 텍스트 파일 보기 type

mv x y 파일 x를 파일 y로 바꾸거나 옮기기 move

cp x y 파일 x를 파일 y로 복사하기 copy

rm x 파일 지우기 del

mkdir x 디렉토리 만들기 md

rmdir x 디렉토리 지우기 rd

rm -r x 디렉토리 x를 지우고 하위도 다 지우기 deltree

echo 어떤 것을 echo 화면에 인쇄한다. echo

touch newfile newfile : 빈 파일만 생성됨 copy con

ls > abc.txt lsb의 결과를 abc.txt에 입력

College of EngineeringDept. of Industrial Engineering

[실습] 리눅스 파일 생성하기

출처 및 참고: http://goo.gl/zEayTF

“Hello, Linux” 라는 텍스트가 들어간

파일 abc.txt를 만들어보세요

College of EngineeringDept. of Industrial Engineering

[실습] 리눅스 파일 생성하기

출처 및 참고: http://goo.gl/zEayTF

1. touch abc.txt

2. ls 명령으로 생성확인

3. echo ‘Hello, Linux’ > abc.txt

4. cat abc.txt

Python 시작하기

College of EngineeringDept. of Industrial Engineering

파이썬시작하기

“python” 을 입력하면 파이썬 Shell 시작

exit() 또는 ctrl + D를 입력하면 프로그램 종료

실습 서버에는 python2.6과 python3.4.0이

모두 설치되어 있음

“python” 입력시 2.6버젼 실행

“python3.4” 입력시 3.4버젼 실행

“python” or “python3.4” 입력, 파이썬 실행

College of EngineeringDept. of Industrial Engineering

[실습] 파이썬 프로그래밍 해보기

출처 및 참고: http://goo.gl/zEayTF

>> print "Hello World!" #Hello World 라는 글자를 화면에 표시하기

Hello World!

>>> 293+4923 # 293 + 4923의 결과값 출력

5216

>>> 102/3 # 102 / 3의 결과값을 출력

34.0

College of EngineeringDept. of Industrial Engineering

[실습] 파이썬 프로그래밍 해보기

>>> 23+3 # 첫 번째 열부터 입력할 경우

26

>>> 23+2 # 두 번째 열부터 입력할 경우

File "<stdin>", line 1 # 에러발생!!

23+2

^

IndentationError: unexpected indent

파이썬은 첫 번째 열 부터 명령어를 입력해야 함

들여쓰기(Indentation)를 프로그램 문법으로 체크

College of EngineeringDept. of Industrial Engineering

[실습] 산술 연산하기 (1/2)

Source: 파이썬 3 바이블, 이강성

>>> 4+5 # 덧셈

9

>>> 12-32 # 뺄셈

-20

>>> (4 + 5) * 6 # 덧셈/곱셉 연산

54

>>> 3 /2 # 나눗셈

1.5 # 3.4에서는 소수점표시, 2.6에서는 몫만 표시

>>> 3 // 2 # 몫을 구하는 연산: //

1

>>> 9 % 5 # 나머지를 구하는 연산: %

4

College of EngineeringDept. of Industrial Engineering

[실습] 산술 연산하기 (2/2)

>>> divmod(9,5) # 몫과 나머지를 둘다 구함

(1, 4)

>>> 2**10 # 지수 연산:** 2의 10승

1024

>>> a= 1+1j # 복소수 연산 a에 1+i 를 할당

>>> b= 1-1j # 복소수 연산 b에 1-i 를 할당

>>> a*b # (1+i) * (1-i) = 2 ※ (x+y)(x-y) = x2 – y2

(2+0j)

Source: 파이썬 3 바이블, 이강성

College of EngineeringDept. of Industrial Engineering

[실습] 문자열 연산하기>>> a = 'This is a class‘ # 작은 따옴표로 문자열 나열

>>> b = "for PYTHON at Gachon“ # 큰 따옴표로 문자열 나열

>>> a+ " " + b # 두 문자열 합치기

'This is a class for PYTHON at Gachon'

>>> a.upper() # 대문자로

'THIS IS A CLASS'

>>> a.lower() # 소문자로

'this is a class'

Source: 파이썬 3 바이블, 이강성

리눅스 프로그래밍 환경의 꽃VIM 에디터 사용하기

College of EngineeringDept. of Industrial Engineering

Vim 에디터란?

유닉스 환경에서 출발한 vi Editor(visual editor)를

모태로한 텍스트 편집기 (VI Improved)

처음엔 다루기가 어려우나 익숙해질 경우,

다양한 사용자 Interface를 제공하여

사용자의 편의를 지원함

스타 또는 LOL에서 단축키를 쓰면 실력이

느는 것과 같은 이치참고사이트: http://jangpd007.tistory.com/6

VIM의 실행

커서

비어있는 라인

현재 수정중인 파일명

현재 행

현재 열

College of EngineeringDept. of Industrial Engineering

Vim 에디터의 세가지 Mode모드 설명 실행방법

CommandMode

입력은되지 않은상태에서 특정 명령을실행할수 있도록대기하는 상태입력, 삭제, 이동 등의명령을 시행

-어떤 모드에서든 "ESC" 입력

InsertMode

실제문서 편집을위한 모드로 텍스트입력모드, 커서키로 네비게이션 (왔다갔다)를하고, 문자키로텍스트를 입력

-어떤 모드에서든 "ESC" 입력후i, I, a, A, o, O, R 진입

Last lineMode

text를 찾거나파일을 저장하는등의 다양한명령등을 내리는모드, 오피스계열제품에서 Alt 키를 누르면나오면 다양한명령을실행한다고 생각하면 된다

-다른 모드사용중 "ESC" 입력후 ":" 입력

College of EngineeringDept. of Industrial Engineering

명령어 – 이동명령

명령어 실행내용

0 현재 줄 맨 처음으로 가기

$ 현재 줄 맨 끝으로 가기

gg 현재 문서 처음으로 이동

G 현재 문서 마지막으로 이동

W 현재 커서의 다음 단어로 이동

숫자 + 방향키 해당 숫자만큼 지정한 방향으로 커서를 이동

숫자 + G 해당 숫자에 해당하는 줄로 이동

Command 모드에서 아래키 입력

College of EngineeringDept. of Industrial Engineering

명령어 – Insert(입력) 모드 실행

명령어 실행내용

i 현재커서에서 입력

a 현재커서 다음칸부터 입력

A 현재커서의 맨 마지막 줄에 입력

o 현재커서 밑줄에서 입력

O 현재커서 윗줄에서 입력

Command 모드에서 아래키 입력

College of EngineeringDept. of Industrial Engineering

명령어 – 편집명령

명령어 실행내용

dd 현재 행 삭제

d<숫자>d 현재 행 부터 숫자로 지정된 줄 만큼 삭제

X 현재 글자 삭제

yy / yw 현재 행 복사 / 현재 단어 복사

y, 숫자, 방향키 현재 행+ 방향키 방향으로 숫자 만큼 행 복사

p / P 커서 뒤에 삽입 / 커서 앞에 삽입

u Undo

Command 모드에서 아래키 입력

College of EngineeringDept. of Industrial Engineering

명령어 – 찾기 / 바꾸기 명령

명령어 실행내용

/찾을문자 해당 문자를 검색 ex) / yesterday

/ or n or N 다음 문자 찾기 (N은 역방향)

:s/old/new old라는 문자를 new로 바꾸기

:s/old/new/g 현재줄에서 old라는 문자를 new로 바꾸기

:%s/old/new/g 현재문서에서 old라는 문자를 new로 바꾸기

Command 모드에서 아래키 입력

College of EngineeringDept. of Industrial Engineering

명령어 – 파일 명령

명령어 실행내용

:w 현재 파일 저장

:wq 저장후 종료

:q 종료 (저장상태에서만 가능)

:q! 저장없이 종료

! <명령어> 리눅스 명령어 실행 ex) ! python

Last Line 모드에서 아래키 입력

College of EngineeringDept. of Industrial Engineering

명령어 – 설정기능

명령어 실행내용

:set ts=4 Tab 키를 눌렀을때 이동하는 거리가 4로 지정

:set nu 행 번호가 뜨도록 지정

:set ignorecase:set noignorecase

대소문자 구분 실행 / 취소

Last Line 모드에서 아래키 입력

※ 이외에도 VIM에디터는 다양한 기능이 있으며, 필요시 구글링을 통해 직접 찾아보길 권함

College of EngineeringDept. of Industrial Engineering

[실습] VIM 에디터 실습

출처 및 참고: http://goo.gl/zEayTF

VIM 에디터를 실행하여 다음을 대답하시오

1. “yesterday.txt” 파일 열기

2. 32번째 줄의 첫자는?

3. yesterday 대문자/소문자 개수는?

4. 행번호가 뜨는 명령어는?

5. Yesterday를 모두 Today로 바꾸기

College of EngineeringDept. of Industrial Engineering

[실습] VIM 에디터 실습

출처 및 참고: http://goo.gl/zEayTF

1. vi yesterday.txt

2. :32

3. :set noignorecase , /yesterday

4. :set nu

5. %s/yesterday/today/g

My First Python Program

College of EngineeringDept. of Industrial Engineering

[실습] 파이썬 프로그램 만들기

Source: 파이썬 3 바이블, 이강성

print "I Love pizza!"

print "pizza" * 5

print "yum" * 3

print "I'm full."

아래의 프로그램을 “myfirstpython.py” 파일로

작성후 실행하세요.

[~@server ~]$ python myfirstpython.py

I Love pizza!

pizzapizzapizzapizzapizza

yumyumyum

I'm full.