데이터분석/python

#4. 온도 단위 바꾸기

dataminutestone 2025. 10. 27. 16:07

조건) 

화씨 온도(°F)를 섭씨 온도(°C)로 바꾸어주는 프로그램을 만들려고 합니다.

섭씨와 화씨의 관계식은 다음과 같습니다:

°C=(°F−32)∗59

화씨 온도를 섭씨 온도로 변환해 주는 함수 fahrenheit_to_celsius를 써 보세요. 이 함수는 파라미터로 화씨 온도 fahrenheit를 받고, 변환된 섭씨 온도를 리턴합니다.

 

과정)

진짜 모르겠음;

# 화씨 온도에서 섭씨 온도로 바꿔 주는 함수
def fahrenheit_to_celsius(fahrenheit):
    c = temperature_list[]
    c = (temperature_list[] - 32) * 5 / 9


temperature_list = [40, 15, 32, 64, -4, 11]
print("화씨 온도 리스트: {}".format(temperature_list))  # 화씨 온도 출력

Ctem_list = [4.4, -9.4, 0.0, 17.8, -20.0, -11.7]
print("섭씨 온도 리스트: {}".format(temperature_list))  # 섭씨 온도 출력

 

여기까지 작성한 다음에....? 어떤 파라미터를 입력하고 출력하는지 모르겠다.

화씨 온도를 넣고 섭씨를 넣는 건 알겠는데 list값을 하나하나 넣어줘야 하나?

 

-> 까지 생각하고 좀 더 보니까 알고보니 문제에 파라미터로 화씨온도를 받으라고 써 있었다.....

 

# 화씨 온도에서 섭씨 온도로 바꿔 주는 함수
def fahrenheit_to_celsius(fahrenheit):
    return (fahrenheit - 32) * 5 / 9


temperature_list = [40, 15, 32, 64, -4, 11]
print("화씨 온도 리스트: {}".format(temperature_list))  # 화씨 온도 출력

print("섭씨 온도 리스트: {}".format(fahrenheit_to_celsius(temperature_list))  # 섭씨 온도 출력

 

이렇게 바꿔서 넣었는데

  File "main.py", line 10
    
                                                                                                               ^
SyntaxError: unexpected EOF while parsing

 

개 큰 오류 발생

 

   파이썬 코드가 끝났는데, 문법적으로 아직 ‘뭔가 더 있어야 하는데’ 없는 경우에 발생하는 전형적인 구문 오류야.
   즉, 열린 괄호, 따옴표, 블록, 들여쓰기, if/for/while 같은 게 제대로 닫히지 않았다는 뜻

 

이라고 합니다. 들여쓰기 하나도 중요하게 작용하는 듯.

무의미한 line10이 한줄 추가되어 있어서 그런가 싶어서 삭제해보니 또 실행오류;

 

# 화씨 온도에서 섭씨 온도로 바꿔 주는 함수
def fahrenheit_to_celsius(fahrenheit):
    return (fahrenheit - 32) * 5 / 9


temperature_list = [40, 15, 32, 64, -4, 11]
print("화씨 온도 리스트: {}".format(temperature_list))  # 화씨 온도 출력

i = 0
while i <= 6:
    temperature_list[i] = round(fahrenheit_to_celsius(temperature_list[i]), 1)
    i += 1
    
print("섭씨 온도 리스트: {}".format(temperature_list))  # 섭씨 온도 출력

 

새롭게 코드 작성하였으나, while에서 인덱스 범위 오류..

 

모범답안

# 화씨 온도에서 섭씨 온도로 바꿔 주는 함수
def fahrenheit_to_celsius(fahrenheit):
    return (fahrenheit - 32) * 5 / 9


temperature_list = [40, 15, 32, 64, -4, 11]
print("화씨 온도 리스트: {}".format(temperature_list))  # 화씨 온도 출력

# 리스트의 값들을 화씨에서 섭씨로 변환하는 코드
i = 0
while i < len(temperature_list):
    temperature_list[i] = round(fahrenheit_to_celsius(temperature_list[i]), 1)
    i += 1

print("섭씨 온도 리스트: {}".format(temperature_list))  # 섭씨 온도 출력

 

피드백)

 

1. 리스트 인덱스는 0부터 시작이다.....

2. 리스트 파라미터 값 바꾸는 방법 익숙해지자

3. len문으로 작성하는 것이 직접 정수를 입력하는 것보다 수정할 때, 더 편하다.