【问题标题】:How can I adjust my code so that the only output is the final iteration?如何调整我的代码,以便唯一的输出是最终迭代?
【发布时间】:2016-04-14 22:57:50
【问题描述】:

当我运行我的代码时:

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 个值的列表?

【问题讨论】:

    标签: python python-3.x iteration


    【解决方案1】:

    取消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
    

    【讨论】:

      【解决方案2】:

      您在 inside 循环中打印,所以它在每次迭代时打印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)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-01-05
        • 2021-02-26
        • 2015-06-13
        • 2019-10-28
        • 1970-01-01
        • 2014-12-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多