파이썬 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번 처럼 하는것도 괜찮을것 같습니다 수고하세요!
댓글 입력