当我运行我的代码时:
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个值的列表的最终迭代?
答案 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)