본문 바로가기
[Python]/연습문제

섭씨를 화씨로 변환해주는 프로그램 만들기(python)

by 코드몽규 2022. 1. 25.
반응형
python을 사용하여 섭씨를 화씨로 변환해주는 프로그램을 만들어보자


 먼저 섭씨를 화씨로 바꾸는 공식을 알면 쉽게 풀어낼 수 있다. 

화씨(℉) : ((9/5*섭씨(℃)) + 32

 

이를 활용해서 아래와 같은 코드를 짤 수 있다.

c_temp = int(input("섭씨 온도를 입력하세요: " ))
f_temp = ((9/5*c_temp) + 32)
print(f'섭씨 {c_temp}도 는 화씨 {f_temp} 입니다.')
섭씨 온도를 입력하세요: 32
섭씨 32도 는 화씨 89.6 입니다.

위와 같은 결과를 얻을 수 있었다. 언뜻 보면 제대로 해결한것 처럼 보이지만 섭씨온도를 입력할때

int 를 사용하여 실수형태로 입력이 불가능 했다. 또한 화씨의 결과값을 소수점 둘째자리 까지 나타내고 싶었다.

이를 고려하여 아래와 같이 다시 수정하였다.

c_temp = float(input("섭씨 온도를 입력하세요: " ))
f_temp = ((9/5*c_temp) + 32)
print(f'섭씨 {c_temp}도 는 화씨 {f_temp:0.2f} 입니다.')
섭씨 온도를 입력하세요: 32.2
섭씨 32.2도 는 화씨 89.96 입니다.

  • 섭씨를 화씨로 바꿔주는 함수 만들어보기 

 매번 섭씨온도를 화씨로 바꿔줄때마다 코드를 작성하면 너무나도 귀찮을 것이다. 때문에 우리는 섭씨를 화씨로 바꿔주는 간단한 함수를 만들어 놓는다면 많은 수고를 덜 수 있을 것이다. 

#변환하고 싶은 섭씨온도를 입력하면 화씨를 계산해서 반환해주는 함수를 정의한다.
def convert_c_to_f(temp):
    fah=((9 / 5) * temp) + 32
    return (f'{fah:0.2f}')
###################

#간단한 함수를 추가해 보았다. 
def say_hello(msg):
    return 'hello' + ' '+ msg
    
    
print(convert_c_to_f(32.2))
print(say_hello('world'))
89.96
hello world

convert_c_to_f 함수를 통해 쉽게 89.96 이라는 값을 얻을 수 있었다.


  • 모듈화하여 사용해보자 
def convert_c_to_f(temp):
    fah=((9 / 5) * temp) + 32
    return (f'{fah:0.2f}')

위의 코드를 fah_converter.py로 저장한다. 그리고 새로운 module.py를 만든다. 

from fah_converter import convert_c_to_f
#from 패키지명 import 모듈명(.py)
#from 패키지명 import * -> 모듈에 속한 모든 함수를 import할 때 
#from fan_converter import *

print('변환하고 싶은 섭씨온도를 입력하세요')

temp = float(input())

result = convert_c_to_f(temp) #fah_converter 모듈의 convert_c_to_f()함수 호출

print('섭씨온도 =', temp)
print(f'화씨온도 = {result}')

변환하고 싶은 섭씨온도를 입력하세요
35.5
섭씨온도 = 35.5
화씨온도 = 95.90

  • from 패키지명 import * 를 사용했을때 주의점 

 특정하게 사용할 변수를 정하지않고 패키지내에 불특정 다수의 함수 중 하나를 사용할때 import* 를 사용한다. 본인 혼자서 코드를 사용할 때는 적절하게 사용가능하지만 여러사람이 같이 협업하는 프로젝트중 다른 라이브러리에서 import할때 불특정함수가 바로 실행될 수도 있기때문에 사용에 주의해야한다.

 그럼 어떻게 위와 같은 문제를 피해갈 수 있을까? 해결 방법은 import*에서 특정함수를 사용할때 def함수를 해주는 것이다. 아래의 예시를 살펴보자

from fah_converter import *

def my_main():#my_main으로 함수에 구분을 주었다.
    print('변환하고 싶은 섭씨온도를 입력하세요')

    temp = float(input())
    
    result = convert_c_to_f(temp)

    print('섭씨온도 =',temp)
    print(f'화씨온도 = {result}')

if __name__ == "__main__": #지금 실행되고 있는 함수가 my_main함수와 이름이 같으면 직접실행됨을 출력
	my_main()
	print('직접실행됨', __name__)
else:
	print('import되어 실행됨', __name__)

위의 코드를 실행했을 때 아래와 같이 출력되는데, 우리는이를 통해 지금실행되는 함수가 직접실행된 함수인지 import된 함수인지 구별할 수 있고 함수명 또한 알수있다. 

변환하고 싶은 섭씨온도를 입력하세요
32.2
섭씨온도 = 32.2
화씨온도 = 89.96
직접실행됨 __main__
반응형

댓글