Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapakah \'1\' dalam \'11\' == Benar Menilai kepada Salah dalam Python?

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

Patricia Arquette
Patricia Arquetteasal
2024-10-30 11:38:00642semak imbas

Why Does '1' in '11' == True Evaluate to False in Python?

Python: Kekeliruan Keutamaan Operator dengan Operator 'dalam' dan Perbandingan

Dalam Python, membandingkan keahlian jujukan dan kesaksamaan boleh membawa kepada hasil yang tidak dijangka disebabkan kepada keutamaan yang sama antara operator 'dalam' dan perbandingan. Apabila ditemui dalam ungkapan tanpa kurungan, pengendali ini dinilai dari kiri ke kanan.

Contohnya:

'1' in '11' == True  # Evaluates to False

Ungkapan ini ditafsirkan sebagai:

('1' in '11') and ('11' == True)

Memandangkan '11' tidak sama dengan Benar, keseluruhan ungkapan dinilai kepada Salah. Untuk mencapai hasil yang dimaksudkan (Benar), kurungan diperlukan:

'1' in '11' == True  # Evaluates to True

Namun, jika kurungan diletakkan di sekeliling operan bertentangan:

'1' in ('11' == True)  # TypeError

Ralat Jenis dinaikkan kerana '11' sama dengan Benar, yang merupakan nilai boolean dan oleh itu tidak boleh lelaran. Untuk mengelakkan ralat ini, pastikan operator 'dalam' digunakan dengan objek boleh lelar.

Memahami keutamaan operator dan rantaian dalam Python adalah penting untuk menulis kod yang berkelakuan seperti yang diharapkan. Operator dengan keutamaan yang sama dinilai dari kiri ke kanan, dan rantaian membolehkan anda melakukan beberapa penilaian dalam satu baris. Dengan mempertimbangkan dengan teliti keutamaan pengendali dan rantaian, anda boleh mengelakkan keputusan yang tidak dijangka dan menulis kod yang lebih cekap.

Atas ialah kandungan terperinci Mengapakah \'1\' dalam \'11\' == 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