Расчет платы за парковку - PullRequest
0 голосов
/ 16 октября 2019

Я пытаюсь рассчитать стоимость парковки с помощью рекурсии, когда пользователи вводят время начала парковки до конца парковки

Плата за парковку выглядит следующим образом:

  • 07: 00до 11:00 - 1,30 долл. США за 30 минут
  • 11: 00 до 17:00 - 1,50 долл. США за 30 минут
  • 17: 00–22:30 - 0,80 долл. США за 30 минут
  • 22: 30–07:30 - 0,70 долл. США за 30 минут, но не более 5,60 долл. США

Изменить:

Извините, если я кого-то обидел. Я новичок в Python и не знаком с форумом. Вы можете понизить голос столько, сколько захотите, но я действительно надеюсь, что смогу понять это так, как пытался весь день.

Это файл Excel, содержащий информацию о плате за парковку.

df = pd.read_csv("carparkFees.csv")

output = (df.loc[df['Carpark Name'] == 'ANGULLIA PARK OFF STREET'])
userOutput = output[
['Lot Type', 'WeekDay Rates', 'WeekDay Minimum', 'Saturday Rates', 'Saturday Minimum', 'Sunday & PH Rates',
 'Sunday & PH Minimum', 'Start Time', 'End Time']]

timeStart = '2019-10-16 08:00:00'
timeEnd = '2019-10-16 23:00:00

timeStart = pd.to_datetime(timeStart).strftime('%Y/%m/%d %H:%M')
timeStart = datetime.datetime.strptime(timeStart, '%Y/%m/%d %H:%M')
startingTime = pd.to_datetime(timeStart, format='%H:%M').time()

timeEnd = pd.to_datetime(timeEnd).strftime('%Y/%m/%d %H:%M')
timeEnd = datetime.datetime.strptime(timeEnd, '%Y/%m/%d %H:%M')

count = 0
def countCarPrice(timeStart, timeEnd, startingTime, count):
a = 0
b = 0
for n in userOutput['Start Time']:
    for y in userOutput['End Time']:
        while a < len(userOutput):
            while userOutput['Lot Type'].iloc[a] == 'Car':
                while (pd.to_datetime(userOutput['Start Time'].iloc[b], format='%H:%M').time() <= startingTime < pd.to_datetime(userOutput['End Time'].iloc[b], format='%H:%M').time()) and timeStart != timeEnd:
                    minMins = int(userOutput['WeekDay Minimum'].iloc[b].replace('mins', ""))
                    timeStart += datetime.timedelta(minutes=minMins)
                    startingTime = pd.to_datetime(timeStart, format='%H:%M').time()
                    count += float(userOutput['WeekDay Rates'].iloc[b].replace('$', ""))

                b += 1
                a += 1
            return count + countCarPrice(timeStart, timeEnd, startingTime, count)
print countCarPrice(timeStart, timeEnd, startingTime, count)
  1. Прямо сейчас приведенный выше код выдает ошибку при рекурсии. Если я только верну счетчик, он будет рассчитываться как обычно.

  2. Я не могу определить часть, где она проходит 22:30, поскольку это верно для времени начала <22:30, но неверно для времени начала <07:00 </p>

И я застрял здесь. Еще раз прошу прощения, если я допустил какие-либо ошибки, и приветствую любую конструктивную критику, если вы считаете, что мое кодирование действительно паршиво.

...