전체 글 38

[Python] 날개 달기 : 예외 처리 (try-except/finally/else)

오류는 언제 발생하는가?오류를 처리하는 방법을 공부하기 전에 어떤 상황에서 오류가 발생하는지 한번 알아보자.오타를 입력했을 때 발생하는 "구문 오류" 같은 것이 아닌 실제 프로그램에서 자주 발생하는 오류를 중심으로 살펴보자. 먼저 존재하지 않는 파일을 사용하려고 시도했을 때 발생하는 오류이다.>>> f = open("나없는파일", 'r')Traceback (most recent call last): File "", line 1, in FileNotFoundError: [Errno 2] No such file or directory: '나없는파일'# 없는 파일을 열려고 시도하면 FileNotFoundError 오류가 발생한다.  0으로 다른 숫자를 나누는 경우>>> 4 / 0Traceback (most ..

[Python] 날개 달기 : 패키지 (Package)

패키지 (Packages)란?파이썬에서 패키지란 관련 있는 모듈의 집합을 말한다.패키지는 모듈을 계층적(디렉터리 구조)으로 고나리할 수 있게 해 준다.파이썬 모듈은 하나의 py 파일이다. 파이썬 패키지는 디렉터리와 파이썬 모듈로 이루어진다.다음은 필자가 임의로 그려 본 game이라는 파이썬 패키지의 구조이다. 가상의 game 패키지 예)game/ __init__.py sound/ __init__.py echo.py wav.py graphic/ __init__.py screen.py render.py play/ __init__.py run.py test.pygame, sou..

[Python] 날개 달기 : 모듈 (Module)

모듈이란?함수나 변수 또는 클래스를 모아 놓은 파이썬 파일이다.모듈은 다른 파이썬 프로그램에 불러와서 사용할 수 있도록 만든 파이썬 파일이라고도 할 수 있다.우리는 파이썬으로 프로그래밍을 할 때 매우 많은 모듈을 사용한다.다른 사람들이 이미 만들어 놓은 모듈을 사용할 수도 있고 우리가 직접 만들어 사용할 수도 있다.여기에서는 모듈을 어떻게 만들고 사용할 수 있는지 알아본다.모듈 만들기모듈에 대해 자세히 살펴보기 전에 간단한 모듈을 한번 만들어 보자.# mod1.pydef add(a, b): return a + bdef sub(a, b): return a-b위와 같이 add와 sub함수만 있는 파일 mod1.py만들고 C:\doit 디렉터리에 저장하자.이 mod1.py 파일이 바로 모듈이다.지..

[Python] 날개 달기 : 클래스 (Class)

클래스 (Class)초보 개발자들에게 클래스(class)는 넘기힘든 장벽과도 같은 존재이다.독자들 중에도 클래스라는 단어를 처음 접하는 이들이 있을 것이다.그러면 도대체 클래스가 무엇인지, 클래스가 왜 필요한지 매우 기초적인 것부터 차근차근 함께 알아보자. 클래스는 왜 필요한가?프로그래머들이 가장 많이 사용하는 프로그래밍 언어 중 하나인 C 언어네는 클래스가 없다.이 말은 굳이 클래스가 없어도 프로그램을 충분히 만들 수 있다는 뜻이다.파이썬으로 잘 만든 프로그램을 살펴봐도 클래스를 사용하지 않고 작성한 것이 매우 많다.즉, 클래스는 지금까지 공부한 함수나 자료형처럼 프로그램 작성을 위해 꼭 필요한 요소는 아니다. 하지만 프로그램을 작성할 때 클래스를 적재적소에 사용하면 프로그래머가 얻을 수 있는 이익은 ..

[Python] 입출력 : 사용자 입출력

사용자 입출력우리들이 사용하는 대부분의 완성된 프로그램은 사용자 입력에 따라 그에 맞는 출력을 내보낸다.대표적인 예로 게시판에 글을 작성한 후 [확인] 버튼을 눌러야만(입력) 우리가 작성한 글이 게시판에 올라가는(출력) 것사용자 입력 활용하기사용자가 입력한 값을 어떤 변수에 대입하고 싶을 때는 어떻게 해야 할까?input 사용하기input은 사용자가 키보드로 입력한 모든 것을 문자열로 저장한다.>>> a = input()Life is too short, you need python>>> a'Life is too short, you need python' 프롬프트를 띄워 사용자 입력받기사용자에게 입력받을 때 '숫자를 입력하세요'나 '이름을 입력하세요'라는 안내 문구 또는 질문을 보여주고 싶을 때가 있다.그..

[Python] 입출력 : 파일 읽고 쓰기

