Widzę, że nie mogę:
"%b %b" % (True, False)
w Pythonie. Zgadłem %bna b (oolean). Czy jest coś takiego?
Widzę, że nie mogę:
"%b %b" % (True, False)
w Pythonie. Zgadłem %bna b (oolean). Czy jest coś takiego?
Odpowiedzi:
>>> print "%r, %r" % (True, False)
True, False
To nie jest specyficzne dla wartości logicznych - %rwywołuje __repr__metodę na argumencie. %s(dla str) powinno również działać.
%ri %s?
print(str("foo"))po prostu drukuje foow 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ć Truejako sznurek, np
>>> "{:<8} {}".format(str(True), False)
'True False'