친절한 J의 돈버는 정보

프로그래밍 독학 파이썬 Day 3. 똑같은 작업 반복 (for 명령사용) 본문

Programing/python 입문

프로그래밍 독학 파이썬 Day 3. 똑같은 작업 반복 (for 명령사용)

제이그라피 2017. 11. 13. 17:04

프로그래밍 독학 파이썬 Day 3. 

* 똑같은 작업 반복 (for 명령사용) 

* 변화주며 반복 (range 명령사용)

* 거북이 그래픽으로 그림 그리기




* 똑같은 작업 반복 (for 명령사용)


파이썬에서 for 명령어 = '~동안 반복하여 실행하라' 




1. Hello! 반복 출력해보기


예제 소스


for x in range(10) : 은 이 명령 아래의 들여쓰기 된 부분을 열 번 반복하라는 의미

문장 끝의 콜론(:)은 반복할 영역의 시작을 알리는 기호

다음으로 반복할 문장이 어디까지인지 파이썬에게 알려줘야 하는데 이럴 때 쓰는 것이 들여쓰기!



실행 결과





2. 반복 블록

: 어디서부터 어디까지 반복할지 지정하는 것


예제 소스



실행 결과


파이썬에서는 들여쓰기하여 입력한 문장의 묶음을 블록이라고 함

들여쓰기한 마지막 print(300)은 블록에 속하지 않음





3. 반복 기능으로 도형 그리기


예제 소스



실행 결과








* 변화주며 반복 (range 명령사용)



파이썬에서 range =  반복할 범위를 지정하는 명령어



1. for 명령어로 숫자를 반복하여 출력 


예제 소스


range(5)는 0, 1, 2, 3, 4로 값을 5개 가짐

range(a, b)는 a에서 시작해서 b 바로 앞의 값까지 1씩 늘리면서 반복하는 것을 의미



실행 결과



 


2. 1부터 10까지 숫자의 합계 구하기


예제 소스


실행 결과


이 예제는 1부터 10까지 숫자를 더한 값을 보여주는 프로그램

숫자를 계속 더하려면 더한 결과를 지정할 변수가 필요한데, 여기서는 s라는 변수를 사용함.

숫자를 더하기 전 S = 0으로 지정

s = s+x는 지금까지 더한 합(s)에 x 값(반복할 때마다 1씩 증가)을 더해 그 값을 다시 s에 저장하라는 문장.

마지막 print("x:", x, " sum:", s)도  들여쓰기 되었으므로 반복 블록에 포함되므로 반복할 때마다 현재의 X값과 s값을 계속 출력함.


-> 이건 답이 왜 저렇게 되는지는 알겠는데 과정이 확실히 이해가 안된다.;;;;;

아오... 나 학창 시절애도 수포자... 수학 너무 싫어하고 심지어 막 반타작도 해봤는데 지금 이러고 있다. ㅡ.,ㅡ





< 파이썬에서 변수 이름 정하기 >


- 영문 대/소문자, 숫자, 밑줄(_)로만 만들 수 있음

- 변수이름에는 공백을 사용할 수 없음

- 숫자로 시작할 수 없음 ex) 3name..

- 파이썬이 문법으로 사용하는 단어는 사용할 수 없음 ex) False, None, True, and, as, import, not, or, pass, del, except, for, in, is, try, with 등등

: 너무 길지 않고 변수에 저장된 정보가 무엇인지 예상할 수 있는 이름이라면 더욱 좋음









* 거북이 그래픽으로 그림 그리기


거북이 그래픽 명령어


 함수

