Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Memastikan Input Pengguna yang Sah dalam Python?

Bagaimana untuk Memastikan Input Pengguna yang Sah dalam Python?

Barbara Streisand
Barbara Streisandasal
2025-01-02 17:01:40304semak imbas

How to Ensure Valid User Input in Python?

Meminta Input Pengguna yang Sah Sehingga Diterima

Apabila meminta input pengguna, adalah penting untuk mengendalikan respons tidak sah dengan anggun dan bukannya ranap atau menerima nilai yang salah . Teknik berikut memastikan input yang sah diperoleh:

Cuba/Kecuali Input Luar Biasa

Gunakan cuba/kecuali untuk menangkap input tertentu yang tidak boleh dihuraikan. Contohnya:

while True:
    try:
        age = int(input("Please enter your age: "))
    except ValueError:
        print("Sorry, that's not a valid age.")
        continue
    break

Pengesahan Tersuai untuk Peraturan Tambahan

Kadangkala, input yang boleh dihuraikan mungkin masih tidak memenuhi kriteria tertentu. Anda boleh menambah logik pengesahan tersuai untuk menolak nilai tertentu:

while True:
    data = input("Enter a positive number: ")
    if int(data) < 0:
        print("Invalid input. Please enter a positive number.")
        continue
    break

Menggabungkan Pengendalian Pengecualian dan Pengesahan Tersuai

Gabungkan kedua-dua teknik untuk mengendalikan kedua-dua parsing tidak sah dan peraturan pengesahan tersuai :

while True:
    try:
        age = int(input("Please enter your age: "))
    except ValueError:
        print("Sorry, that's not a valid age.")
        continue
    if age < 0:
        print("Invalid age. Please enter a positive number.")
        continue
    break

Pengenkapsulan dalam Fungsi

Untuk menggunakan semula logik pengesahan input tersuai, merangkumnya dalam fungsi:

def get_positive_age():
    while True:
        try:
            age = int(input("Please enter your age: "))
        except ValueError:
            print("Sorry, that's not a valid age.")
            continue
        if age < 0:
            print("Invalid age. Please enter a positive number.")
            continue
        return age

Pembersihan Input Lanjutan

Anda boleh cipta fungsi input yang lebih generik untuk mengendalikan pelbagai pengesahan senario:

def get_valid_input(prompt, type_=None, min_=None, max_=None, range_=None):
    while True:
        try:
            value = type_(input(prompt))
        except ValueError:
            print(f"Invalid input type. Expected {type_.__name__}.")
            continue
        if max_ is not None and value > max_:
            print(f"Value must be less than or equal to {max_}.")
            continue
        if min_ is not None and value < min_:
            print(f"Value must be greater than or equal to {min_}.")
            continue
        if range_ is not None and value not in range_:
            template = "Value must be {}."
            if len(range_) == 1:
                print(template.format(*range_))
            else:
                expected = " or ".join((
                    ", ".join(str(x) for x in range_[:-1]),
                    str(range_[-1])
                ))
                print(template.format(expected))
        else:
            return value

Fungsi ini membolehkan anda menentukan jenis data, julat dan kekangan lain untuk input pengguna.

Atas ialah kandungan terperinci Bagaimana untuk Memastikan Input Pengguna yang Sah 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