2010-02-13 23 views
120

ben yapamam bkz: PythonBoole'lar Strings in Python'da nasıl biçimlendirilir?

"%b %b" % (True, False) 

. B (oolean) için %b tahmin ettim. Böyle bir şey var mı? Eğer True False kullanımını istiyorsanız

+1

Sonucu ne elde etmek istiyorsunuz? Doğru ve yanlış? O zaman '% s' istiyorsun. Varsa,% b, ikilidir (baz 2'de olduğu gibi). –

+0

Ho evet! "% s" iyi çalışıyor gibi görünüyor. Bu soruyu cevapla ve cevaplanmış bir cevap al. "% S"% str (False) yapardım. Utanma bana :) –

+3

ilgili belgelere bağlantı: http://docs.python.org/library/stdtypes.html#string-formatting-operations – bernie

cevap

177
>>> print "%r, %r" % (True, False) 
True, False 

Bu mantıksal değerler özgü değildir - %r argüman __repr__ yöntemini çağırır. %s (str için) da çalışmalıdır.

+2

% r' ile '% s' arasındaki en büyük fark nedir? – Stallman

+8

Her zaman bu düşünceyi aklımda tuttum, ama yanılıyorsam düzeltin. % s (ve dolayısıyla str()) nesneyi, insanlar için olabildiğince şeffaf bir şekilde temsil etmeyi amaçlamaktadır. % r (ve dolayısıyla repr()), nesneyi python için olabildiğince şeffaf olarak temsil etmeyi amaçlar. Örneğin, 'print (str (" foo "))' sadece yeni bir satıra 'foo' yazdırır. print (repr ("foo")) ', tırnak işaretleri de dahil olmak üzere yeni bir satırda 'foo' yazdırır, çünkü python'daki argümana karşılık gelen nesneyi almak için python yorumlayıcısını yazmanız gerekir. – bobismijnnaam

50

: str(True) olduğunu

"%s %s" % (True, False) 

çünkü 'True' ve str(False)'False' olduğunu. Eğer 1 0 kullanımını istiyorsanız

ya: int(True) olduğunu

"%i %i" % (True, False) 

çünkü 1 ve int(False)0 olduğunu.

8

Ayrıca kullanabilir

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); 

Bunlar dize

ait Formatter class sonuçları
True False 
True False 
1 0 
1.000000 0.000000 
1.000000e+00 0.000000e+00 

% -Format tipi belirteçleri bazıları

( %r, %i) mevcuttur değil mi. Ayrıntılar için bkz. Format Specification Mini-Language

+3

Biçimlendirme seçeneklerinin eklendiğini unutmayın [bunu düzeltin.] (Http://stackoverflow.com/q/36573222/241211) Ör. '{: _^5}' 'you '' __1 __ '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ile alamazsanız – Michael

+2

1 [!] (Https://stackoverflow.com/a/48326865/241211) '' s': ''{! S: _^5}'. Biçim (True)' gibi tür dönüşümleri ile ilgili sorunları alabilirsiniz. 'True_' – Michael

İlgili konular