안녕하세요 성조입니다.
두근두근 파이썬 책의 연습 문제를 개인적으로 푼 문제들을 업로드하려 합니다.
01. 다음 프로그램의 출력은 무엇인가?
코드)
1
2
3
4
5
|
age = 20
if age <20:
print("20살 미만")
else:
print("20살 이상")
|
정답 : 20살 이상
풀이 : age 변수에 저장된 값은 20이다.
age에 저장된 값은 20인데 20 미만이 참인 경우 20살 미만을 거짓인 경우 20살 이상을 출력하는 문제이다.
20을 포함하는 이상 값 또는 이하 값이라면 참이지만 아니므로 거짓으로 20살 이상이 출력된다.
02. 1번 문제에서 age가 30 이상이고 50 이하인 것을 체크하려면 어떻게 하여야 하는가?
코드)
1
2
3
4
5
|
age = 20
if 30 >= age and age <= 50:
print("20살 미만")
else:
print("20살 이상")
|
이상 >= 이하 <=의 조건을 and로 묶어서 if문에 대입한다.
03. 사용자에게 현재 온도를 질문하고 온도가 25도 이상이면 반바지를 추천하고 25도 미만이면 긴바지를 추천하는 프로그램을 작성해보자.
코드)
1
2
3
4
5
6
|
temp = int(input("현재 온도를 입력하시오 : "))
if temp >= 25:
print("반바지를 입으세요")
elif temp < 25:
print("긴바지를 입으세요")
|
04. 학생의 시험 점수를 물어보고 시험 점수가 90점 이상이면 , 80점 이상이면 B, 70점 이상이면 C 60점 이상이면 D, 그 외의 점수이면 F를 학점으로 주는 프로그램을 작성하라.
코드)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
score = int(input("성적을 입력하시오 : "))
if score > 100:
print("범위에 없습니다")
elif score >= 90:
print("A")
elif score >= 80:
print("B")
elif score >= 70:
print("C")
elif score >= 60:
print("D")
elif 60 > score >= 0:
print("F")
else :
print("범위에 없습니다.")
|
A~F점수는 100점 초과와 0 미만을 평균적으로 범위에 넣지 않으므로 예외까지 작성했으며, 순차적으로 값을 확인한다. 또한 F배점의 경우 60 미만부터 0 이상의 값들은 F로 들어간다.
05. 난수를 사용하여 1부터 100 사이의 숫자를 사용하는 뺄셈 문제를 생성하고 사용자에게 물어본 후에 사용자의 답변이 올바른지를 검사하는 프로그램을 작성하라.
코드)
1
2
3
4
5
6
7
8
9
10
|
import random
x = random.randint(1, 100)
y = random.randint(1, 100)
total =int(input(str(x) + "-" + str(y) + "="))
if total == x - y :
print("맞았습니다.")
else :
print("틀렸습니다.")
|
06. 사용자로부터 정수를 받아서 이 정수가 2와 3으로 나누어 떨어질 수 있는지를 출력하라.
코드)
1
2
3
4
5
6
|
n = int(input("정수를 입력하시오 : "))
if n%2==0 and n%3==0:
print("2와 3으로 나누어 떨어집니다.")
else:
print("2와 3으로 나누어 떨어지지 않습니다.")
|
나누었을 때 2와 3으로 나누어지는지 확인한다.
07. 2자리 숫자로 이루어진 복권이 있다. 사용자가 가지고 있는 복권 번호가 2자리 모두 일치하면 100만 원을 받는다. 2자리 중에서 하나만 일치하면 50만 원을 받는다. 하나도 일치하지 않으면 상금은 없다. 복권 당첨 번호는 난수로 생성하고 사용자의 입력에 따라서 상금이 얼마인지를 출력하는 프로그램을 작성하라.
코드)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
import random
Lotto = random.randint(0, 99)
pick = int(input("복권 번호를 입력하시오(0에서 99사이):"))
print("당첨번호는", Lotto, "입니다.")
digit1 = Lotto // 10
digit2 = Lotto % 10
pickNum1 = pick // 10
pickNum2 = pick % 10
if pick == Lotto:
print("상금은 100만원입니다.")
elif (digit1 == pickNum1) or (digit1 == pickNum2) or (digit2 == pickNum1) or (digit2 == pickNum2) :
print("상금은 50만원입니다.")
else:
print("상금은 없습니다.")
|
1. 둘 다 같은 값은 입력 값과 복권 번호의 값을 비교한다.
2. 2자리의 경우 4개의 변수를 각각 비교
3. 없는 경우.
08. 사용자로부터 2개의 원에 대한 정보를 받아서 화면에 원을 그린 후에 조건문을 사용하여 큰 원 안에 작은 원이 포함되는지를 판단하는 프로그램을 작성하라.
코드)
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
26
27
28
|
import turtle
t = turtle.Turtle()
t.shape("turtle")
x1 = int(input("큰 원의 중심좌표 x1 : "))
y1 = int(input("큰 원의 중심좌표 y1 : "))
bigC = int(input("큰 원의 반지름 : "))
x2 = int(input("작은 원의 중심좌표 x2 : "))
y2 = int(input("작은 원의 중심좌표 y2 : "))
smallC = int(input("작은 원의 반지름 : "))
t.up()
t.goto(x1,y1)
t.down()
t.circle(bigC)
t.up()
t.goto(x2, y2)
t.down()
t.circle(smallC)
dist = ((x1-x2)**2 + (y1-y2)**2)**0.5
if dist > bigC+smallC:
print("두번째 원이 첫번째 원의 내부에 없습니다.")
else:
print("두번째 원이 첫번째 원의 내부에 있습니다.")
|
1. 주어진 조건을 파악한다.
2. x, y좌표와 원의 반지름 값을 입력받을 수 있도록 한다.
3. 원을 그린다.
4. 거리 공식에 큰 원과 작은 원의 거리를 구해준다.
5. 내부에 있는지 비교한다.
- 바보가된 개발자님의 피드백 내용입니다 -
마지막문제 원의 내부인지 외부인지 파악하려면 원의 반지름의 차를 중심 사이의 거리와 비교해야합니다
주관적으로 풀이한 문제이므로 오답이 있을 수 있으며, 오답이나 오타들은 댓글을 남겨주시면 감사하겠습니다.
다음 포스팅 때 뵙겠습니다. 감사합니다.
'개인 학습용 해설 > 두근두근파이썬' 카테고리의 다른 글
[두근두근파이썬] 7장 연습문제 개인풀이 (2) | 2022.10.17 |
---|---|
[두근두근 파이썬] 6장 연습문제 개인풀이 (0) | 2022.08.22 |
[두근두근 파이썬] 4장 연습문제 개인풀이 (0) | 2021.05.20 |
[두근두근 파이썬] 3장 연습문제 개인풀이 (0) | 2021.02.07 |
[두근두근 파이썬] 2장 연습문제 개인풀이 (0) | 2021.02.05 |