<시간순삭 파이썬> 책 미리보기 두 번째 시간입니다^^ 지난 시간에는 프로그래밍 언어의 개념과 print 명령어를 사용한 프로그램 작성/실행에 대해 알아봤어요. 이번 시간에는 터틀 그래픽 모듈을 이용하여 거북이와 함께 그림을 그려보기로 해요.
컴퓨터는 "숫자 계산"이나 "문자열 처리" 말고 또 무엇을 할 수 있을까요? 파이썬은 초보자도 화면에 그림을 쉽게 그릴 수 있도록 터틀 그래픽(turtle graphic) 모듈이 지원됩니다. 화면에 펜을 가지고 있는 거북이가 있고, 우리는 거북이를 움직이게 하여 그림을 그릴 수 있습니다.
터틀 그래픽은 다음과 같이 동작합니다.
① 프로그램이 시작하면 화면의 한 가운데 거북이가 나타납니다.
② 명령을 내리면 거북이가 움직입니다. "앞으로 전진", "좌회전" 등
③ 거북이가 움직이면서 그림을 그립니다.
★ import turtle : 터틀 그래픽 모듈을 불러옵니다.
★ t=turtle.Turtle() : 터틀 그래픽에서 거북이(터틀)을 태어나게 해서 이름을 ' t '라고 붙여줍니다. 이때 터틀창이 뜹니다.
★ t.shape("turtle") : 터틀 그래픽 창의 '화살표' 모양이 거북이 모양으로 바뀝니다. 이 코드를 생략하면 '화살표'가 기본으로 나타납니다.
★ t.forward(100) : 거북이가 앞으로 100픽셀(pixel)을 움직이면서 직선을 그리게 됩니다. ※ 픽셀은 컴퓨터 이미지를 이루는 가장 작은 단위의 점을 뜻합니다.
★ t.left(90) : 거북이가 왼쪽으로 90˚ 회전하게 됩니다. 반대로 t.right(90)을 하면 오른쪽으로 90˚회전하게 됩니다.
※ IDLE 메뉴 중에서 [Help] → [Turtle Demo]를 선택하면 터틀 그래픽 데모 윈도우가 등장합니다. 윈도우의 메뉴 중에서 [Examples] → [clock]을 선택하고 화면 아래쪽의 [START] 버튼을 눌러보면, 여러 가지 흥미로운 예제들을 구경할 수 있습니다.
앞에서 터틀 그래픽을 이용하여 선을 그리는 것을 살펴보았습니다. 자~ 이제는 도형을 그려보겠습니다. 가장 먼저 길이가 100픽셀인 정사각형을 그려보겠습니다. 정사각형을 그리려면 어떻게 해야 할까요? 사각형은 다음과 같은 과정으로 그려집니다.
우리가 삼각형을 그릴 때는 외각 120˚만큼 회전해야 내각이 60˚인 정삼각형이 만들어집니다.
우리는 점점 더 많은 기능을 가진 프로그램을 작성할 것입니다. 그래서 우리의 프로그램 코드는 더욱 복잡해지고 길어지게 됩니다. 따라서 우리는 좀더 복잡하고 길게 작성한 코드를 저장할 필요가 있습니다. 파이썬은 스크립트 모드(script mode)에서 파이썬 프로그램 파일을 만들어 코드를 저장하고, 실행할 때는 파일을 읽어서 처음부터 코드가 실행되도록 합니다. 파이썬 코드를 스크립트 모드에서 작성하여 저장해봅시다.
(1) IDLE의 [File] → [New File] 메뉴를 선택합니다. 텍스트 에디터가 등장합니다. 여기에 아래와 같은 파이썬 코드를 입력합니다.
(2) 텍스트 에디터의 [File] → [Save] 메뉴를 선택하여 코드를 파일로 저장합니다. 저장할 위치의 폴더를 선택하여 파일 이름을 입력하면 자동적으로 .py 확장자가 붙어 파일로 저장됩니다.
(3) [Run] → [Run Module] 메뉴를 선택하여 코드를 실행합니다. F5 키를 눌러도 됩니다. 이때 실행 결과는 파이썬 쉘에 표시됩니다.
코드가 저장된 파일을 소스 파일(source file)이라고 합니다. 우리는 언제든지 우리가 저장한 파일을 열어서 다시 실행할 수 있어야 합니다. 앞에서 저장했던 파일을 다시 열어 실행해 보겠습니다. 우리가 인터넷에서 좋은 파이썬 소스를 발견하였다면 이런 방식으로 실행시켜보고 소스코드를 변경할 수도 있습니다.
(1) IDLE의 [File] → [Open] 메뉴를 선택합니다. 저장한 폴더에 가서 원하는 파일을 선택하여 열면 입력했던 소스를 다시 볼 수 있습니다.
(2) 이 소스 파일을 다시 실행하려면 [Run] → [Run Module] 메뉴를 선택하거나 F5 키를 누릅니다.
주석(comment)은 프로그램을 설명하는 글입니다. 주로 개발자들이 자신이 개발한 소스에 붙입니다. 주석은 프로그램의 실행 결과에는 전혀 영향을 끼치지 않습니다. 즉, 주석을 적용하면 해당 부분은 컴퓨터가 읽지 않습니다. 신경 쓸 필요가 없으니 안심하고 주석을 달도록 하십시오. 파이썬에서는 ' # '로 시작하는 부분부터 줄의 끝까지 주석으로 취급합니다.
(1) 주석은 코드의 해석을 쉽게 하도록 도와주는 설명글입니다.
주석은 프로그램을 읽는 사람을 위한 것입니다. 프로그램은 완성된 후에도 지속적으로 유지 보수를 위한 업데이트가 필요합니다. 따라서 여러분 또는 다른 개발자가 프로그램의 업데이트를 위하여 소스코드를 읽을 수 있습니다. 코드가 복잡하거나 작성되고 난 후 상당한 시간이 흘렀다면, 아무리 자신이 개발했다고 하여도 코드를 분석하는데 많은 시간이 걸릴 수 있습니다. 따라서 개발자는 자신의 프로그램이 무엇을 하려고 하는지 주석으로 만들어서 코드에 붙일 필요가 있습니다.
(2) 소스코드의 특정 부분을 잠시 사용하지 않게 만들고 싶은 경우에 사용합니다.
예를 들어 기존의 코드보다 좀 더 좋은 코드를 작성하고 싶은 경우 기존 코드를 모두 지우는 것이 아니라 잠시 주석 처리하고 새로운 코드를 만드는 것이 좋습니다. 주석 처리한 예전 코드를 참고할 수도 있고 최악의 경우에는 주석만 해제하면 기존의 코드로 쉽게 돌아갈 수 있기 때문입니다. 또한 에러가 의심되는 부분을 주석으로 처리하여 실행되지 않도록 하면 에러가 나는 부분을 찾는 데 도움이 됩니다.
이번 시간에는 터틀 그래픽 모듈의 기초 사용법과 스크립트 모드, 그리고 주석에 대해 알아봤어요. 다음 시간에는 실행 오류와 실습 문제를 알려드릴게요. 아래와 같이 재미있게 문제도 풀고 1장을 정리할 수 있는 시간이랍니다^^
| 책의 목차
제1장 파이썬을 소개합니다
01. 프로그래밍이 무엇이죠? •20
02. 프로그래밍을 배우면 무엇을 할 수 있을까요? •21
03. 두근두근 파이썬 •22
04. 파이썬 설치하기 •24
05. 파이썬 IDLE 실행하기 •26
06. 파이썬 첫걸음 – 계산하기 •28
07. 파이썬 첫걸음 – 문자 출력하기 •30
08. 파이썬 첫걸음 – 그리기 1 •32
09. 파이썬 첫걸음 – 그리기 2 •35
10. 스크립트 모드 •37
11. 읽으면 도움이 돼요. - 주석 •40
12. 문제가 생겼어요 – 오류 •42
13. 파이썬으로 무엇을 할 수 있을까? •44
LAB 01 print() 실습 •45
LAB 02 원과 다각형 그리기 •47
LAB 03 터틀 그래픽 더 살펴보기 •49
연습문제 •51
저장하기 •52
제2장 변수를 소개합니다
01. 변수가 무엇이죠? •54
02. 변수는 수를 저장합니다 •55
03. '='는 특별해요 •57
04. 변수는 문자열을 저장합니다 •59
05. 변수의 이름 짓기 •61
06. 한 번에 여러 값을 출력하기 •62
07. 문자열 입력받기 •63
08. 수 입력받기 •64
LAB 01 변수는 어디에 유용할까? •65
LAB 02 내가 원하는 원 그리기 •66
LAB 03 천둥번개가 발생한 곳은 얼마나 떨어져 있나? •68
연습문제 •69
저장하기 •70
제3장 계산해 볼까요?
01. 어디에나 있는 수식 •72
02. 산술 연산자 •74
03. 대입 연산자 '=' •77
04. 복합 대입 연산자 •79
05. 연산자의 우선순위 •81
LAB 01 다항식의 계산 •83
LAB 02 화씨온도를 섭씨온도로 변환하기 •85
LAB 03 두 점 사이의 거리 구하기 •87
LAB 04 두 점 사이의 거리 확인하기 •89
LAB 05 그리니치 표준시-세계 시간의 기준점 •91
LAB 06 계산대 프로그램 •94
연습문제 •96
저장하기 •98
제4장 자료의 종류에는 어떤 것들이 있나요?
01. 파이썬에서 사용할 수 있는 자료의 종류 •100
02. 정수형과 실수형 •102
03. 문자열이란? •104
04. 문자열을 만드는 방법 •105
05.100과 "100"을 구별해요 •106
06. 문자열을 숫자로 변환 •108
07. 숫자을 문자열로 변환 •110
08. 파이썬은 문자열 처리의 마법사 •112
09. 필요한 문자열은 뽑아서 쓰자 •115
LAB 01 소금물의 농도는? •117
LAB 02 간단한 챗봇(ChatBot) 프로그램 •119
LAB 03 거북이와 인사해봐요 •121
LAB 04 암호프로그램 만들기 •123
LAB 05 2050년에 나는 몇 살? •125
연습문제 •127
저장하기 •129
제5장 조건을 따져보세요
01. 왜 조건을 따져봐야 하나요? •132
02. 참과 거짓 그리고 관계 연산자 •134
03. 조건문(만약에~) •136
04. if와 if-else •138
05. if를 좀 더 이해시켜 줄 예제 •141
06. if-else를 좀 더 이해시켜 줄 예제 •142
07. 복잡한 조건의 표현-논리 연산자 •143
08. if-elif-else •145
09. if의 중첩 •146
LAB 01 직각삼각형 판별하기 •147
LAB 02 정수의 종류를 판별하는 스마트 터틀 •149
LAB 03 주민등록번호 뒷자리 의미, 이런 뜻이?! •151
LAB 04 동전 던지기 게임 •153
LAB 05 찌릿찌릿 전기회로 •155
LAB 06 윤년 판단 •157
LAB 07 이차방정식의 판별식 •159
LAB 08 사용자가 원하는 도형 그리기 •161
LAB 09 두 원의 위치 관계 시뮬레이션 •163
연습문제 •166
저장하기 •168
제6장 반복해 봅시다
01. 왜 반복이 중요할까요? •172
02. 횟수 제어 반복 - for •173
03. range( ) 함수 •175
04. 횟수 제어 반복을 좀 더 이해시켜 줄 예제 •177
05. 조건 제어 반복 - while •179
06. 조건 제어 반복을 좀 더 이해시켜 줄 예제 •181
07. 중첩 반복문 •183
08. 무한 반복 •185
09. break와 continue •186
LAB 01 코드를 줄여보아요 •188
LAB 02 도돌이표 •190
LAB 03 n각형 그리기 •191
LAB 04 랜덤 워크 시뮬레이션 •193
LAB 05 범인 찾기 게임 •195
LAB 06 몬드리안 터틀 •197
LAB 07 모든 약수 구하기 •199
LAB 08 최대공약수 구하기 •200
LAB 09 별 그리는 터틀 •202
LAB 10 숫자 맞추기 게임 •203
연습문제 •205
저장하기 •209
제7장 리스트
01. 리스트란?
02. 리스트 생성과 추가
03. 리스트 항목에 접근하기
04. 리스트 항목의 변경과 추가
05. 리스트 항목 삭제하기
06. 리스트에서 항목 탐색하기
07. 리스트 정렬하기
08. 2차원 리스트의 기초
09. 리스트와 반복문의 궁합
LAB 01 주기율표를 외워보자
LAB 02 오늘의 명언
LAB 03 스파이럴(spiral) 그리기
LAB 04 오륜기 그리기
LAB 05 습도 구하기
연습문제
저장하기
제8장 코드를 함수로 모아봅시다
01. 함수가 무엇인가요? •244
02. 함수를 작성하고 호출하기 •245
03. 왜 우리는 함수를 작성하는가? •247
04. 함수에 1개의 인수 전달하기 •249
05. 함수에 여러 개의 인수 전달하기 •250
06. 함수의 값 반환하기 •252
07. 함수를 좀 더 이해시켜 줄 예제 •255
08. 지역변수와 전역변수 •256
09. 디폴트 인수 •259
10. 키워드 인수 •260
LAB 01 BMI 계산기 •262
LAB 02 환전 계산기 •264
LAB 03 n각형을 그리는 함수 작성하기 •267
LAB 04 클릭하는 곳에 사각형 그리기 •268
LAB 05 한붓 그리기 •270
LAB 06 이차함수 그래프 그리기 •272
LAB 07 테세우스 터틀 미로 탈출 게임 •274
LAB 08 재귀호출 •276
LAB 09 프랙털 나무 그리기 •278
연습문제 •280
저장하기 •283
제9장 딕셔너리와 집합
01. 딕셔너리란? •286
02. 딕셔너리 생성과 추가 •288
03. 딕셔너리 탐색하기 •290
04. 딕셔너리 수정과 삭제 •292
05. 딕셔너리를 좀 더 이해시켜 줄 예제 •293
06. 딕셔너리와 반복문의 궁합 •295
07. 집 합 •296
LAB 01 가위, 바위, 보 게임 •298
LAB 02 행성까지의 여행 시간은? •300
LAB 03 멘델의 유전 법칙 시뮬레이션 •302
LAB 04 튜링상 수상자 데이터 분석 •305
LAB 05 파이썬으로 e-mail 보내기 •308
연습문제 •310
저장하기 •312
제10장 파일을 사용해 봅시다
01. 파일은 왜 필요할까? •314
02. 파일 열기와 닫기 •316
03. 파일에서 전체 데이터 읽기 •318
04. 파일에서 한 줄씩 읽어오기 •320
05. 파일에 데이터 쓰기 •322
06. 파일에서 단어 단위로 읽어오기 •323
07. csv 파일을 사용해 보기 •325
LAB 01 파일 복사하기 •326
LAB 02 연설문 데이터 분석 •329
LAB 03 평균 강수량 통계 •333
LAB 04 행 맨 •336
연습문제 •340
저장하기 •342
제11장 모듈과 라이브러리를 사용해 봅시다
01. 모 듈 •344
02. tkinter란? •346
03. tkinter의 위젯들 •348
04. [tkinter] 윈도우와 버튼을 만들어 봅시다 •350
05. [tkinter] 윈도우 배치 관리자 •352
06. [tkinter] 버튼 이벤트 처리 1 #1 •355
07. [tkinter] 버튼 이벤트 처리 2 #2 •357
08. [tkinter] 위젯의 색상과 폰트 변경하기 •359
09. [tkinter] 윈도우 창 메뉴 만들기 •361
10. [tkinter] MyPaint 프로그램 •362
11. 라이브러리 •364
12. 필로우(Pillow) 설치 •366
13. [Pillow] 윈도우에 이미지 표시하기 •368
14. [Pillow] 이미지 처리 •370
15. [Pillow] 이미지 처리 기능을 윈도우의 메뉴와 연결 •372
16. 맷플롯립(Matplotlib) 설치 •375
17. [Matplotlib] 그래프 그리기 기초 •377
18. [Matplotlib] 강수량 그래프 만들기 •380
저장하기 •382
제12장 모듈과 라이브러리를 사용해 봅시다
01. 신비로운 수, 소수 판별하라! #1 •384
02. 신비로운 수, 소수 판별하라! #2 •386
03. 신비로운 수, 소수 판별하라! - 에라토스테네스의 체 •388
04. 이차방정식의 해 •390
05. 이차함수의 그래프 •392
06. 대푯값을 구해봅시다 •394
07. 히스토그램을 그려봅시다 •397
08. 토끼와 거북이의 경주 #1 •399
09. 토끼와 거북이의 경주 #2 •401
10. 토끼와 거북이의 경주 - 전체 코드 •404
11. 앵그리 터틀 게임 #1 •406
12. 앵그리 터틀 게임 #2 •409
13. 터틀 아스테로이드 게임 #1 •410
14. 터틀 아스테로이드 게임 #2 •413
15. 틱택토 게임 #1 •415
16. 틱택토 게임 #2 •418
17. 틱택토 게임 #3 •420
18. 우리나라 인구 분석 #1 •422
19. 우리나라 인구 분석 #2 •424
'파이썬 왕초보' 카테고리의 다른 글
파이썬 독학하는 분들을 위한 추천 도서 '시간순삭 파이썬' (0) | 2020.08.28 |
---|---|
[3] 시간 가는 줄 모르고 보게 되는 추천도서 <시간순삭 파이썬> (0) | 2020.08.06 |
[1] '시간순삭 파이썬' 책 미리보기 : 2020년 8월, 코딩 공부 시작하기 좋은 어느 날 (0) | 2020.08.06 |
[5] 왕초보의 파이썬 독학 4일차 : 조건문 if문 (if, elif, else) (0) | 2020.06.17 |
[4] 왕초보의 파이썬 독학 3일차 : 문자열 리스트 만들기, 리스트 합치기 (0) | 2020.06.10 |