Rumah > Artikel > pembangunan bahagian belakang > Mengapakah \'1\' dalam \'11\' == Benar Menilai kepada Salah dalam 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!