파일 생성하기다음 코드를 IDLE에 에디터로 작성하여 실행해 보자.# newfile.pyf = open("새파일.txt", 'w')f.close()# 프로그램을 실행한 디렉터리에 새로운 파일이 하나 생성된 것을 확인할 수 있다.# 파일을 생성하기 위해 '파이썬 내장 함수 open'을 사용했다. open 함수는 다음과 같이 '파일 이름'과 '파일 열기 모드'를 입력값으로 받고 결괏값으로 파일 객체를 리턴한다.파일 열기 모드설명r읽기 모드 : 파일을 읽기만 할 때 사용한다.w쓰기 모드 : 파일에 내용을 쓸 때 사용한다.a추가 모드 : 파일의 마지막에 새로운 내용을 추가할 때 사용한다.※ 파일을 쓰기 모드로 열면 해당 파일이 이미 존재할 경우 원래 있던 내용이 모두 사라지고,   해당 파일이 존재하지 않으면 ..

[Python] 입출력 : 함수

함수란 무엇인가?함수를 설명하기 전에 믹서를 생각해 보자.  - 우리는 믹서에 과일을 넣는다. 그리고 믹서를 사용해서 과일을 갈아 과일 주스를 만든다.우리가 믹서에 넣은 과일은 '입력', 과일 주스는 '출력(결괏값)"이 된다. 그렇다면 믹서는 무엇일까?믹서는 과일을 입력받아 주스를 출력하는 함수와 같다. 우리가 배우려는 함수가 바로 믹서와 비슷하다.입력값을 가지고 어떤 일을 수행한 후 그 결과물을 내어 놓는 것이 바로 함수가 하는 일이다.우리는 어려서부터 함수에 대해 공부했지만, 함수에 대해 깊이 생각해 본 적은 별로 없을 것이다.예를 들어 y = 2x + 3도 함수이다.하지만 이를 수학 시간에 배운 직선 그래프로만 알고 있을 뿐, 입력값(x)에 따라 출력값(y)이 변하는 함수라는 사실에 대해서는 관심을..

[Python] 제어문 : for문 (조건문)

for 문파이썬의 직관적인 특징을 가장 잘 보여준 것이 바로 for 문이다.while문과 비슷한 반복문인 for 문은 문장 구조가 한눈에 들어온다는 장점이 있다.for 문을 잘 사용하면 프로그래밍이 즐거워질 것이다.for 문의 기본 구조리스트나, 튜플, 문자여르이 첫 번째 요소부터 마지막 요소까지 차례로 변수에 대입되어 수행된다.for 변수 in 리스트(또는 튜플, 문자열): 수행할_문장1 수행할_문장2 ...예제를 통해 for 문 이해하기for 문은 예제를 통해서 살펴보는 것이 가장 알기 쉽다.1. 전형적인 for 문['one', 'two', 'three'] 리스트의 첫 번째 요소인 'one'이 먼저 i 변수에 대입된 후 print(i) 문장을 수행한다.두 번째, 세 번째 리스트의 마지..

[Python] 제어문 : while문 (조건문)

while 문의 기본 구조while 조건문: 수행할_문장1 수행할_문장2 수행할_문장3 ... while 문은 조건문이 참인 동안 while 문에 속한 문장들이 반복해서 수행된다.'열 번 찍어 안 넘어가는 나무 없다.'라는 속담을 파이썬 프로그램으로 만들면 다음과 같다.>>> treeHit = 0>>> while treeHit treeHit = treeHit + 1은 프로그래밍을 할 때 매우 자주 사용하는 기법이다.treeHit 값을 1만큼씩 증가시킬 목적으로 사용하며 treeHit += 1처럼 작성해도 된다.treeHit조건문조건 판단수행하는 문장while문00 참나무를 0번 찍었습니다.반복11  참나무를 1번 찍었습니다.반복22  참나무를 2번 찍었습니다.반복33  참나무를 3번..

[Python] 제어문 : if문 (조건문)

if 문은 왜 필요할까?'돈이 있으면 택시를 타고 가고, 돈이 없으면 걸어간다.'프로그래밍도 사람이 하는 것이므로 위 문장처럼 주어진 조건을 판단한 후 그 상황에 맞게 처리해야 할 경우가 생긴다.이렇듯 프로그래밍에서 조건을 판단하여 해당 조건에 맞는 상황을 수행하는 데 쓰는 것이 바로 if 문이다. # money에 true를 대입했으므로 money는 참이다.# 따라서 if 문 다음 문장이 수행된다.>>> money = True>>> if money:... print("택시를 타고 가라")... else:... print("걸어 가라")...택시를 타고 가라 위 코드가 실행된고 "택시를 타고 가라" 라는 문장이 출력되는 과정을 아래 순서도가 보여준다.이렇게 프로그램 실행 과정을 순서도로 그려..