


Mengapa Berbilang Operator `atau` dalam Python Menghasilkan Keputusan Boolean Tidak Dijangka?
Mengapa Berbilang Atau Operator Menghasilkan Hasil Yang Tidak Dijangka
Dalam Python, menilai ungkapan yang melibatkan berbilang atau pengendali boleh mengelirukan. Sebagai contoh, pertimbangkan baris kod berikut:
if name == "Kevin" or "Jon" or "Inbar":
Barisan ini berhasrat untuk memberikan akses kepada pengguna yang tidak dibenarkan, tetapi pada hakikatnya, ia membenarkan semua pengguna. Untuk memahami sebabnya, kita perlu meneliti tingkah laku pengendali.
Masalah dengan Pelbagai Ors
Dalam bahasa Inggeris, "or" menghubungkan berbilang klausa, menunjukkan bahawa sekurang-kurangnya satu mesti betul. Walau bagaimanapun, dalam Python, ungkapan seperti "A atau B atau C" dihuraikan sebagai "(A atau B) atau C." Ini bermakna hanya ungkapan pertama dinilai. Jika ia benar, keseluruhan ungkapan adalah benar.
Penyelesaian 1: Berbilang Operator Kesamaan
Untuk membandingkan "nama" dengan betul kepada setiap pengguna yang dibenarkan, gunakan berbilang operator kesamaan :
if name == "Kevin" or name == "Jon" or name == "Inbar":
Penyelesaian 2: Set Keahlian
Penyelesaian alternatif ialah menggunakan set nama yang dibenarkan dan semak keahlian:
authorized = {"Kevin", "Jon", "Inbar"} if name in authorized:
Penyelesaian 3: Mana-mana Operator
Fungsi any() juga boleh digunakan untuk mengulangi nama yang dibenarkan dan mengembalikan True jika mana-mana daripadanya sepadan "name":
authorized = ["Kevin", "Jon", "Inbar"] if any(name == auth for auth in authorized):
Prestasi
Antara tiga penyelesaian, keahlian set menawarkan prestasi terbaik, diikuti oleh berbilang pengendali kesaksamaan. Menggunakan any() adalah yang paling tidak cekap.
Atas ialah kandungan terperinci Mengapa Berbilang Operator `atau` dalam Python Menghasilkan Keputusan Boolean Tidak Dijangka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Sintaks asas untuk pengirim senarai python adalah senarai [Mula: Berhenti: Langkah]. 1. Start adalah indeks elemen pertama yang disertakan, 2.Stop adalah indeks elemen pertama yang dikecualikan, dan 3. Step menentukan saiz langkah antara elemen. Hirisan tidak hanya digunakan untuk mengekstrak data, tetapi juga untuk mengubah suai dan membalikkan senarai.

ListsOutPerFormAraySin: 1) DynamicsizingandFrequentInsertions/Deletions, 2) StoringHeterogeneousData, dan3) MemoryeficiencyForSparsedata, ButmayHaveslightPerformancecostSincertaor.

ToConvertapythonarraytoalist, usethelist () constructororageneratorexpression.1) importTheArrayModuleAndCreateeanArray.2) uselist (arr) atau [xforxinarr] toConvertittoalist, urusanPengerasiPormanceAndMemoryeficiencyForlargedatasets.

ChoosearraysoverListSinpythonforbetterperformanceandMemoryeficiencySpecificscenarios.1) largenumericaldatasets: arraysreducememoryusage.2) Prestasi-CRITICALICALLY:

Di Python, anda boleh menggunakan gelung, menghitung dan menyenaraikan pemantauan ke senarai melintasi; Di Java, anda boleh menggunakan tradisional untuk gelung dan dipertingkatkan untuk gelung untuk melintasi tatasusunan. 1. Kaedah Traversal Senarai Python termasuk: untuk gelung, penghitungan dan pemahaman senarai. 2. Java Array Traversal Kaedah termasuk: tradisional untuk gelung dan dipertingkatkan untuk gelung.

Artikel ini membincangkan pernyataan baru "Match" Python yang diperkenalkan dalam versi 3.10, yang berfungsi sebagai setara dengan menukar pernyataan dalam bahasa lain. Ia meningkatkan kebolehbacaan kod dan menawarkan manfaat prestasi ke atas tradisional if-elif-el

Kumpulan Pengecualian dalam Python 3.11 Membenarkan mengendalikan pelbagai pengecualian secara serentak, meningkatkan pengurusan ralat dalam senario serentak dan operasi kompleks.

Fungsi anotasi dalam python Tambah metadata ke fungsi untuk pemeriksaan jenis, dokumentasi, dan sokongan IDE. Mereka meningkatkan kebolehbacaan kod, penyelenggaraan, dan penting dalam pembangunan API, sains data, dan penciptaan perpustakaan.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)
