Я вижу, я не могу сделать:
"%b %b" % (True, False)
в Python. Я догадался %bо б (оолеан). Есть ли что-то подобное?
Я вижу, я не могу сделать:
"%b %b" % (True, False)
в Python. Я догадался %bо б (оолеан). Есть ли что-то подобное?
Ответы:
>>> print "%r, %r" % (True, False)
True, False
Это не относится к логическим значениям - %rвызывает __repr__метод для аргумента. %s(для str) также должно работать.
%rи %s?
print(str("foo"))просто печатает fooна новой строке. print(repr("foo"))однако печатает 'foo'на новой строке, включая кавычки, поскольку это то, что вам нужно ввести в интерпретаторе python, чтобы получить соответствующий объект для аргумента в python.
Вы также можете использовать класс Formatter строки
print "{0} {1}".format(True, False);
print "{0:} {1:}".format(True, False);
print "{0:d} {1:d}".format(True, False);
print "{0:f} {1:f}".format(True, False);
print "{0:e} {1:e}".format(True, False);
Это результаты
True False
True False
1 0
1.000000 0.000000
1.000000e+00 0.000000e+00
Некоторые из %спецификаторов типа -format ( %r, %i) недоступны. Подробнее см. Спецификацию формата на мини-языке
{:_^5}вы получите, '__1__'если вы не str(...)булевы.
Чтобы обновить это для Python-3, вы можете сделать это
"{} {}".format(True, False)
Однако, если вы хотите отформатировать строку (например, добавить пробел), вы столкнетесь с тем, что Python преобразует логическое значение в базовое значение C (например, int), например
>>> "{:<8} {}".format(True, False)
'1 False'
Чтобы обойти это, вы можете использовать Trueкак строку, например,
>>> "{:<8} {}".format(str(True), False)
'True False'