Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Semak dengan Cekap jika Rentetan Mewakili Integer Tanpa Menggunakan Try/Except?

Bagaimanakah Saya Boleh Semak dengan Cekap jika Rentetan Mewakili Integer Tanpa Menggunakan Try/Except?

Patricia Arquette
Patricia Arquetteasal
2024-12-14 10:13:11328semak imbas

How Can I Efficiently Check if a String Represents an Integer Without Using Try/Except?

Menyemak Perwakilan Integer Rentetan: Pendekatan Alternatif untuk Dicuba/Kecuali

Dalam artikel ini, kami meneroka kaedah untuk menentukan sama ada rentetan mewakili integer tanpa menggunakan pendekatan cuba/kecuali. Ini amat berguna dalam senario di mana prestasi dan pengendalian pengecualian adalah kritikal.

Menggunakan Kaedah .isdigit() untuk Integer Positif

Kaedah .isdigit() dalam pemeriksaan Python jika rentetan hanya terdiri daripada digit. Walaupun berkesan untuk integer positif, ia gagal dengan nilai negatif.

'16'.isdigit()  # True

Mengendalikan Integer Negatif

Untuk mengambil kira integer negatif, kita boleh memanfaatkan penghirisan rentetan dan . kaedah isdigit() seperti berikut:

s = '-17'
s.startswith('-') and s[1:].isdigit()  # True

Pernyataan bersyarat ini memastikan bahawa rentetan bermula dengan tanda sempang (-) dan aksara yang tinggal ialah digit.

Tidak Termasuk Nombor Titik Terapung

Walau bagaimanapun, pendekatan ini tidak mengecualikan rentetan seperti '16.0' yang menyerupai integer dalam konteks pemutus integer. Untuk ini, kami boleh meningkatkan logik kami dengan fungsi tersuai:

def check_int(s):
    if s[0] in ('-', '+'):
        return s[1:].isdigit()
    return s.isdigit()

Fungsi ini mengendalikan kedua-dua integer positif dan negatif dengan menyemak sama ada rentetan bermula dengan tanda dan kemudian mengesahkan bahawa aksara yang tinggal ialah digit.

Dengan menggunakan kaedah ini, anda boleh menentukan dengan cekap sama ada rentetan mewakili integer tanpa menggunakan cuba/kecuali, menawarkan pelaksanaan yang lebih pantas dan peningkatan kawalan melebihi pengendalian pengecualian.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Semak dengan Cekap jika Rentetan Mewakili Integer Tanpa Menggunakan Try/Except?. 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