>>> item = 2
>>> seq = [1,2,3]
>>> print (item in seq)
True
>>> print (item in seq is True)
False
Neden ikinci print
deyim çıktısı False
?"in" işlecinden beklenmeyen sonuç - Python
>>> item = 2
>>> seq = [1,2,3]
>>> print (item in seq)
True
>>> print (item in seq is True)
False
Neden ikinci print
deyim çıktısı False
?"in" işlecinden beklenmeyen sonuç - Python
in
ve is
, Python'daki karşılaştırma işleçleridir, aynı şekilde, <
ve ==
. bu expr2
dışında
(expr1 <comparison1> expr2) and (expr2 <comparison2> expr3)
sadece bir kere elde edilir Genel olarak,
expr1 <comparison1> expr2 <comparison2> expr3
işlenir. Bu nedenle, örneğin,
beklendiği gibi çalışır. Ancak, herhangi bir zincirleme karşılaştırma operatörü için geçerlidir. Örnekte,
item in seq is True
bütün ifade False yüzden,
(item in seq) and (seq is True)
seq is True
kısım False olarak değerlendirilir. muhtemelen istediği her şeyi elde etmek için, gruplama değiştirmek için parantez kullanın:
print((item in seq) is True)
Click here for the docs. (Seq True) Yanlış ve bu nedenle sizin ifadeniz çıkışları Yanlış
>>>print ((item in seq) and (seq is True))
False
aşağıda gösterildiği gibi
İfadende item in seq is True
içten (item in seq) and (seq is True)
olarak değerlendirilir.
Aşağıdaki cevap doğru değil. type 'bool' argümanı ben (bool False
olarak değerlendirilirse olan) seq is True
değerlendirmek inanıyoruz iterable
Önceki cevap değildir:
In [17]: item in (seq is True)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-17-4e7d6b2332d7> in <module>()
----> 1 item in (seq is True)
TypeError: Yorum doğrulanması bir i açıklıyor sonra item in False
(False
olarak değerlendirilir) değerlendiriliyor.
Muhtemelen print (item in seq) is True
'u (True
olarak değerlendirir) kastediyorsunuz?
öğesi "False" öğesi, bir "TypeError" öğesini yükseltir, çünkü sağdaki değer yinelenen bir yineleme olmalıdır, bu 'Yanlış' değildir. –
cevabı değiştirildi. Teşekkürler – travelingbones
Python bir ifadeyi nasıl değerlendirdiği için olabilir. Kullanmak isteyebilirsiniz print ((sekmedeki öğe doğrudur)) –