Прежде всего, линия seconds = []
полностью избыточными: вы просто создать новую переменную, которая содержит пустой список, и вы тут же отвергая эту переменную как только цикл входит в первую итерация.
Во-вторых, я не уверен, что выражение range(len(str(s)))
подразумевается означает: вы конвертируете количество секунд (например, 10
) в строку "10"
, а затем взять длину этой строки 2
и затем итерация в диапазоне [0, 1]
. Таким образом, переменная цикла seconds
получает значения 0
и 1
во время 2 итераций цикла.
То, что вычисляется в результате, никоим образом не является тем, чего вы пытаетесь достичь. На самом деле, я не уверен, почему вы решили использовать цикл вообще для преобразования единственного целочисленного значения в один кортеж.
Для того, чтобы достичь того, чего вы хотите, вы просто должны сделать основные математические вычисления независимо от языка программирования:
def hms(s):
h = s/3600
s -= h * 3600
m = s/60
s -= m * 60
return (h, m, s)
print hms(10000) # => (2, 46, 40)
print hms(1000) # => (0, 16, 40)
Если вам нужно работать над списком таких значений, просто определить другую функцию но не усложнять основную логику:
def hms_list(amounts):
ret = []
for amount in amounts:
ret.append(hms(amount))
return ret
print hms_list([1000, 10000]) # => [(0, 16, 40), (2, 46, 40)]
последнего также может быть уменьшен до более компактной формы, используя список понимание:
def hms_list(amounts):
return [hms(amount) for amount in amounts]
Примечание: на Python 3.x, оператор /
даст вам float
результата, а не вниз целой этажный, так для того, чтобы выше алгоритм для работы там, вам нужно использовать оператор целочисленного деления //
который также будет работать, по крайней мере, на Python 2.7, например:
h = s // 3600
Люди будут знать, что это школьное задание, поверьте мне. Может быть, лучше не упоминать это явно. – JensG
Я не планирую копировать что-либо, я просто хочу понять, где я запутался ... – Morgormir
У меня такое ощущение, что вы пытаетесь обойтись, делая как можно меньше работы, а не тратить свое время и пытаться чтобы понять, что вы делаете: http://learnpythonthehardway.org –