Python, распечатайте все плавания к 2 десятичным разрядам в выводе

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

Это - то, что я имею:

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

Который очень грязен, и выглядит плохо. Существует ли способ сделать какое-либо плавание в том помещенном '%.2f'?

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

61
задан Omar 30 September 2012 в 14:24
поделиться

4 ответа

Google для «Zend Mock Examsests». Это принесет результаты, такие как , этот форум поток с вопросами от онлайн-экзаменов MOCK , которые должны подготовить вас к сертифицированному экзамену Инженер Zend.

Тем не менее, если вы отправляете какие-либо вопросы кандидатов, таких как это, очень мало, что они помешали бы их просто погружены с ответами, поэтому я нахожу немного ценности в этом. В основном, если вы получите представление о том, что вы ищете в своих заявителях, вы сможете задать им правильные вопросы.

-121--1415176-

Ну, по крайней мере, убрать его следующим образом:

print "%.2f kg = %.2f lb = %.2f gal = %.2f l" % (var1, var2, var3, var4)
74
ответ дан 24 November 2019 в 17:09
поделиться
- 3632174-

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

print '%(kg).2f kg = %(lb).2f lb = %(gal).2f gal = %(l).2f l' % {
    'kg': var1,
    'lb': var2,
    'gal': var3,
    'l': var4,
}
7
ответ дан 24 November 2019 в 17:09
поделиться
- 3643234-

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

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'

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

Отредактируйте: Использовать синтаксис «Имя = значение = значение», просто измените элемент-мудрую работу в понимании списка:

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'
25
ответ дан 24 November 2019 в 17:09
поделиться

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

print         '%.2f' % var1, \
      'kg =' ,'%.2f' % var2, \
      'lb =' ,'%.2f' % var3, \
      'gal =','%.2f' % var4, \
      'l'
1
ответ дан 24 November 2019 в 17:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: