Я новичок в python и проходил через некоторый предварительно написанный код, чтобы получить лучшее сцепление с ним. Этот код пытается получить количество цифр, которые каждый цикл без прерывания имеет, когда число находится в знаменателе до 1. Например. 1/3 = 0. (3) он имеет цикл 1. Similary 7 имеет цикл 6, как 1/7 = 0. (142856)python code explain reqd
def get_decimals(num, div, current=([], [])):
"""Return a tuple (integer_part, decimal_part, cycle_length) for num/div"""
headtail = lambda lst: (lst[0], lst[1:])
memory, values = current
if values and num == 0:
integer, decimals = headtail(values)
return integer, decimals, 0
elif num in memory:
integer, decimals = headtail(values)
print integer, decimals
lencycle = len(memory) - memory.index(num)
return integer, decimals, lencycle
a, b = divmod(num, div)
return get_decimals(10*b, div, (memory+[num], values+[a]))
print max((get_decimals(1, num)[2], num) for num in xrange(2, 10))[1]
может кто-нибудь, пожалуйста, объясните мне в контексте код, вставленный выше. Я не мог понять следующее:
индексы [2] и [1] в последнем заявлении печати.
memory.index(num)
этот внутри функции get_decimals на линии от 4-го до последнего.