Widzę, że nie mogę:
"%b %b" % (True, False)
w Pythonie. Zgadłem %b
na b (oolean). Czy jest coś takiego?
Widzę, że nie mogę:
"%b %b" % (True, False)
w Pythonie. Zgadłem %b
na b (oolean). Czy jest coś takiego?
Odpowiedzi:
>>> print "%r, %r" % (True, False)
True, False
To nie jest specyficzne dla wartości logicznych - %r
wywołuje __repr__
metodę na argumencie. %s
(dla str
) powinno również działać.
%r
i %s
?
print(str("foo"))
po prostu drukuje foo
w nowej linii. print(repr("foo"))
jednak wypisuje 'foo'
w nowym wierszu, łącznie z cudzysłowami, ponieważ to właśnie musisz wpisać interpreter języka Python, aby uzyskać odpowiedni obiekt dla argumentu w pythonie.
Możesz także użyć klasy String klasy 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);
Takie są wyniki
True False
True False
1 0
1.000000 0.000000
1.000000e+00 0.000000e+00
Niektóre %
specyfikatory typu -format ( %r
, %i
) nie są dostępne. Aby uzyskać szczegółowe informacje, zobacz Mini-język specyfikacji formatu
{:_^5}
Dostaniesz, '__1__'
chyba że jesteś str(...)
logicznym.
Aby zaktualizować to dla Python-3, możesz to zrobić
"{} {}".format(True, False)
Jeśli jednak chcesz faktycznie sformatować ciąg (np. Dodać spację), napotkasz Pythona rzutującego wartość logiczną na podstawową wartość C (tj.
>>> "{:<8} {}".format(True, False)
'1 False'
Aby obejść ten problem, możesz zarzucić True
jako sznurek, np
>>> "{:<8} {}".format(str(True), False)
'True False'