본문 바로가기
Python(with Anaconda)

[Python] 파이썬으로 택시 미터기 요금 계산 프로그램 만들어보기(주행 거리에 따른)

by moveho 2022. 10. 26.

택시를 타면 볼 수 있는 미터기  

[전제]
# 사용자에게 목적지까지 거리를 묻는다 

# 기본요금의 기본거리 1.6km

# 기본요금 4800원

# 1.6km 이상일땐 131m 당 100원추가 (현실반영)

 

-------------------------------------------------------

# 15km/h 미만으로 서행하는경우

# 30초당 100원의 추가요금 발생

 

 

이렇게 두 단계로 코드를 짜보고 추가 조건을 주어 업데이트 해보았다. 아직 많이 부족하다.

 

 

 

택시 미터기를 생각하여 코드를 짜보았다

사용자로 하여금 갈 거리를 입력하게 만들었다.

(정말 현실적으로 유용하게 쓰이려면 출발지와 목적지를 입력하게 만들고 네이버지도나 카카오지도와 연결하여 해당 길에 대한 정보 및 교통정보까지 연동하여 택시요금을 예측 및 계산해주는 프로그램으로 실용적으로 만들어야 겠지만 아직은 너무나도 부족하고 부족하기에 전제로 잡고 만들어 보았다)

distance = float(input ('가실 거리를 입력하시오'))
basicfee = int(4800)

그 후 거리값을 사용자에게 input 받아 함수처리를 해주었다

def taxi_fee (distance):
    distance = float(input('거리를 입력하시오 (m단위로)'))
    fee = (basicfee + ((distance - 1600)/131)*100)
    return round(fee)

 해당 요금에 대한 연산식은

basicfee 를 기본적으로 더해주면서 거리에서 기본요금까지의 미터수(1600m)를 빼준 후 131로 나눠 100으로 곱해주었다

그 후 리턴 값은 라운드 처리해주었다.

 

if distance < 1600:
    print(basicfee)
elif distance >= 1600:
    fee = (basicfee + ((distance - 1600)/131)*100)
    print ("요금은", round(fee), "입니다")
else:
    print ('오류')

또한 if문을 이용하여 1600m 미만일 경우엔 기본요금만 출력되도록 설정해 주었고

1600m 이상이 되었을 때 부턴 추가요금을 계산해주기 위해

elif문 안에 요금 계산 연산을 넣어주어 출력하였다.

혹시라도 발생할 그 이외의 값들이 발생할 경우 오류를 출력하도록 설정하였다.

6000미터의 경우 8156원

대략.. 현실에서 5~6km 탔을때 7500원 정도 나오니 얼추 값이 맞는거 같다!

 

현실에서 교통이 혼잡하여 차가 막히는 경우 택시를 탄 경우

가만히 있기만 해도

택시 미터기에 있는 말은 쉬지않고 달리며

100원씩 증가시켜주는 착한 말을 다들 한번쯤 봤을것이다

그 상황을 생각하여 15km/h 로 서행하는 택시를 탔을 경우 30초당 100원씩 추가요금이 발생하게

조금 더 조건을 추가하여 코드를 만들어봤다.

 

    fee = (basicfee + ((distance - 1600)/100)*131) + (distance)*0.8

이럴경우 연산식만 조금 바꿔주면 된다!

원래의 계산식에서 거리에서 0.8을 곱한 값을 더해주기만 했다!

15km/h 의 경우 분당 이동하는 거리는 250m이다.

30초당 100원씩 추가요금이 발생하기 때문에

30초당 이동하는 거리는 125m라고 생각 할 수 있겠다.

그럼 역으로 125m : 100원 100m : x 로 방정식을 세워 간단히 계산해보면

100m 당 80원의 요금이 추가로 발생하게 된다.

그래서 거리값에 0.8을 곱해주면 완성!

 

6000m 서행주행 하였을때

6000m를 주행 했을경우 15,364 원이 나온다 (이렇게나 교통체증이 무섭다)

 

하지만 여기에선 오류가 있는데 현실에선 15km/h로 처음부터 끝까지 주행하지는 않는다.

따라서 해당 코드는 현실성이 조금 떨어지는 코드라 볼 수 있겠다

하지만 파이썬을 공부해 나아가면서 전제 조건을 설정해두고 만들어 볼 수 있는 현실을 반영한 재밌는(?) 문제였다.

 

 

댓글