택시를 타면 볼 수 있는 미터기
[전제]
# 사용자에게 목적지까지 거리를 묻는다
# 기본요금의 기본거리 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문 안에 요금 계산 연산을 넣어주어 출력하였다.
혹시라도 발생할 그 이외의 값들이 발생할 경우 오류를 출력하도록 설정하였다.
대략.. 현실에서 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를 주행 했을경우 15,364 원이 나온다 (이렇게나 교통체증이 무섭다)
하지만 여기에선 오류가 있는데 현실에선 15km/h로 처음부터 끝까지 주행하지는 않는다.
따라서 해당 코드는 현실성이 조금 떨어지는 코드라 볼 수 있겠다
하지만 파이썬을 공부해 나아가면서 전제 조건을 설정해두고 만들어 볼 수 있는 현실을 반영한 재밌는(?) 문제였다.
'Python(with Anaconda)' 카테고리의 다른 글
[Python] Class (2) | 2022.10.27 |
---|---|
[Python] secrets, string module 이용한 패스워드 생성 프로그램 만들기 (with random) (2) | 2022.10.27 |
[Python] Lambda (람다함수), Module에 대하여 (0) | 2022.10.26 |
[Python] 서울 신림선 운행 소요시간 계산 프로그램 만들기 (2) | 2022.10.25 |
[Python] Function (0) | 2022.10.25 |
댓글