티스토리 뷰
Chapter 05 연습문제 풀이
1. if 문의 기본 형식이다. 빈칸을 제시된 보기로 채우시오.
if 조건식 :
실행할 문장 1
else :
실행할 문장 2
2. 다음 if 문의 결과를 예측하시오.
a = 100
if a != 100 :
print("100이 아니군요.")
else :
print("100이군요.")
★ >100이군요
a에 100이 담겨 있으므로 조건식 a != 100이 False가 된다. 따라서 if에 속한 문장은 무시가 되고 else가 실행된다.
3. 다음 if 문의 결과를 예측하시오.
a = 123
if a == 100 :
print("100이군요.")
print("100이 아니군요.")
★ >
a = 123이므로 if의 조건식이 false가 된다. 따라서 if 문에 속한 아래 두 문장 모두 실행되지 않는다. (파이썬에서 if문의 범위는 들여쓰기로 구분하기 때문이다.)
4. 입력한 숫자가 3의 배수인지를 판단하는 프로그램이다. 빈칸을 채우시오.
a = int(input("정수를 입력하세요 : "))
if a % 3 == 0 :
print("3의 배수를 입력했군요.")
else :
print("3의 배수가 아니군요.")
★ 3의 배수를 나머지 연산하면 나머지가 0이므로 참이 되기 떄문이다.
5. 다음 if 문의 결과를 예측하시오.
a = 123
if a > 100:
if a > 200:
print("완전히 큰 수입니다.")
else:
print("적당한 수입니다.")
else:
print("완전히 작은 수입니다.")
print("프로그램 끝입니다.")
★ >적당한 수입니다.
123은 첫 번쨰 조건식 a > 100에 참이 된다. 그 안의 조건식 a > 200에는 거짓이 되므로 else가 실행된다.
참고로 첫 번쨰 else의 print("프로그램 끝입니다.")는 프로그램의 끝을 알려주는 출력 문장이기 때문에 들여쓰기를 하지 않아 조건에 걸리지 않게 하는 것이 바람직하다.
6. 다음 중첩 if 문을 elif를 사용하는 코드로 변경하시오.
score = 55
if score >= 60 :
print("합격입니다.")
else :
if score >= 40 :
print("불합격이지만 과락은 아닙니다.")
else :
print("불합격이면서 과락입니다.")
★ 60 > score 라는 조건을 추가해 경계를 명확히 한다.
score = 55
if score >= 60 :
print("합격입니다.")
elif 60 > score >= 40 :
print("불합격이지만 과락은 아닙니다.")
else :
print("불합격이면서 과락입니다.")
7. 두 사람이 주사위를 던져 더 큰 수가 나오면 이기는 게임이다. A가 이기거나 B가 이기거나 비기는 결과가 나와야 한다. 코드를 작성하시오.
import random
## A와 B가 던진 주사위 값이 저장되는 부분 ##
a = random.randrange(1,7) # random.randrange(1,7)은 1 이상 7 미만의 난수를 리턴
b = random.randrange(1,7)
print("A의 주사위 숫자는 %d입니다." % a)
print("B의 주사위 숫자는 %d입니다." % b)
if a > b :
print("A가 이겼습니다.")
elif b > a :
print("B가 이겼습니다.")
else :
print("비겼습니다.")
8. 139쪽의 [응용예제 02]를 수정해서 거북이 세 마리가 화면을 돌아다니다 서로 만나면 만난 위치에 도장을 찍고 계속 움직이는 프로그램을 작성하시오. 프로그램은 무한 반복된다. 거북이가 화면 밖으로 나가면 다시 각자의 처음 위치[거북이 1은 (-100, -100), 거북이 2는 (0, 0), 거북이 3은 (100, 100)]로 이동한다.
import turtle
import math
import random
## 전역 변수 선언 부분 ##
t1, t2, t3 = [None] * 3
t1X, t1Y, t2X, t2Y, t3X, t3Y = [0] * 6
swidth, sheight = 300, 300
## 메인 코드 부분 ##
if __name__ == "__main__" :
turtle.title('거북이 만나기')
turtle.setup(width = swidth + 50, height = sheight + 50)
turtle.screensize(swidth, sheight)
t1 = turtle.Turtle('turtle'); t1.color('red'); t1.speed(10); t1.penup()
t2 = turtle.Turtle('turtle'); t2.color('green'); t2.speed(10); t2.penup()
t3 = turtle.Turtle('turtle'); t3.color('blue'); t3.speed(10); t3.penup()
t1.goto(-100, -100); t2.goto(0, 0); t3.goto(100, 100)
while True:
angle = random.randrange(0, 360)
dist = random.randrange(1, 50)
t1.left(angle); t1.forward(dist)
angle = random.randrange(0, 360)
dist = random.randrange(1, 50)
t2.left(angle); t2.forward(dist)
angle = random.randrange(0, 360)
dist = random.randrange(1, 50)
t3.left(angle); t3.forward(dist)
t1X = t1.xcor(); t1Y = t1.ycor()
t2X = t2.xcor(); t2Y = t2.ycor()
t3X = t3.xcor(); t3Y = t3.ycor()
## 각 거북이가 화면 밖으로 나가면 각자의 처음 위치로 이동시키는 부분 ##
if not((-swidth / 2 <= t1X and t1X <= swidth / 2) and (-sheight / 2 <= t1Y and t1Y <= sheight / 2)):
t1.goto(-100, -100)
if not((-swidth / 2 <= t2X and t2X <= swidth / 2) and (-sheight / 2 <= t2Y and t2Y <= sheight / 2)):
t2.goto(0, 0)
if not((-swidth / 2 <= t3X and t3X <= swidth / 2) and (-sheight / 2 <= t3Y and t3Y <= sheight / 2)):
t3.goto(100, 100)
## 각각 두 거북이가 만났을 때 도장을 찍는 부분 ##
if math.sqrt(((t1X - t2X) * (t1X - t2X)) + ((t1Y - t2Y) * (t1Y - t2Y))) <= 20 :
t1.stamp(); t2.stamp()
elif math.sqrt(((t1X - t3X) * (t1X - t3X)) + ((t1Y - t3Y) * (t1Y - t3Y))) <= 20 :
t1.stamp(); t3.stamp()
elif math.sqrt(((t2X - t3X) * (t2X - t3X)) + ((t2Y - t3Y) * (t2Y - t3Y))) <= 20 :
t2.stamp(); t3.stamp()
turtle.done()
'python > 파이썬 for Beginner' 카테고리의 다른 글
파이썬 for Beginner Chapter 07 (15) | 2019.04.15 |
---|---|
파이썬 for Beginner Chapter 06 (0) | 2019.04.15 |
파이썬 for Beginner Chapter 04 (3) | 2019.04.08 |
파이썬 for Beginner Chapter 03 (7) | 2019.03.25 |
파이썬 for Beginner Chapter 02 (8) | 2019.03.16 |
- Total
- Today
- Yesterday
- 스프링 mvc
- 김영환
- 파이썬 for Beginner 솔루션
- 스프링
- Thymeleaf
- Computer_Networking_A_Top-Down_Approach
- Do it! 정직하게 코딩하며 배우는 딥러닝 입문
- git
- JPA
- 방명록 프로젝트
- 패킷 스위칭
- 선형 회귀
- 스프링 테스트
- spring mvc
- Python Cookbook
- git merge
- 프로그래머스
- 쉽게 배우는 운영체제
- Gradle
- jsp
- Spring Data JPA
- 운영체제 반효경
- 쉘 코드
- 지옥에서 온 git
- 생활코딩 javascript
- Spring
- 파이썬 for Beginner 연습문제
- Spring Boot
- git branch
- 스프링 컨테이너
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |