2015-05-01 27 views
5

Python aşağıdaki üç ifadeden ilkini nasıl ayrıştırıyor? (I == ve in aynı önceliğe sahip oldukları için, ikinci olarak aynı olması bekleniyor.)1 == 0 in (0,1) Yanlış; niye ya?

>>> 1 == 0 in (0,1), (1==0) in (0,1), 1 == (0 in (0,1)) 
(False, True, True) 
+0

Karmaşıklık yaygın olanıdır ve arama terimlerinin çoğu arama motorunun görmezden geldiği noktalama işaretleri içerdiğinden, kuralların her zaman zor olması her zaman zor olacaktır. Yayınınız, insanlara standartlara rehberlik etmek için ek anahtar kelimeler sağlamaya yardımcı olabilir. Bende kalırdım. –

cevap

5

documentation of comparison operators bakınız: bunlar zincirli yerine gruplandırılır. Yani 1 == 0 in (0,1), (1==0) and (0 in (0,1))'a eşdeğerdir, ki bu açıkça yanlıştır.

+0

türünün ... "Yanlış" (0,1) 'e eşit olmasına rağmen yine de doğru –

+0

@JoranBeasley Yanlış. 'False in (0,1)' soruda gösterildiği gibi 'True' değerini verir. –

+1

Tamam Tamam, sen kazandım Yanlış ... Yanıtı yeterince okumamıştım: P –

İlgili konular