neden
True and []
döner [] yerine YanlışDoğru Çıktı ve []
merak ediyordum ifadesi sözdizimsel şeker var mı?
neden
True and []
döner [] yerine YanlışDoğru Çıktı ve []
merak ediyordum ifadesi sözdizimsel şeker var mı?
cevap 5.10. Boolean Expressions bulunur:
ilk
x and y
x değerlendirir ifade; x yanlışsa, değeri döndürülür; aksi halde y değerlendirilir ve elde edilen değer iade edilir.
Bu sözdizimsel şeker bazen Python bir ternary operator olarak kullanılır
C++: someVar = someCondition ? valueIfTrue : valueIfFalse;
Python: someVar = someCondition and valueIfTrue or valueIfFalse
Düzenleme: Bu Python büyük bir tuzak olduğunu ve değiştirilmesi gerektiğini, :) yorum göre, çıkıyor
Bunlar eşdeğer değil, python sürümünde bir gotcha olduğunu unutmayın: Eğer 'valueIfTrue'' False' için değerlendirirse, 'valueIfFalse''''''Seçen' 'True' veya' False'' olup olmadığını döndürür . Bunun yerine, bazı boşluklardan başka bir değer varsa, bu kusuru önlemek için 'someVar = valueIfTrue 'kullanın. –
"valueIfTrue" bir False değerine göre değerlendirilirse çalışmaz. Daha sonra, 'elseIfTrue', eğer varsa, elseCondition else valueIfFalse (2.5'den beri) kullanmak daha iyidir. BTW: '? : 'aslında C++ 'dan değil C'den geliyor. – glglgl
1. Sözdizimsel şeker değildir. Sadece sözdizimi. (aksi halde: ne için şeker?). 2. Python'da a ve b veya c 'YANLIŞ. Bunu demek istemediğinde, c'yi değerlendirebilir. – Celada
çok iyi bir soru, asla bilmedim. Bu uygulanabilirlik ile ilgili planlarımın gerçek konumunun boş bir listeye dönmek için gerekeceği kodumun bazı yönlerinde var. Çizginin Yanlış ve [] olduğunu görürsünüz, yanlış döndürür. nice .. :) –