안녕하세요 성조입니다.
두근두근 파이썬 책의 연습 문제를 개인적으로 푼 문제들을 업로드하려 합니다.
3장
1. 사용자로부터 두 개의 정수를 입력받고 합, 차, 평균, 큰수, 작은수를 판별하는 프로그램을 작성하고 파이썬이 제공하는 내장 함수 max(x,y) min(x,y)을 사용해라.
1
2
3
4
5
6
7
8
9
|
x = int(input("x:"))
y = int(input("y:"))
print("두수의 합 : %d" %(x+y))
print("두수의 차 : %d" %(x-y))
print("두수의 곱 : %d" %(x*y))
print("두수의 평균 : %.1lf" %((x+y)/2))
print("큰 수 : ",max(x,y))
print("작은 수 : ",min(x,y))
|
2. 원기둥의 부피를 계산하는 프로그램
1
2
3
4
|
r = int(input("r : "))
h = int(input("h : "))
print("원기둥의 부피 : %.2lf" %(3.141592*r**2*h))
|
3. 사용자로부터 정수를 받아서 자리수의 합을 계산하는 프로그램을 작성하라. (반복문은 사용하지 않는다.)
ex) 1234, 4321 -> 1+2+3+4 = 10, 4+3+2+1 = 10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
# 반복문을 사용하지 않으므로 천의 자리 수까지만 계산합니다.
number = int(input("정수를 입력하시오: "))
n=0
n += number % 10
number //=10
n += number % 10
number //=10
n += number % 10
number //=10
n += number % 10
number //=10
print("자리수의 합 :",n)
|
4. 사용자로부터 두 점의 좌표 (x1, y1)과 (x2, y2)를 입력받아서 두 점 사이의 거리를 계산하는 프로그램.
함수를 사용하는 방법도 있지만 문제에서는 x**0.5 하면 x의 제곱 근이 된다는 것을 언급했으므로 공식 그대로 사용합니다.
1
2
3
4
5
6
7
8
|
x1 = int(input("x1 : "))
y1 = int(input("y1 : "))
x2 = int(input("x2 : "))
y2 = int(input("y2 : "))
street = ( ((x1-x2)**2) + ((y1-y2)**2) )**0.5
print("두점 사이의 거리 = ", street)
|
5. 1번 문제에서 계산한 거리가 맞는지, 터틀 그래픽으로 확인해보자. ( 1번은 합차를 구하는 것인데 무슨 소리인지 조건대로 그냥 풀었습니다.)
1
2
3
4
5
6
7
8
9
10
11
12
|
import turtle
t = turtle.Turtle()
t.shape("turtle")
t.left(45)
t.forward(141)
t.goto(0,0)
t.setheading(0)
t.forward(100)
t.left(90)
t.forward(100)
t.down()
|
왼쪽 45도 회전 141전진 이후 다시 0,0으로 이동하고 0도를 가리키게 한 후 100만큼 전진하고 왼쪽으로 90도 회전하여100만큼 전진한다.의 소스코드입니다.
t.hideturtle()을 이용하여 거북이를 치우면 다음의 그림이 나옵니다.
육안으로 보기에 화면에 그려진 직선이 일치하는 것 같네요
6. 사용자로부터 두 점을 입력받아서 터틀 그래픽을 이용하여 두 점을 연결하는 직선을 그린다. 직선의 끝점에 직선의 길이를 계산하여 출력해보자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
import turtle
t = turtle.Turtle()
t.shape("turtle")
#선을 긋는 부분
x1 = int(input("x1 위치:"))
y1 = int(input("y1 위치:"))
x2 = int(input("x2 위치:"))
y2 = int(input("y2 위치:"))
t.goto(x1,y1)
t.goto(x2,y2)
#4번에 쓰인 공식 활용
xDifference = (x1-x2)**2
yDifference = (y1-y2)**2
#차이
street = (xDifference + yDifference)**0.5
#선의 길이 출력하는 부분
t.up()
t.write("점의 길이 = ", street)
t.write(street)
t.goto(x2,y2)
|
7. time() 함수를 호출하면 1970년 1월 1일 이후 흘러온 전체 초가 반환된다. 이것을 적절하게 나누거나 나머지를 구해서 현재 시간의 시와 분을 계산할 수 있을까? ( 왜 질문형이지? )
1
2
3
4
5
|
import time
toDay = time.strftime("%H시 %M분", time.localtime(time.time()))
print("현재 시간 :", toDay)
|
cs |
8. 움직이는 물체의 운동에너지를 계산해보자. 물체의 에너지를 계산하는 식은 1/2*무게*속도**2이다.
1
2
3
4
5
|
weight = int(input("물체의 무게를 입력하시오(킬로그램) : "))
speed = int(input("물체의 속도를 입력하시오(미터/초) : "))
print("물체는 %.1lf (줄)의 에너지를 가지고 있다." %(1/2*weight*speed**2))
|
주관적으로 풀이한 문제이므로 오답이 있을 수 있으며, 오답이나 오타들은 댓글을 남겨주시면 감사하겠습니다.
다음 포스팅 때 뵙겠습니다. 감사합니다.
'개인 학습용 해설 > 두근두근파이썬' 카테고리의 다른 글
[두근두근 파이썬] 6장 연습문제 개인풀이 (0) | 2022.08.22 |
---|---|
[두근두근 파이썬] 5장 연습문제 개인풀이 (1) | 2021.07.23 |
[두근두근 파이썬] 4장 연습문제 개인풀이 (0) | 2021.05.20 |
[두근두근 파이썬] 2장 연습문제 개인풀이 (0) | 2021.02.05 |
[두근두근 파이썬] 1장 연습문제 개인풀이 (0) | 2021.01.17 |