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?

Linda Hamilton
Linda Hamiltonasal
2024-10-31 21:14:02865semak imbas

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>

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>

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>

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>

terjemah kepada:

<code class="python">(a < b) and (b < c)</code>

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!

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