False == 0 ve True == 1 Uygulama Python ya da dil tarafından garanti edilir?
False == 0
Python True == 1
, Bunun garantisi var mı? Örneğin, aşağıdaki kod, her zaman Python sürümü (ve, muhtemelen, gelecek olanlar mevcut) ne olursa olsun aynı sonucu verir, herhangi bir şekilde garanti mi?
0 == False # True
1 == True # True
['zero', 'one'][False] # is 'zero'
Resmi belgelerine herhangi bir referans çok mutluluk duyacağız!
EditÇok cevaplar belirtildiği, bool
int
devralır. Soru bu nedenle olarak değişiklik olabilir: "bu belgeleri resmi olarak programcılar değerleri Boolean değerleri tamsayılar devralmasını güvenmeyin, derim ki 0
ve 8**?". Bu soru uygulama ayrıntıları nedeniyle başarısız olmaz sağlam kod yazma için geçerlidir!
CEVAP
Python 2'de.x budeğilTrue
False
tayin olmak için mümkün olduğu kadar garantili. Eğer bu durumda bile, ancak boolean True ve False hala düzgün karşılaştırmaları için döndürülür.
Python 3'te.x True
False
anahtar kelimeler ve her zaman 1
0
eşit olacaktır.
Normal şartlar altında 2 ve 3'te her zaman Python Python:
15* *nesne türü int
sınıfı: bool
object
|
int
|
bool
Neden örnek çalışır tek nedeni budur. Dizin listesi sadece tamsayı veya __index__
bir yöntem (teşekkürler mark-dickinson) tanımlayan nesneleri ile çalışır çünkü tam sayı bir alt sınıf olan bir nesne ile işe yarar.
Düzenleme:
Python 3 Bu güncel python sürümü, ve doğrudur. docs for python 2.6 docs for Python 3 de derim:
Tamsayılar iki türü vardır: [...] Tamsayı (int) [...] Mantıksal (bool)
ve boolean fıkra:
Boolean değerleri: Bu temsil gerçek değerleri Yanlış ve Doğru [...] Boolean değerleri gibi davranır, değerleri 0 ve 1, sırasıyla, neredeyse bütün bağlamlarda, istisna olmaktan o zaman dönüştürülmüş bir dize, dizeleri, "False" veya "True" geri döndü, sırasıyla.
Boolean değerleri açıkça Python 2.6 ve 3 tamsayı olarak kabul edilir.
Python 4 gelene kadar güvendesin. ;-)
Python listesi unsurları takılı oldukl...
Nasıl Python dizin tarafından bir list...
Neden "not(True) [False] Doğru mu...
Python bir uygulama için en iyi proje ...
En iyi uygulama Python için Onaylama...