본문 바로가기
프로그래밍/PYTHON

[6일차] python 온도변환 프로그램

by B T Y 2017. 2. 15.
반응형

python 온도변환 프로그램

 

 

 

 

 

이때까지 배운 지식을 이용해서 python 온도 변환 프로그램을 만들어본다

 

온도 변환 프로그램에 조건은 다음과 같다

 

 

 


 

 

※ 온도변환 프로그램 조건

 

 

1. 사용자로부터 화씨를 입력받을지 섭씨를 입력받을지를 결정

 "섭씨면 'C'를 화씨면 'F'를 입력해주세요: "

 

2. 입력값이 'C'이면 섭씨를 입력받아서 화씨로 출력

 화씨 = 9.0 / 5.0 x 섭씨 + 32
 "입력한 섭씨 0도는 화씨로 32도 입니다"

 

3. 입력값이 'F'이면 화씨를 입력받아서 섭씨로 출력

 섭씨 = (5 x 화씨 - 160) / 9.0
 "입력한 화씨 32도는 섭씨로 0도 입니다"

 

4. 계속 진행할지를 물어보고 계속 진행하지 않는다면 종료

그렇지 않으면 1번으로 돌아간다

 

 


 

 

* 그리고 입력값이 문자열이 숫자나 문자로 이루어진걸 파악하는 검증 실수일때

실수인지를 파악할수 있는 문자열 특정 함수는 있지만

실수를 파악하는 특정 함수는 없기 때문에 따로 배운것들을 이용해서

입력 값이 실수(혹은 정수)인지 검증 한다

 

* 사용자가 섭씨나 화씨를 결정할때 대문자, 소문자 둘다

상관없이 입력 할수 있도록 했다

 

 

 

 

( 섭씨를 화씨로 변환하는 코드이다 )

 

 

* 숫자로만 이루어진 값이 들어올 경우에는 

isdecimal() 함수로 검증 후에 실수로 변환해서 처리해줄수 있지만

그외에 경우 검증이 필요하다

 

 

 

※ 실수 검증 방법

( 정해진 실수 검증 함수가 없기 때문에 방법은 여러가지 )

 

 

 

1). 숫자로만 이루어지지 않은 값이 들어오면 실수 검증을 위해서

if문 논리표현식에 먼저 split() 함수를 이용해 '.'을 제외시켜서

list 값으로 반환 해주고 그 값을 .join()함수로 묶어 list 값을 다시 하나의 문자열로 만들어주었다.

 

그리고 그 값을 isdecimal()을 이용해서 그 문자열이 숫자들로만 이루어 졌는지

아니면 다른 특수문자들도 섞여 있는지 파악했다.

 

 

 

2). 그 다음에는 처음 입력 받은 값의 길이만큼 반복문 안에

분기문을 돌려서 . (점)의 갯수가 몇개인지 파악한다.

이렇게 해줘야 숫자 중간중간에 .(점)이 여러번 입력 되는 경우를 걸러낼수가 있다.

 

 

* 여기서 문자열 값에 맨 첫번째 원소는 항상 숫자라는 점을 고려해서

반복문을 통해 문자열 원소에 접근할때 항상 두번째 원소인 s[1]부터 접근하게 하였다.

 

* 그리고 .(점)이 한개만 입력 되있더라고 '.3039' 같이 맨앞쪽에 .(점)이 입력될수 있는 상황도 있어

if문으로 제일 첫번째 원소가 숫자이면서 그 이후 문자열 원소에 .(점)이 있을때만 갯수를 카운트 하도록 했다.

 

 

 

3). 반복문이 끝나 문자열의 내용의 .(점)의 갯수를 파악하면 

dot_count(점 갯수를 저장하는 변수)가 1일때는 실수이라는 뜻이므로

나머지 계산식을 수행 후에 결과 값을 출력해준다.

 

 

 

 

 

 

화씨를 섭씨로 변환하는 코드도 계산식 외에 다른 부분은

동일한 방법을 사용했다

 

* 전체를 while문으로 묶어 무한루프를 돌리기 때문에 아래 보이는 'n'이라는 문자가 입력되기전까지는

프로그램은 계속해서 동작하게 되어있고 'n'이 입력되면 종료한다

 

 

 

 

 

* python 실행기를 통해서 프로그램을 돌려보면 모든 부분이 정상적으로 작동하는걸 볼수 있다.

 

 

 

exam.py

 

python_온도변환_프로그램.txt

 

 

 

 

반응형

댓글