Я должен произвести 4 различных плавания к двум десятичным разрядам.
Это - то, что я имею:
print '%.2f' % var1,'kg =','%.2f' % var2,'lb =','%.2f' % var3,'gal =','%.2f' % var4,'l'
Который очень грязен, и выглядит плохо. Существует ли способ сделать какое-либо плавание в том помещенном '%.2f'?
Примечание: Использование Python 2.6.
Google для «Zend Mock Examsests». Это принесет результаты, такие как , этот форум поток с вопросами от онлайн-экзаменов MOCK , которые должны подготовить вас к сертифицированному экзамену Инженер Zend.
Тем не менее, если вы отправляете какие-либо вопросы кандидатов, таких как это, очень мало, что они помешали бы их просто погружены с ответами, поэтому я нахожу немного ценности в этом. В основном, если вы получите представление о том, что вы ищете в своих заявителях, вы сможете задать им правильные вопросы.
-121--1415176-Ну, по крайней мере, убрать его следующим образом:
print "%.2f kg = %.2f lb = %.2f gal = %.2f l" % (var1, var2, var3, var4)
Если вы ищете читабельность, я считаю, что это тот код:
print '%(kg).2f kg = %(lb).2f lb = %(gal).2f gal = %(l).2f l' % {
'kg': var1,
'lb': var2,
'gal': var3,
'l': var4,
}
Если вы просто хотите преобразовать значения в приятные яркие строки, выполните следующие действия:
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'
Не так прямо, как ты хочешь это написать, нет. Одним из конструктивных принципов Python является "Explicit is better than implicit" (см. import this
). Это означает, что лучше описать то, что вы хотите, чем иметь выходной формат, зависящий от какой-то глобальной настройки форматирования или чего-то в этом роде. Конечно, можно было бы отформатировать код по-другому, чтобы он выглядел красивее:
print '%.2f' % var1, \
'kg =' ,'%.2f' % var2, \
'lb =' ,'%.2f' % var3, \
'gal =','%.2f' % var4, \
'l'