파이썬

[파이썬] 7장 문제풀이(함수)

Nohsw 2023. 12. 21. 22:31

1번 문제: 표준 체중 구하기

#표준 체중 구하기
#남자: 키*키*22
#여자: 키*키*21

def std_weight(height, gender): #표준 체중 함수
    _height = std_height(height)
    _cal = std_cal(height, gender)

    if(gender == "남자"):
        print("키: {0}\t 성별: {1}\t 표준 체중: {2}".format(_height, gender, round(_cal, 2)))
    else:
        print("키: {0}\t 성별: {1}\t 표준 체중: {2}".format(_height, gender, round(_cal, 2)))

def std_height(height): #키를 미터-> 센치미터로 변경하는 함수
    height *= 100
    return height

def std_cal(height, gender): #표준체중 공식 함수
    if(gender == "남자"):
        gender = (height * height) * 22
    else:
        gender = (height * height) * 21

    return gender


std_weight(1.75, "남자")
std_weight(1.65, "여자")

2번 문제: 미세먼지 수치를 입력받아 대기 질 상태 출력하기

(반환값 없는 코드)

#미세먼지 수치 입력받아 대기 질 상태 출력 프로그램
#좋음: 0~30
#보통: 31~80
#나쁨: 81~150
#매우 나쁨: 151 이상

def get_air_quality(fineDust):
    
    if fineDust <= 30:
        print("좋음")
    elif 31 <= fineDust <= 80:
        print("보통")
    elif 81 <= fineDust <= 150:
        print("나쁨")
    else:
        print("매우 나쁨")
    
get_air_quality(20)
get_air_quality(90)

(반환 값 있는 코드)

#미세먼지 수치 입력받아 대기 질 상태 출력 프로그램
#좋음: 0~30
#보통: 31~80
#나쁨: 81~150
#매우 나쁨: 151 이상

def get_air_quality(fineDust):
    
    if fineDust <= 30:
        return ("좋음")
    elif 31 <= fineDust <= 80:
        return ("보통")
    elif 81 <= fineDust <= 150:
        return ("나쁨")
    else:
        return ("매우 나쁨")
    
print (get_air_quality(20))
print (get_air_quality(90))

오늘은 7장 함수에 대해서 배웠다.

C언어와 차이점은 함수 생성 시 def를 작성한다는 차이점 외에 비슷한 것 같다.

함수에 익숙해질 겸 함수를 많이 사용하여 프로그램을 만들었고, 정상적으로 출력됨을 확인할 수 있었다.

코딩의 재미는 답이 정해져있지 않고 나의 스타일로 구현하는 점이다.

문제 해설을 보면서 이러한 부분은 이렇게 작성하면 조금 더 간결하게 할 수 있겠구나. 정도의 차이만 느끼고 응용하면서 배워가는게 너무 매력적인 것 같다. 이제 8장 입출력에 대해 공부하거나 지금까지 배워온 부분을 다시 한번 훑어보면서 지식을 쌓아야겠다.