如何调整我的代码,以便唯一的输出是最后的迭代?

时间:2016-04-14 22:57:50

标签: python python-3.x iteration

当我运行我的代码时:

import math as ma

C = 10
n_ran = 5
f_t = 0.17
n_val = []

# Calculation
for n in range(n_ran):
    f_t = 0.17
    e_bit = 1- ma.e**(f_t*C)
    n_add = ((f_t*C)**n)/ma.factorial(n)
    n_val.append(n_add)
    print(n_val)

我接收每次迭代加上前一次迭代,如下所示:

[1.0]
[1.0, 1.7000000000000002]
[1.0, 1.7000000000000002, 1.4450000000000003]
[1.0, 1.7000000000000002, 1.4450000000000003, 0.8188333333333335]
[1.0, 1.7000000000000002, 1.4450000000000003, 0.8188333333333335, 0.34800416666666684]

如何更改我的代码以获得包含所有5个值的列表的最终迭代?

2 个答案:

答案 0 :(得分:2)

取消print()来电。

for n in range(n_ran):
    f_t = 0.17
    e_bit = 1- ma.e**(f_t*C)
    n_add = ((f_t*C)**n)/ma.factorial(n)
    n_val.append(n_add)

print(n_val)

我还建议使用不同的格式:

print(*n_val, sep='\n')

结果:

1.0
1.7000000000000002
1.4450000000000003
0.8188333333333335
0.34800416666666684

答案 1 :(得分:0)

你在里面循环时打印,所以它会在每次迭代时打印list n_val

您可以将print语句移出循环

for n in range(n_ran):
    f_t = 0.17
    e_bit = 1- ma.e**(f_t*C)
    n_add = ((f_t*C)**n)/ma.factorial(n)
    n_val.append(n_add)

print(n_val)