2016-04-14 1 views
0

Когда я запускаю мой код:Как я могу настроить свой код так, чтобы единственным выходом была последняя итерация?

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

Unindent print() call.

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 
0

Вы печати в то время как внутри петли, так что это печать listn_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) 
Смежные вопросы