Печать данных в консоли в python - PullRequest
1 голос
/ 14 апреля 2020

Я хочу напечатать некоторые данные на экране в python, я использую форматирование строк так, чтобы они были представлены упорядоченным и округленным способом, эти данные печатаются на основе условных данных.

Я создал две переменные: если a> b, округленные числа должны быть напечатаны следующим образом:

01         -807.8
02        -6337.8
03        -6045.9
04       -15531.6
05       -26803.0
06       -40534.2
07        20364.4
08        12678.4

Но если a 01 Does not apply 02 Does not apply 03 Does not apply 04 Does not apply 05 Does not apply 06 Does not apply 07 Does not apply 08 Does not apply 09 Does not apply 10 Does not apply Проблема в том, что: при выполнении команды, если a> b, значения выводятся на печать, но если a TypeError: type str не определяет метод __round_.

Есть ли способ исправить эту проблему?

Мой код выглядит следующим образом:

datos = [[1,1154,5412],[2,4527,5698],[3,2879,-5687],[4,5547,-5698],[5,7658,6589],
     [6,9651,-4565],[7,-4156,-6548],[8,-2264,6568],[9,-1657,6597],[10,-1643,5481]]

for i in range(len(datos)):

    a = 7
    b = 8

    if a < b:                
        Respuesta = 'Does not apply'                  
    elif a > b:            
        Respuesta = (0.7*datos[i][0]*datos[i][1])/(b-a)    

    print(f"{i+1:02} {round(Respuesta, 2):>20}")

Ответы [ 2 ]

1 голос
/ 14 апреля 2020

Несколько способов, но это, наверное, самый простой:

    if a < b:                
        Respuesta = 'Does not apply'                  
    elif a > b:            
        Respuesta = round((0.7*datos[i][0]*datos[i][1])/(b-a), 2)

    print(f"{i+1:02} {Respuesta:>20}")
0 голосов
/ 14 апреля 2020

, если a < b вашей переменной Respuesta будет эта строка 'Does not apply', которая будет использоваться с функцией round , которая повысит вашу ошибку, поскольку встроенная функция round принимает только числа в качестве аргумента

вы можете использовать:

for i in range(len(datos)):

    a = 7
    b = 8

    if a < b:                
        print('Does not apply')
    elif a > b:            
        Respuesta = (0.7*datos[i][0]*datos[i][1])/(b-a)    

        print(f"{i+1:02} {round(Respuesta, 2):>20}")

, поскольку в вашем коде a всегда <<code>b (7 <8), вы можете использовать следующую одну строку : </p>

print(*['Does not apply'] * len(datos), sep='\n')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...