Я написал код для определения скорости движения (мин/км), преобразую его в скорость (км/ч), а затем в зависимости от градиента наклона и от того, вверх или вниз, рассчитывается потерянная скорость (км/ч). Затем отображается новая скорость движения вместе с новым темпом и временем, когда ваш маршрут изменяется.Проблемы с отображением результатов времени в Python
Проблема заключается в том, что я вводил темп, такой как 3:50 (мин/км) с наклоном в гору 1%, новый темп хода составляет 3:60 (мин/км). Как получить скрипт для отметки до 4:00 в этом случае? Также, если введен 3:55 (мин/км), новый темп хода составляет 4: 5 (мин/км), когда он должен читать 4:05 (мин/км). Как это изменить?
Сценарий:
import math
print('Q1')
SurveyPace = input("Running Pace (min/km): \n "). split(":")
SurveyPace = float(SurveyPace[0])*60 + float(SurveyPace[1])
Speed = 3600/SurveyPace
print("Original running speed =","%.2f" % round(Speed,2), 'km/hr')
print("--------------------------------------------------------")
print('Q2')
SlopeDirection = int(input('For Uphill press 1 \nFor Downhill press 2 \n '))
print("--------------------------------------------------------")
print('Q3')
SlopeGradient = float(input('Percentage gradient(without the % symbol)?\n '))
print("--------------------------------------------------------")
print('CALCULATED RESULTS')
print("--------------------------------------------------------")
if SlopeDirection == 1:
Change = - 0.65 * SlopeGradient
if SlopeDirection == 2:
Change = + 0.35 * SlopeGradient
print ('This route alters your speed by \n', Change,'km/hr')
print("--------------------------------------------------------")
AdjustedSpeed = Speed + Change
AdjustedPace = 3600/AdjustedSpeed
PaceSecs = round(AdjustedPace % 60)
PaceMins = math.floor(AdjustedPace/60)
print("New running speed is \n","%.2f" % round(AdjustedSpeed,2), 'km/hr')
print("--------------------------------------------------------")
print("New running pace is \n", str(PaceMins) + ":" + str(PaceSecs), 'min/km')
print("--------------------------------------------------------")
print("This route alters your pace by \n", int(PaceSecs + (PaceMins*60)) - SurveyPace, "sec/km") #Prints the time change incured
print("--------------------------------------------------------")
Благодаря
Здесь есть ряд проблем, в том числе, я думаю, в вашей логике - почему «SurveyPace» равно количеству минут, умноженному на 60 * плюс * на количество километров? Это ничего не значит. Кроме того, ознакомьтесь с руководством по стилю Python PEP8; неправильное использование имен переменных смешанного случая. – Jeff