[Python] 5-2장 조건문 응용(윤년 판단, 동전 던지기 등), random 라이브러리

- 정수의 부호에 따라 거북이 움직이기(터틀 그래픽)

import turtle
t = turtle.Turtle()
t.shape("turtle")
t.penup()
t.goto(100,100)
t.write("거북이가 여기로 오면 양수입니다.")
t.goto(100,0)
t.write("거북이가 여기로 오면 0입니다.")
t.goto(100,-100)
t.write("거북이가 여기로 오면 음수입니다.")
t.home()
t.pendown()
s = int(turtle.textinput("", "숫자를 입력하시오: "))
if s > 0:
    t.goto(100,100)
elif s == 0:
    t.goto(100, 0)
else:
    t.goto(100, -100)

 

 

- 나이 제한 검사

age = int(input("나이를 입력하시오: "))
if age >= 15:
    print("이 영화를 보실 수 있습니다.")
    print("영화의 가격은 10000원입니다.")
else:
    print("이 영화를 보실 수 없습니다.")
    print("다른 영화를 보시겠어요?")

 

 

- 거북이 제어하기 (터틀 그래픽)

t.shapesize(3, 3)
while True:
    ans = input("명령을 입력하시오: ")
    if ans == 'l':
        t.left(90)
        t.forward(100)
    elif ans == 'r':
        t.right(90)
        t.forward(100)

 

 

- 윤년 판단

year = int(input("연도를 입력하시오: "))
if ((year % 4 == 0) and (year % 100 != 0)) or (year % 400 == 0):
    print(year, "년은 윤년입니다.")
else:
    print(year, "년은 윤년이 아닙니다.")

 

 

- 동전 던지기 게임 (random 라이브러리 사용)

random.randint(0, 1) : 0 ~ 1 이하의 임의의 값 생성

import turtle
import random
t = turtle.Turtle()

screen = turtle.Screen()
image1 = "C:\\Desktop\\front.gif"  # gif 이미지만 가능, 역슬래시 사용 시 \\
image2 = "C:\\Desktop\\back.gif"
screen.addshape(image1)
screen.addshape(image2)

t.shape(image1)
coin = random.randint(0, 1)
if coin == 0:
    t.shape(image1)
    t.stamp()
else:
    t.shape(image2)
    t.stamp()

 

 

- 축구 게임

random.choice(리스트) : 리스트에서 하나를 랜덤하게 선택

import random
options = ["왼쪽", "중앙", "오른쪽"]
choice = input("어디를 수비하시겠어요?(왼쪽, 중앙, 오른쪽) ")
defense = random.choice(options)
if choice == defense:
    print("수비에 성공하였습니다.")
else:
    print("패널티 킥이 성공하였습니다.")

 

 

- 랜덤 뺄셈 문제

import random
x = random.randint(1, 100)
y = random.randint(1, 100)
ans = int(input(str(x)+"-"+str(y)+"="))
if ans == (x-y):
    print("맞았습니다.")
else:
    print("틀렸습니다.")

 

 

- 복권 당첨 번호

import random
num = random.randint(0, 99)
ans = int(input("복권번호를 입력하시오(0에서 99사이): "))
print("당첨번호는",num,"입니다.")
if num == ans:
    print("상금은 100만원입니다.")
elif (num % 10 == ans % 10) or (num // 10 == ans // 10):
    print("상금은 50만원입니다.")
else:
    print("상금은 없습니다.")

 

 

- 큰 원 안에 작은 원 포함되는지 확인

import turtle
t = turtle.Turtle()
t.shape("turtle")
nlist = []
rlist = []
n = int(input("큰 원의 중심좌표 x1: "))
nlist.append(n)
n = int(input("큰 원의 중심좌표 y1: "))
nlist.append(n)
r = int(input("큰 원의 반지름: "))
rlist.append(r)
n = int(input("작은 원의 중심좌표 x1: "))
nlist.append(n)
n = int(input("작은 원의 중심좌표 x1: "))
nlist.append(n)
r = int(input("작은 원의 반지름: "))
rlist.append(r)
t.up()
t.goto(nlist[0], nlist[1] - rlist[0])
t.down()
t.circle(rlist[0])
t.up()
t.goto(nlist[2], nlist[3] - rlist[1])
t.down()
t.circle(rlist[1])
distance = ((nlist[0] - nlist[2])**2+(nlist[1] - nlist[3])**2)**0.5
if (distance < (rlist[0] + rlist[1])):
    print("큰 원 안에 작은 원이 포함됩니다.")
else:
    print("큰 원 안에 작은 원이 포함되지 않습니다.")

 

 

※ 두근두근 파이썬 5장 문제 참조