Я вижу, я не могу сделать:
"%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'