설명 

 사용 예

 forward / fd(거리)

 거북이가 앞으로 이동합니다.

 t.fd(100)   # 거북이가 100만큼 앞으로 이동합니다.

 backward / back(거리)

 거북이가 뒤로 이동합니다. 

 t.back(50)   # 거북이가 50만큼 뒤로 이동합니다.

 left / lt(각도)

 거북이가 왼쪽으로 회전합니다.

 t.lt(45)   # 거북이가 45도 왼쪽으로 회전합니다.

 right / rt(각도)

 거북이가 오른쪽으로 회전합니다.

 t. rt(45)   # 거북이가 45도 오른쪽으로 회전합니다. 

 circle(반지름)

 현재 위치에서 원을 그립니다.  

 t.circle(50)   # 반지름이 50인 원을 그립니다. 

 down( ) / pendown( )

 펜(잉크 묻힌 꼬리)을 내립니다. 

 t.down   # 이제 움직이면 그림이 그려집니다. 

 up( ) / penup( )

 펜(잉크 묻힌 꼬리)을 올립니다.

 t.up   # 거북이가 움직여도 선이 그려지지 않습니다. 

 shape("모양")

 거북이 모양을 바꿉니다.

 t.shape("turtle")   # 진짜 거북이 모양으로 지정합니다.

 t.shape("arrow")   # 화살표 모양의 거북이로 지정합니다.

 :  거북이 모양으로 "circle", "square", "triangle"을 사용할 수 있습니다.

 speed(속도)

 거북이 속도를 바꿉니다.

 t.speed(1)   # 가장 느린 속도

 t.speed(10)   # 빠른 속도

 t.speed(0)   # 최고 속도

 pensize(굵기) / width

 펜 굵기를 바꿉니다.

 t.pensize(3)   # 굵은 선으로 선을 그립니다.

 color("색이름")

 펜 색을 바꿉니다.

 t.color("red")   # 빨간색으로 선을 그립니다.

 bgcolor("색이름")

 화면의 배경색을 바꿉니다.

 t.bgcolor("black")   # 배경색을 흰색에서 검정색으로 바꿉니다. 

 fillcolor("색이름")

 도형내부를 칠하는 색을 바꿉니다.

 t.fillcolor("green")   # 녹색으로 도형내부를 칠합니다.

: 색상을 따로 지정하지 않으면 현재 색으로 칠합니다.

 begin_fill( )

 도형내부를 색칠할 준비를 합니다.

 t.begin_fill( )   # 거북이 움직임을 색칠할 준비를 합니다.

 end_fill( )

 도형내부를 색칠합니다.

 t.end_fill( )   # begin_fill( ) 이후부터 지금까지 그린 그림에 맞춰 내부를 색칠합니다.

 showturtle( ) / st( )

 거북이를 화면에 표시합니다.

 t.st( )   # 거북이를 화면에 표시합니다.(기본상태)

 hideturtle( ) / ht( )

 거북이를 화면에서 가립니다.

 t.ht   # 거북이를 숨깁니다.

 clear( ) 

 거북이를 그대로 둔 채 화면을 지웁니다.

 t.clear( )

 reset( )

 화면을 지우고 거북이도 원래 자리와 상태로 되돌립니다.

 t.reset( )




1. 정오각형 그리기


예제 소스



실행 결과




모든 다각형의 외각의 합은 360도.

정n각형에는 모두 n개의 외각이 있는데 이 값은 모두 같으므로 한 외각의 크기는 360/n이 된다.

t.lt(360/n)으로 360/n도씩 회전하면서 같은 거리를 전진하면 정다각형이 그려지는 원리.





2. 원 반복해서 그리기


예제 소스



실행 결과




동영상으로 찍어 본 모습






t.circle(80) -> t.circle(x*2) 변경하여 달팽이 등껍질 같은 모양을 얻었다.









3. 선 반복해서 그리기



여기서 for x in range(200): 은 x 값을 0에서 199까지 바꾸면서 200번 실행한다는 의미이다.

t.fd(x)   # x만큼 앞으로 이동합니다.(실행을 반복하면서 선이 길어짐)

t.lt(angle)   # 거북이가 왼쪽으로 89도 회전합니다.




아래는 처음에 angle = 90 으로 입력혔더니 그려진 도형







마지막으로 연습겸,, 그리고자 하는 그림을 종이에 먼저 그려보고 

끄적끄적 소스를 적어보고 거북이 그래픽을 이용해 그려보았다.






재밌네 ㅎㅎ






입력한 값으로 그림이 그려지는 모습을 영상으로 찍어보았다.








모두의 파이썬 책 1/3 가량 독학한 지금의 느낌은..


다행히도 아직까지는 책을 보며 소스를 입력해보고 출력되는 값을 보는 것이 무척이나 신기하고 재미있다.

그런데 이런 소스를 무작정 따라한다고 해서 앱을 만들 수 있는 것은 아닐텐데,, 

A-Z까지 세세한  모든 부분의 앱 제작 방식이 궁금하다.

첫술에 배부를 수 없겠지만 일단 앱제작 순차나 원리부터 차근차근 다시 알아봐야겠다.





  

Comments