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
Lepaskan: 2025-01-02 17:01:40
asal
301 orang telah melayarinya

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
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan