Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Adakah (1 dalam [1, 0] == Benar) Menilai kepada Salah dalam Python?

Mengapa Adakah (1 dalam [1, 0] == Benar) Menilai kepada Salah dalam Python?

Patricia Arquette
Patricia Arquetteasal
2024-11-03 18:02:03599semak imbas

Why Does (1 in [1, 0] == True) Evaluate to False in Python?

Python Precedence and Chaining: Mengapa Keputusan Yang Tidak Dijangkakan dalam (1 dalam [1,0] == True)?

Dalam Python, ungkapan (1 dalam [1,0] == Benar) menilai kepada Salah, yang mungkin kelihatan berlawanan dengan intuisi. Untuk memahami sebabnya, adalah penting untuk mengetahui tentang keutamaan operator dan rantaian dalam Python.

Keutamaan pengendali menentukan susunan pengendali yang berbeza dalam ungkapan dinilai. Dalam kes ini, pengendali dalam mempunyai keutamaan yang lebih tinggi daripada pengendali perbandingan ==. Jadi, ungkapan itu dihuraikan sebagai (1 dalam [1,0]) == Benar, di mana (1 dalam [1,0]) dinilai dahulu.

Apabila jurubahasa menilai (1 dalam [1, 0]), ia mengembalikan Benar kerana 1 berada dalam senarai [1,0]. Walau bagaimanapun, ungkapan itu tidak berakhir di situ.

Python menggunakan rantaian untuk pengendali perbandingan. Rantaian membolehkan berbilang perbandingan dilakukan dalam satu ungkapan. Dalam kes ini, ungkapan (1 dalam [1,0]) == Benar boleh diterjemahkan kepada:

(1 dalam [1,0]) dan ([1,0] == Benar)

Selepas menilai (1 dalam [1,0]) kepada Benar, jurubahasa meneruskan untuk menilai ([1,0] == Benar). Perbandingan ini menilai kepada Salah kerana [1,0] ialah senarai dan Benar ialah nilai boolean.

Oleh itu, ungkapan keseluruhan menilai kepada Salah kerana kedua-dua syarat dalam perbandingan berantai tidak dipenuhi. Ia bukan semata-mata soal keutamaan, sebaliknya gabungan keutamaan dan rantaian yang membawa kepada keputusan ini.

Atas ialah kandungan terperinci Mengapa Adakah (1 dalam [1, 0] == 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