Terbongkar: Misteri Mengapa '(1 dalam [1,0] == Benar)' Menilai Kepada Salah
Ungkapan ' (1 dalam [1,0] == True)' dalam Python pada mulanya mungkin kelihatan berlawanan dengan intuisi, menilai kepada False apabila seseorang mungkin menjangkakan ia adalah Benar. Untuk membongkar misteri ini, kita mesti menyelidiki cara dalaman proses penilaian Python.
Anehnya, Python mentafsir ungkapan ini sebagai rantaian perbandingan dan bukannya semakan terus terhadap nilai boolean. Struktur sebenar ungkapan didedahkan sebagai:
(1 in [1,0]) and ([1,0] == True)
Rantaian perbandingan ini dinilai kepada Salah kerana ungkapan pertama, '(1 dalam [1,0])', mengembalikan Benar dan ungkapan kedua , '([1,0] == True)', menilai kepada Salah.
Fenomena rantaian perbandingan ini juga berlaku dalam ungkapan lain, seperti 'a < b < c', yang diterjemahkan kepada:
(a < b) and (b < c)
tanpa penilaian berlebihan 'b' dua kali.
Adalah penting untuk memahami aspek tingkah laku penilaian Python ini untuk mengelakkan hasil yang tidak dijangka apabila berurusan dengan kompleks ungkapan yang melibatkan perbandingan.
Atas ialah kandungan terperinci Mengapakah `(1 dalam [1,0] == Benar)` Menilai kepada Salah dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!