관리 메뉴

승이네 반도체

8/11 (목) 김변수와 시작하는 코딩생활 with 파이썬 스터디 8일차(선택1 도형별 넓이 계산기) 본문

빅데이터 & 딥러닝 스터디/파이썬 스터디(김변수와 시작하는 코딩생활 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으로 나오는지 모르겠습니다. 찾아봤는데 안나오네요 ㅠㅠ

반응형
Comments