Python 我不知道';我不知道为什么';我把这个作为我的输出?

Python 我不知道';我不知道为什么';我把这个作为我的输出?,python,algorithm,Python,Algorithm,这个程序应该遍历数组中从位置0开始的数字,并将每个数字与前面的数字相乘。例如,因为3是第一个元素,而左边没有任何元素可以与之相乘,所以它保持不变。对于第二个位置,将7乘以它左边的值3,结果是21被放置在7所在的数组中。用我的数学,我应该得到[3,21,105,630,5670]作为输出,但我得到的是[3,21,315,119070,21266497350] front = [3,7,5,6,9] temp = 1 for i in range(len(front)): print(&qu

这个程序应该遍历数组中从位置0开始的数字,并将每个数字与前面的数字相乘。例如,因为3是第一个元素,而左边没有任何元素可以与之相乘,所以它保持不变。对于第二个位置,将7乘以它左边的值3,结果是21被放置在7所在的数组中。用我的数学,我应该得到[3,21,105,630,5670]作为输出,但我得到的是[3,21,315,119070,21266497350]

front = [3,7,5,6,9]
temp = 1
for i in range(len(front)):
    print("before mult " + str(temp))
    front[i] *= temp
    print(front)
    temp *= front[i]
    print("after mult " + str(temp))
完整输出为:

before mult 1
[3, 7, 5, 6, 9]
after mult 3
before mult 3
[3, 21, 5, 6, 9]
after mult 63
before mult 63
[3, 21, 315, 6, 9]
after mult 19845
before mult 19845
[3, 21, 315, 119070, 9]
after mult 2362944150
before mult 2362944150
[3, 21, 315, 119070, 21266497350]
after mult 50251545504173002500

你在做不必要的乘法运算

front = [3,7,5,6,9]
temp = 1
for i, v in enumerate(front):
    temp *= front[i]
    front[i] = temp

print( front ) 

什么是
temp
?你能出示一张照片吗?请提供预期的照片。显示中间结果与预期结果的偏差。我们应该能够将单个代码块粘贴到文件中,运行它,并重现您的问题。这还允许我们在您的上下文中测试任何建议。我们还希望您能够在错误点之前跟踪有问题的值。你对他们是如何获得这些价值观感到困惑吗?您发布的代码不会试图跟踪这些值。“向我解释这段代码”不是堆栈溢出的主题。完成预期的工作,并询问有关调试跟踪的特定问题。提示:插入简单的
print
调用以报告中间值。