tmp1[1]
- второй символ строки tmp1
. Если это :
или другой не-ди git, он не сможет преобразовать его в число с плавающей точкой.
Если вы введете 2:34.56
, tmp[1]
равно :
когда вы запускаете
seconds = 60.0*60.0*float(tmp2[0])+60.0*float(tmp2[1])+float(tmp1[1])
Скорее всего, вы собираетесь выполнить условие len(tmp2)>2
, только если оно не выполняет другое условие. Одним из решений будет использование равных вместо больше.
if len(tmp2) == 2:
seconds = 60.0*60.0*float(tmp2[0])+60.0*float(tmp2[1])+float(tmp1[1])
elif len(tmp2) == 3:
seconds = 60.0*60.0*float(tmp2[0])+60.0*float(tmp2[1])+float(tmp2[2])
Другой вариант - поменять условия (как это сделал @ Błotosmętek в своем ответе). В любом случае, вы должны использовать elif
(иначе, если) вместо if
для второго условия, чтобы второе условие не выполнялось, если выполнено первое условие.