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

Mary-Kate Olsen
Lepaskan: 2024-10-30 09:34:27
asal
406 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!