Найти - Пользователи
Полная версия: Форматированый вывод массивов
Начало » Python для новичков » Форматированый вывод массивов
1
Logan
Подскажите как форматировано вывести элементы массивов в 6 столбиков, с точностью двух цифр после запятой, по аналогии как получается с командой
 print '%.2f   %.2f    %2.f     %.2f   %.2f   %2.f   %2.f  %2.f\n' % (x, fx, fd, cd, bd, fd2, cd2, bd2
Самому удалось найти только как вывести первый массив в столбик без нужной мне точности.



from math import sin
def f(x):
    return sin(3*x)+sin(2*x)+sin(x)
h=0.01
x=3
k=3
fx=f(x)
a = []
for i in range(100):
    x=x+h
    fx=f(x)
    fd=(f(x+h)-f(x))/h
    fd2=(f(x+2*h)-2*f(x+h)+f(x))/h**2
    bd=(f(x)-f(x-h))/h
    bd2=(f(x)-2*f(x-h)+f(x-2*h))/h**2
    cd=(f(x+h)-f(x-h))/(2*h)
    cd2=(f(x+h)-2*f(x)+f(x-h))/h**2
    a.append(fd)
print 'stolbik1'
print '\n'.join([str(entry) for (n, entry) in zip(range(0,len(a)), a)])
#    print '%.2f   %.2f    %2.f     %.2f   %.2f   %2.f   %2.f  %2.f\n' % (x, fx, fd, cd, bd, fd2, cd2, bd2)
JOHN_16
я в вашем коде вижу только массив a и строчку с принтом которая к этому a не относится. Следовательно, считаю задача сформулирована некорректно.
Logan
Строка с принтом выводит содержимое массива “а” в столбик, проверял и это работает… Вообщем суть в том чтобы записать значения “x, fx, fd, cd, bd, fd2, cd2, bd2” в массив, что в принципе понятно как, а вот отобразить все значения в 6 столбиков не знаю как с точностью 2.f.
JOHN_16
Решений тут счаз не мало предложат. Например такое:
from math import sin
def f(x):
    return sin(3*x)+sin(2*x)+sin(x)
h=0.01
x=3
k=3
fx=f(x)
a = []
for i in range(100):
    x=x+h
    fx=f(x)
    fd=(f(x+h)-f(x))/h
    fd2=(f(x+2*h)-2*f(x+h)+f(x))/h**2
    bd=(f(x)-f(x-h))/h
    bd2=(f(x)-2*f(x-h)+f(x-2*h))/h**2
    cd=(f(x+h)-f(x-h))/(2*h)
    cd2=(f(x+h)-2*f(x)+f(x-h))/h**2
    a.append((x, fx, fd, cd, bd, fd2, cd2, bd2))
    
for i in a:
    print '\t'.join(['{:.2f}'.format(x) for x in i])
py.user.next
>>> lst = [[1, 2, 3, 1, 2, 3], [4, 5, 6, 4, 5, 6]]
>>> 
>>> fmt = '{:7.2f} ' * len(lst[0])
>>> 
>>> for i in lst:
...     print fmt.format(*i)
... 
   1.00    2.00    3.00    1.00    2.00    3.00 
   4.00    5.00    6.00    4.00    5.00    6.00 
>>>
ещё
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB