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

Patricia Arquette
Lepaskan: 2024-10-30 11:38:00
asal
651 orang telah melayarinya

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

Ungkapan ini ditafsirkan sebagai:

('1' in '11') and ('11' == True)
Salin selepas log masuk

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

Namun, jika kurungan diletakkan di sekeliling operan bertentangan:

'1' in ('11' == True)  # TypeError
Salin selepas log masuk

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!

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!