안녕하세요 성조입니다.
이 포스팅은 주관적으로 풀이한 문제이므로 반드시 정답이라는 보장을 해드릴 수 없습니다.
참고용 및 개인 학습용으로 사용해 주시면 감사드리겠습니다.
01. 눈사람을 그리는 함수를 작성하고 이 함수를 여러 번 호출하여서 랜덤한 위치에 눈사람을 긔는 프로그램을 작성하라. 아래 실행 결과와 최대한 비슷하게 작성해 보자.
코드
def draw_snowman(x, y):
##############
t.up()
t.goto(x,y+120)
t.down()
t.begin_fill()
t.circle(35)
t.end_fill()
##############
t.up()
t.goto(x,y+80)
t.down()
t.lt(20)
t.fd(100); t.fd(-100)
t.lt(130)
t.fd(100); t.fd(-100)
t.seth(0)
t.begin_fill()
t.circle(25)
t.end_fill()
##############
t.up()
t.goto(x,y)
t.down()
t.begin_fill()
t.circle(50)
t.end_fill()
import turtle
t = turtle.Turtle("turtle")
s = turtle.Screen()
t.color('black', 'white')
s.bgcolor('skyblue')
for i in range(3):
draw_snowman(150*i,0)
해설
https://docs.python.org/ko/3.10/library/turtle.html#turtle.shape
turtle — 터틀 그래픽 — Python 3.10.8 문서
turtle — 터틀 그래픽 소스 코드: Lib/turtle.py 소개 터틀(거북이) 그래픽은 아이들에게 프로그래밍을 소개하는 데 널리 사용되는 방법입니다. 1967년 Wally Feurzeig, Seymour Papert 및 Cynthia Solomon이 개발한
docs.python.org
참조하여 노가다를 진행한다.
02. 6각형을 그리는 draw_hexa() 함수를 작성하고 이 함수를 호출하여서 다음과 같은 벌집 모양을 화면에 그려보자.
코드
def draw_hexa():
for i in range(6):
t.fd(100)
t.rt(360/6)
import turtle
t = turtle.Turtle("turtle")
for i in range(6):
t.fd(100)
t.lt(360/6)
draw_hexa()
해설
문제에서 주어진 힌트를 활용한다.
def draw_hexa():
for i in range(6):
t.fd(100)
t.rt(360/6)
03. 함수 f(x)=x^2+1 을 계산하는 함수를 작성하고 이 함수를 이용하여 화면에 f(x)를 그려보자.
코드
def f():
for i in range(150):
t.goto(i,(i**2+1)*0.01)
import turtle
t = turtle.Turtle()
t.fd(300)
t.fd(-300)
t.lt(90)
t.fd(300)
t.fd(-300)
t.rt(90)
f()
해설
힌트에 나온 값을 활용하여 함수를 만든다.
이후 문제와 동일하게 라인을 이동 후 선을 그려서 상승하는 그래프를 만든다.
04. 터틀 그래픽에서 거북이를 움직이지 않고 선을 긋는 함수 draw_line()을 정의하고 이것을 이용하여 다음과 같은 거미줄과 같은 모양을 그려보자. 거북이는 항상 중앙에 위치한다.
코드
def draw_line():
t.fd(100)
t.fd(-100)
import turtle
t = turtle.Turtle("turtle")
for i in range(12):
draw_line()
t.lt(30)
해설
힌트를 활용하여 draw_line 함수를 작성한다.
이후 거북이를 그려내는데 이미지를 참고하면 선이 모두 12개이다. 360도를 회전시키는 것이므로 360/12를 계산하면 30의 값이 나옴을 알 수 있다. draw_line() 함수를 12번 반복시키며, 30도씩 각도를 틀어주면 360도를 회전하는 거북이를 만들 수 있다.
05. 다음과 같이 이름을 받아서 생일 축하 노래를 출력하는 함수 happyBirtday()를 작성하고 테스트하시오.
코드
def happyBirthday(text):
print("Happy Birthday to you!")
print("Happy Birthday to you!")
print("Happy Birthday," + text)
print("Happy Birthday to you!")
happyBirthday(input())
해설
함수를 선언하고 텍스트 값을 입력받아서 그 값을 출력할 수 있도록 함수를 정의하면 된다.
06. 사용자로부터 2개의 정수를 받아서 수학 문제를 만들어서 화면에 출력하는 함수를 작성하고 테스트하시오.
코드
one = int(input("첫 번째 정수: "))
two = int(input("두 번째 정수: "))
def res(one, two):
print(f"정수 {one}+{two}의 합은?")
cal = one+two
number = int(input())
if(cal==number):
print("정답입니다.")
else:
print("오답입니다.")
res(one, two)
해설
값 2개를 입력받는 함수를 만들고, 값 비교를 하는 테스트까지 작성했다.
값을 비교할 cal 변수에 새로운 값을 입력해서 값이 같으면 if 문을 통해서 값을 비교해 준다.
07. 파이를 나타내는 PI=3.14를 전역 변수로 하여 원의 면적을 계산하는 함수 circleArea(radius)과 원의 둘레를 계산하는 함수 circleCircumference(radius)를 작성하고 테스트하라.
코드
PI = 3.14
data = int(input("값을 입력해 주세요."))
def res(data):
area = (data**2) * PI
circumference = data * 2 * PI
print(f"반지름이 {data}인 원의 면적: {area}")
print(f"반지름이 {data}인 원의 둘레: {circumference}" )
res(data)
해설
값을 입력받고, 값을 전달하는 함수를 만든 후.
면적을 구하는 공식과 둘레를 구하는 공식을 변수에 계산하고, 그 값을 print() 함수로 출력해 준다.
08. 덧셈, 뺄셈, 곱셈, 나눗셈을 수행하는 함수를 각각 작성하고 테스트하라.
코드
해설
오답이나 문제가 있는 경우 언제든지 댓글로 의견 주시면 감사드리겠습니다.
다음 포스팅 때 뵙겠습니다. 부족한 포스팅 읽어주셔서 감사드립니다!
'개인 학습용 해설 > 두근두근파이썬' 카테고리의 다른 글
[두근두근 파이썬] 6장 연습문제 개인풀이 (0) | 2022.08.22 |
---|---|
[두근두근 파이썬] 5장 연습문제 개인풀이 (1) | 2021.07.23 |
[두근두근 파이썬] 4장 연습문제 개인풀이 (0) | 2021.05.20 |
[두근두근 파이썬] 3장 연습문제 개인풀이 (0) | 2021.02.07 |
[두근두근 파이썬] 2장 연습문제 개인풀이 (0) | 2021.02.05 |