python停车场收费问题

  1. 停车场收费问题。收费标准:4元/小时,24小时内最高50元;如果有优惠券,两小时内免费;月租卡300元/月,没有按月缴费的月租卡,超过一天不收费,超过2天按5折收费,超过3天按小时收费;如果车牌号是“粤A888**”,永久免费,如果是车牌号是“粤A88**”,停车费7折。产生一个随机数,作为中奖金额减免停车费。中奖金额最大不超过停车费

兄弟拿到答案发我一份

有偿么?

个人觉得这就是对python语法的初级应用:

每个人编写出来的都不会一样

下面展示我的代码:(思路是这样,没有进行测试)

import random


# 24小时内最高50元 至少需要13小时  12小时01分钟也按照一小时收费
# 总计收费我没有将月租计算在内
# 改代码没有测试,可能出错
# 就是简单的基础语法应用


hour_rent =  4
month_rent = 300
have_month_rent = False
coupon = False



def calculate_charge(time,car_id,coupon,have_month_rent):
    '''
    time : 停车时常
    coupon : 优惠卷
    have_month_rent : 是否有月租卡
    car_id : 车牌号码
    '''
    if car_id[0:5] == '粤A888':
        return 'free parking'
    elif not have_month_rent :    # 没有月租卡
        if time <= 24 :           # 24小时内
            if coupon and time <= 2:
                return 'free parking'
            elif time >=13:                         # 13-24属于收费上限
                if car_id[0:4] == '粤A88':
                    return 50*0.7 - random.randint(0,50*0.7)
                else:
                    return 50- random.randint(0,50)
        else :                    # 超过24小时
            total_free = hour_rent*time
            if car_id[0:4] == '粤A88':
                return total_free*0.7-random.randint(0,total_free*0.7)
            else:
                return total_free-random.randint(0,total_free)
    elif have_month_rent:       # 有月租卡
        if time < 48:           # 且没有超过两天  不收费
            return  0
        elif time < 72 :         # 且没有超过三天  五折收费
            total_free = time*hour_rent*0.5
            if  car_id[0:4] == '粤A88':
                return total_free - random.randint(0,total_free)
            else:    
                return total_free*0.7 - random.randint(0,total_free*0.7)
        else:                   # 且超过三天      按小时计费
            total_free = time*hour_rent
            if car_id[0:4] == '粤A88':
                return total_free*0.7 - random.randint(0,total_free*0.7)
            else:
                return total_free - random.randint(0,total_free)