Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapakah \"1\" dalam \"11” == Nilai Benar kepada Salah dalam Python?

Mengapakah \"1\" dalam \"11” == Nilai Benar kepada Salah dalam Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-30 09:34:27392semak imbas

Why Does

Teka-teki Keutamaan Operator dalam Python: Membongkar Misteri 'dalam' dan Perbandingan

Tingkah laku membingungkan yang diperhatikan dengan pengendali 'dalam' Python dan perbandingan telah menyebabkan ramai yang bingung. Tetapi di bawah permukaannya terdapat interaksi halus antara keutamaan operator dan rantaian ekspresi.

Keutamaan pengendali menentukan susunan operasi dinilai dalam ungkapan. Dalam Python, operator 'in' dan perbandingan (cth., '==') mempunyai keutamaan yang sama. Akibatnya, ia diproses dari kiri ke kanan.

Namun, keadaan menjadi lebih rumit apabila ekspresi berantai terlibat. Perangkap biasa timbul apabila cuba membandingkan hasil operasi 'dalam' dengan nilai lain. Pertimbangkan contoh berikut:

<code class="python">'1' in '11' == True</code>

Anehnya, ungkapan ini dinilai sebagai Salah. Sebabnya terletak pada rantaian 'in' dan '=='. Ungkapan dihuraikan dengan berkesan sebagai:

<code class="python">('1' in '11') and ('11' == True)</code>

Pengendali 'dalam' mengesahkan sama ada '1' ialah ahli '11', menghasilkan Benar. Walau bagaimanapun, perbandingan kedua, '11' == Benar, menghasilkan Salah. Oleh itu, ungkapan keseluruhan dinilai kepada Salah.

Untuk mendapatkan nilai True yang diingini, seseorang mesti mengubah susunan keutamaan secara eksplisit. Ini boleh dicapai menggunakan kurungan:

<code class="python">('1' in '11') == True</code>

Dengan melampirkan operasi 'dalam' dalam kurungan, ungkapan itu dinilai dalam skopnya sebelum membandingkannya dengan Benar. Perubahan ini menghasilkan hasil Benar seperti yang dimaksudkan.

Memahami keutamaan operator dan rantaian adalah penting dalam mentafsir gelagat ekspresi Python yang kompleks. Ia memberi kuasa kepada pembangun untuk menjangka urutan operasi dan mengelakkan perangkap yang tidak dijangka.

Atas ialah kandungan terperinci Mengapakah \"1\" dalam \"11” == Nilai Benar 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