파이썬 def문 질문드립니다.

조회수 956회

안녕하세요. 파이썬을 배운지 한달정도되는 학생입니다.

온도와 바람의 요소를 입력받아서 체감온도를 계산하는 프로그램을 만들고있습니다.

입력을 받는 것과 계산은 def문을 사용하려고 하는데 아래 코드가 제 머리속에 떠오르는 최선이였습니다.


def input():
    temperature = int(input('온도를 입력하시오: '))
    wind = int(input('풍속을 입력하시오: '))
    return(temperature, wind)

def calculation(temperature, wind):
    wind_chill = 35.74 + 0.6215 * temperature - 35.75 * wind ** 0.16 + 0.4275 * temperature * wind ** 0.16
    return(wind_chill)

calculation(input())

print('체감온도는', wind_chill, end='입니다.')

이렇게 짜놓고 돌려보니 엉망인것같더라고요.

함수를 통해 두가지 return값을 받고 그 두 값을 다시 다른 함수에서 각각 별개의 변수(?)로 사용하고 싶습니다.

조언부탁드리겠습니다. 감사합니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 안녕하세요!

    아래와 같이 calculation에서 매개변수 하나로 받고, 다시 두개로 분배하면 될것 같습니다!

    def user_input():
        temperature = int(input('온도를 입력하시오: '))
        wind = int(input('풍속을 입력하시오: '))
        return temperature, wind
    
    def calculation(arg):       #여기서 하나로 받고 arg는  실제론 (temperature, wind) 이렇게 생겼습니다
        temperature, wind = arg #여기서! 다시 나눠줍니다,  (temperature, wind) 을 두군대로 Destructuring!
        return 35.74 + 0.6215 * temperature - 35.75 * wind ** 0.16 + 0.4275 * temperature * wind ** 0.16
    
    print(f'체감온도는 {calculation(user_input())} 입니다.')
    

    def 통해서 만드신 input() 함수는 원래 있는 함수여서 user_input()으로 변경해서 사용했습니다.

    '입니다' 부분이 있어서 fstring을 사용해봤습니다.

    참고용1)

    def user_input():
        temperature = int(input('온도를 입력하시오: '))
        wind = int(input('풍속을 입력하시오: '))
        return temperature, wind
    
    def calculation(t, w):
        return 35.74 + 0.6215 * t - 35.75 * w ** 0.16 + 0.4275 * t * w ** 0.16
    
    temp , wind = user_input()
    result = calculation(temp, wind)
    print(f'체감온도는 {result} 입니다.')
    

    참고용2)

    t , w = int(input('온도를 입력하시오: ')), int(input('풍속을 입력하시오: '))
    print(f'체감온도는 {35.74 + 0.6215 * t - 35.75 * w ** 0.16 + 0.4275 * t * w ** 0.16} 입니다.')
    

    제생각엔 함수에서 함수로 들어가는 것 보다, 참고용1번 처럼 하는것도 괜찮을것 같습니다 수고하세요!

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)