Подтвердить что ты не робот

Python, напечатать все поплавки до 2 десятичных знаков в выводе

Мне нужно вывести 4 разных поплавков в два десятичных знака.

Это то, что у меня есть:

print '%.2f' % var1,'kg =','%.2f' % var2,'lb =','%.2f' % var3,'gal =','%.2f' % var4,'l'

Это очень нечисто и выглядит плохо. Есть ли способ сделать какой-либо флоат в этом случае, поставьте '%.2f'?

Примечание. Использование Python 2.6.

4b9b3361

Ответ 1

Хорошо, я бы по крайней мере очистил его следующим образом:

print "%.2f kg = %.2f lb = %.2f gal = %.2f l" % (var1, var2, var3, var4)

Ответ 2

Если вы просто хотите преобразовать значения в красивые строки, сделайте следующее:

twodecimals = ["%.2f" % v for v in vars]

В качестве альтернативы вы также можете распечатать единицы, как у вас, в вашем вопросе:

vars = [0, 1, 2, 3] # just some example values
units = ['kg', 'lb', 'gal', 'l']
delimiter = ', ' # or however you want the values separated

print delimiter.join(["%.2f %s" % (v,u) for v,u in zip(vars, units)])
Out[189]: '0.00 kg, 1.00 lb, 2.00 gal, 3.00 l'

Второй способ позволяет легко изменять разделитель (вкладки, пробелы, новые строки, что угодно) в соответствии с вашими потребностями; разделитель также может быть аргументом функции, а не жестко закодированным.

Изменить: Чтобы использовать синтаксис "name = value", просто измените элементную процедуру в понимании списка:

print delimiter.join(["%s = %.2f" % (u,v) for v,u in zip(vars, units)])
Out[190]: 'kg = 0.00, lb = 1.00, gal = 2.00, l = 3.00'

Ответ 3

Если вы ищете читаемость, я считаю, что это тот код:

print '%(kg).2f kg = %(lb).2f lb = %(gal).2f gal = %(l).2f l' % {
    'kg': var1,
    'lb': var2,
    'gal': var3,
    'l': var4,
}

Ответ 4

Синтаксис строки формата.

https://docs.python.org/3/library/string.html#formatstrings

from math import pi
var1, var2, var3, var4 = pi, pi*2, pi*3, pi*4
'{:0.2f}, kg={:0.2f}, lb={:0.2f}, gal={:0.2f}'.format(var1, var2, var3, var4)

Вывод будет:

'3.14, kg=6.28, lb=9.42, gal=12.57'

Ответ 5

Я только что открыл круглую функцию - он находится в Python 2.7, не уверен в 2.6. Он принимает поплавок и количество dps в качестве аргументов, поэтому круглый (22.55555, 2) дает результат 22.56.

Ответ 6

Не так, как вы хотите это написать, нет. Один из принципов дизайна Python: "Явный лучше, чем неявный" (см. import this). Это означает, что лучше описать то, что вы хотите, а не иметь формат вывода, зависящий от какой-либо глобальной настройки форматирования или чего-то еще. Конечно, вы могли бы форматировать свой код по-другому, чтобы он выглядел лучше:

print         '%.2f' % var1, \
      'kg =' ,'%.2f' % var2, \
      'lb =' ,'%.2f' % var3, \
      'gal =','%.2f' % var4, \
      'l'