Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapakah `(1 dalam [1,0] == Benar)` Menilai kepada Salah dalam Python?

Mengapakah `(1 dalam [1,0] == Benar)` Menilai kepada Salah dalam Python?

Susan Sarandon
Susan Sarandonasal
2024-11-03 18:17:30837semak imbas

Why Does `(1 in [1,0] == True)` Evaluate to False in Python?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn