Widzę, że nie mogę:
"%b %b" % (True, False)
w Pythonie. Zgadłem %b
na b (oolean). Czy jest coś takiego?
python
boolean
string-formatting
Juanjo Conti
źródło
źródło
Odpowiedzi:
To nie jest specyficzne dla wartości logicznych -
%r
wywołuje__repr__
metodę na argumencie.%s
(dlastr
) powinno również działać.źródło
%r
i%s
?print(str("foo"))
po prostu drukujefoo
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.Jeśli chcesz
True False
użyć:ponieważ
str(True)
jest'True'
istr(False)
jest'False'
.lub jeśli chcesz
1 0
użyć:ponieważ
int(True)
jest1
iint(False)
jest0
.źródło
Możesz także użyć klasy String klasy Formatter
Takie są wyniki
Niektóre
%
specyfikatory typu -format (%r
,%i
) nie są dostępne. Aby uzyskać szczegółowe informacje, zobacz Mini-język specyfikacji formatuźródło
{:_^5}
Dostaniesz,'__1__'
chyba że jesteśstr(...)
logicznym.!s
:'{!s:_^5}'.format(True)
is'True_'
Aby zaktualizować to dla Python-3, możesz to zrobić
Jeśli jednak chcesz faktycznie sformatować ciąg (np. Dodać spację), napotkasz Pythona rzutującego wartość logiczną na podstawową wartość C (tj.
Aby obejść ten problem, możesz zarzucić
True
jako sznurek, npźródło