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

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

Linda Hamilton
Lepaskan: 2024-10-31 21:14:02
asal
979 orang telah melayarinya

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

Rantaian Operator Perbandingan: Mengapa 1 dalam [1,0] == Benar Menilai Kepada Salah

Dalam Python, hasil yang mengejutkan boleh timbul apabila membandingkan hasil ujian keahlian "dalam" dengan Benar:

<code class="python">1 in [1,0] == True  # Unexpectedly returns False</code>
Salin selepas log masuk

Untuk memahami tingkah laku ini, adalah penting untuk mengetahui bahawa Python menggunakan rantaian operator perbandingan. Ini bermakna berbilang operator perbandingan dalam ungkapan dinilai secara berurutan. Dalam kes kod yang disebutkan di atas, ungkapan itu ditafsirkan sebagai:

<code class="python">(1 in [1,0]) == True</code>
Salin selepas log masuk

Memecahkannya lagi:

  1. 1 dalam [1,0] dinilai kepada Benar (sebagai 1 ialah ahli senarai [1,0]).
  2. [1,0] == Benar dinilai seterusnya. Bertentangan dengan gerak hati, ungkapan ini mengembalikan Palsu.

Rahsia Di Sebalik [1,0] == Benar

Sebab untuk keputusan yang tidak dijangka ini terletak pada cara Python mengendalikan nilai dan perbandingan boolean. Apabila membandingkan senarai dengan nilai boolean, Python mula-mula cuba menukar senarai itu kepada boolean. Dalam kes [1,0], penukaran ini menghasilkan Palsu kerana senarai tidak kosong dianggap Benar dalam Python.

Rantai Terbuka

Oleh itu, ungkapan asal dipermudahkan kepada:

<code class="python">True == False</code>
Salin selepas log masuk

yang jelas menilai kepada Salah. Ini menerangkan sebab 1 dalam [1,0] == True mengembalikan Palsu.

Implikasi Tambahan

Tingkah laku rantaian operator ini juga berlaku kepada operator perbandingan yang lain. Contohnya:

<code class="python">a < b < c</code>
Salin selepas log masuk

terjemah kepada:

<code class="python">(a < b) and (b < c)</code>
Salin selepas log masuk

Ini memastikan b dinilai sekali sahaja.

Kesimpulan

Memahami konsep rantaian operator perbandingan adalah penting untuk mentafsir gelagat ungkapan tersebut. Dengan menyedari bahawa susunan penilaian adalah dari kiri ke kanan, kami boleh menjangka keputusan dengan tepat dan mengelakkan sebarang kekeliruan.

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan