新年这几天,出入了各种停车场,我产生了一个想法——用代码简单的实现一下其中的逻辑:
1、入场。
入场后记录车牌号。
如果停满就不接收新入场车辆。
不出场不能再次进场。
2、出场。
出场要按计时方式收费。
出场后删除在场记录。
没有入场信息不能出场。
import datetime
#用字典记录在库车辆的车牌和入场时间
zaiku={}
#这是停车场的容量,设置为3辆吧。
total=3
while 1:
#剩余车位数
left=max((total-len(zaiku)),0)
print(f'剩余车位:{left}个')
#车辆在入口还是出口要手动输入
cr=input('出入口:')
if cr=='r':#这是在入口的情况
#没有车位了就不接收车辆了
if left==0:
print('停车场已满!')
else:#这是有车位的情况
#手动输入车牌号
a=input('车牌号:')
#如果有在场信息,就不接收
if a in zaiku.keys():
print('错误,车辆已入场')
else:#没有在场信息就正常接收,并记录进入时间
zaiku[a]=datetime.datetime.now()
print(f'在场车辆列表:{zaiku.keys()}')
elif cr=='c':#这是在出口的情况
b=input('车牌号:')#手动输入车牌号
if b in zaiku.keys():#有在场信息
time=datetime.datetime.now()#出场时间
money=time-zaiku[b]#计算停车时长
print(f'停车时间{int(money.total_seconds())}秒')
#停车费每秒钟1元钱,前15秒钟免费
print(f'出场成功,已支付{max((int(money.total_seconds())-15),0)}元')
#删除在场信息
del zaiku[b]
else:#无在场信息
print('错误,车辆未入场')
print(f'在场车辆列表:{zaiku.keys()}')
else:#输错入出口的情况
print('识别错误,请重新识别')
代码很简单,大家可以复制运行一下。
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/74955
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!