我是python的新手,並且正在閱讀一些預先編寫的代碼以更好地掌握它。 此代碼嘗試獲取每個非終止週期在數字分母爲1時的數字位數。例如, 1/3 = 0(3)有否1. 與之相似7一個週期具有6爲1/7 = 0。(142856)python代碼解釋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行到最後一行。