오늘은 모두의 파이썬 12번째 시간!
저번에 배웠던 '함수'를 응용하는 시간을 가져보겠다.
1부터 n까지의 합을 구하는 함수
합을 간단히 구해주기 위해 'sum_func():' 함수를 불러온다.
그리고 합을 구해주기 위한 변수 ' s = 0 ' 선언.
for문을 이용하여 변수 x를 선언해주고 값은 1부터 n까지 이므로 (1, n+1)로 지정
들여쓰기에 있는 s는 's + x'로 지정한 후 for문이 끝나면
계산된 s를 초기에 지정한 변수 s에 결괏값으로 돌려준다.
그리고 10까지의 합과 100까지의 합을 구하고 화면에 출력시킨다.
x=1이면 s+x = 0+1이므로 s=1▶ s=1이라는 결괏값 돌려받고 다시 for문 진입 ▶ x=2 이면 s+x = 1+2 이므로 s=3
▶ s=3 이라는 결괏값 돌려받고 다시 for문 진입 ▶ x=3 이면 s+x = 3+3이므로 s=6
▶ ... ▶x=10이면 s+x = 45+10이므로 최종 값 '55'
.
.
.
같은 매커니즘으로 1부터 100까지의 합은 '5050'이 나온다.
1부터 n까지의 곱을 구하는 함수
이번엔 같은 매커니즘으로 곱을 구해보겠다.
곱샘은 'factorial' 함수를 불러와주자.
확률과 통계시간에 배운 그 팩토리얼 맞다!
곱을 구하기 위한 변수 'fact'를 선언하고 값은 '1'로 지정한다.
(0으로 지정하면 모든 값이 다 0으로 나오니까)
그리고 마찬가지로 for문을 열어 변수 'x'선언 후 1부터 n까지 반복.
for문 안에 fact를 선언해주고 값은 'fact * x'로 해준다.
그리고 결괏값을 최초의 fact로 돌린다.
print로 1부터 5, 1부터 10까지 곱한 값을 출력해보자.
x=1이면 fact = 1*1 = 1 ▶ 결괏값 1을 fact로 돌려줌 ▶ x=2이면 fact = 1*2 = 2
▶결괏값 2를 fact로 돌려줌 ▶ x=3이면 fact = 2*3 = 6 ▶ 결괏값 6을 fact로 돌려줌
▶ x=4이면 fact = 6*4 = 24 ▶ 결괏값 24를 fact로 돌려줌 ▶ x=5이면 fact = 24*5 = 120
.
.
.
마찬가지로 1부터 10까지의 곱도 같은 매커니즘으로 작용했을 시
'3,628,800' 값이 나온다.
다각형을 그리는 함수
마지막 주제는 '다각형을 그리는 함수'이다.
첫 번째 'polygon'은 한 변의 길이가 '50'인 삼각형, 오각형을 그리기 위한 함수이다.
두 번째 'polygon2'는 한 변의 길이가 '75, 100'인 삼각형, 오각형을 그리기 위한 함수이다.
첫 번째 polygon부터 살펴보도록 하자.
삼각형의 경우 polygon의 인잣값을 '3'으로 설정했기 때문에
for문도 3번까지 반복하게 된다.
거북이가 전방으로 50 이동 ▶ 왼쪽으로 120도(360/3) 꺾음 x3 하면 삼각형 완성!
오각형도 마찬가지로
거북이가 전방으로 50 이동 ▶ 왼쪽으로 72도(360/5) 꺾음 x5 하면 완성이다.
마지막으로 한 변의 길이가 75인 삼각형과
한 변의 길이가 100인 오각형을 그려보자.
이번엔 polygon2 함수를 이용할 것 이다.
일단 책에서는 큰 도형들을 옆에 그리려고 하는데
사진에 보이는 것 처럼 옆 여백으로 이동하는 과정에서 선을 남기지 않기 위해
't.up()' 명령어를 사용하여 선을 남기지 않게 하고
거북이를 전방으로 '100'이동 후 다시 선을 남기게끔
't.down()'명령어를 사용해준다.
우리가 글씨를 쓸 때 적다가 띄어쓰기 부분에서는 펜을 한 번
들었다가 다시 쓰는 것과 같은 경우이다.
polygon2의 경우에는 인자가 'n'과 'a'로 2개인데
n은 내각의 수를 a는 한 변의 길이를 정하는 역할을 한다.
그래서 메커니즘을 설명해보자면
for문에 x변수를 선언해주고 n번 반복하게 한다.
전방으로 'a' 만큼 이동하며 왼쪽으로 '360/n'만큼 회전하게 한다.
삼각형의 경우 'n=3', 'a=75'라고 설정을 해 놨으므로
1. 전방으로 75만큼 이동
2. 왼쪽으로 120도 회전
3. 이 행동을 3번 반복
오각형의 경우 'n=5', 'a=100'이라고 설정을 해 놨으므로
1. 전방으로 100만큼 이동
2. 왼쪽으로 72도 회전
3. 이 행동을 5번 반복
이 모든 과정들을 거치면 위와 같은 결과가 나온다.
'프로그래밍 > 파이썬' 카테고리의 다른 글
모두의 파이썬 - DAY 14 (계산 맞히기 게임 만들기) (0) | 2021.11.25 |
---|---|
모두의 파이썬 - DAY 13 (거북이 그래픽 응용하기) (0) | 2021.11.24 |
모두의 파이썬 - DAY 11 (함수를 정의하고 호출하기) (0) | 2021.11.17 |
모두의 파이썬 - DAY 10 (while 명령으로 반복하기) (2) | 2021.11.15 |
모두의 파이썬 - DAY 9 (Random 모듈로 임의의 수 뽑기) (0) | 2021.11.12 |
댓글