빅데이터 & 딥러닝 스터디/파이썬 스터디(김변수와 시작하는 코딩생활 3기)
8/11 (목) 김변수와 시작하는 코딩생활 with 파이썬 스터디 8일차(선택1 도형별 넓이 계산기)
승이네
2022. 8. 11. 00:21
반응형
선택 과제 : 2-7. 도형별 넓이 계산기
선택한 도형별로 길이를 입력받아 넓이를 출력하는 프로그램을 만들어 보세요.
조건1 : 도형 목록에는 원, 삼각형, 직사각형, 정사각형이 존재합니다.
조건2 : 도형의 넓이 계산은 함수로 정의되어야 합니다.
조건3 : 도형별로 필요한 길이를 입력받아야 합니다.
- 원 -> 반지름
- 삼각형 -> 밑변, 높이
- 직사각형 -> 가로, 세로
- 정사각형 -> 한 변의 길이
def circle(r) :
circle_area = r * r * 3.1415
return circle_area
def triangle(a, h) :
triangle_area = a * h / 2
return triangle_area
def rectangle(x, y) :
rectangle_area = x * y
return rectangle_area
def square(b) :
square_area = b ** 2
return square_area
print("""
==========도형 목록==========
1. 원
2. 삼각형
3. 직사각형
4. 정사각형
=============================
""")
while True :
num = int(input("도형 목록에서 넓이를 계산할 도형의 번호를 입력해 주세요. : "))
if num == 1 :
r = int(input("원의 반지름 길이를 입력해 주세요. : "))
circle_area = circle(r)
print("반지름이", str(r) + "인 원의 넓이는 약 %.2f입니다." % circle_area)
break
elif num == 2 :
a = int(input("삼각형의 밑변 길이를 입력해 주세요. : "))
h = int(input("삼각형의 높이를 입력해 주세요. : "))
triangle_area = triangle(a, h)
print("밑변이", str(a) + "이고 높이가", str(h) + "인 삼각형의 넓이는", str(triangle_area) + "입니다.")
break
elif num == 3 :
x = int(input("직사각형의 가로 길이를 입력해 주세요. : "))
y = int(input("직사각형의 세로 길이를 입력해 주세요. : "))
rectangle_area = rectangle(x, y)
print("가로가", str(x) + "이고 세로가", str(y) + "인 직사각형의 넓이는", str(rectangle_area) + "입니다.")
break
elif num == 4 :
b = int(input("정사각형의 한변 길이를 입력해 주세요. : "))
square_area = square(b)
print("한변의 길이가", str(b) + "인 정사각형의 넓이는", str(square_area) + "입니다.")
break
else :
print("잘못된 입력입니다. 다시 선택해주세요.")

2번(삼각형)이랑 3번(직사각형) 코드가 같다고 생각하는데 2번에서 a * h / 2 (나누기 2)가 있어서 삼각형의 넓이가 25.0이 나왔습니다.
소수점까지 나오는 경우 (ex : a = 1 h = 5일 때, 넓이는 2.5)에는 소수점까지 잘 나오지만 왜 25같이 정수가 나오는데도 25.0으로 나오는지 모르겠습니다. 찾아봤는데 안나오네요 ㅠㅠ
반응형