Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Memastikan Program Saya Mengendalikan Input Pengguna Tidak Sah dengan Anggun?

Bagaimanakah Saya Boleh Memastikan Program Saya Mengendalikan Input Pengguna Tidak Sah dengan Anggun?

Linda Hamilton
Linda Hamiltonasal
2024-12-24 14:50:11745semak imbas

How Can I Ensure My Program Handles Invalid User Input Gracefully?

Meminta Input Pengguna sehingga Respons Sah Diberikan

Masalah

Pengesahan input adalah penting untuk memastikan pengumpulan data yang tepat dalam program yang bergantung kepada pengguna interaksi. Walau bagaimanapun, mengesahkan input pengguna boleh mencabar apabila berurusan dengan data yang tidak dijangka atau tidak sah. Ini boleh menyebabkan ranap program atau hasil yang salah.

Penyelesaian 1: Gelung dengan Pengendalian Pengecualian

Pendekatan yang paling biasa ialah menggunakan gelung sementara dengan cuba dan kecuali blok untuk mengendalikan pengecualian yang dibangkitkan semasa menghuraikan input. Contohnya:

while True:
    try:
        age = int(input("Please enter your age: "))
    except ValueError:
        print("Invalid input. Please enter a valid age:")
        continue
    else:
        break

Penyelesaian 2: Gelung dengan Pengesahan Tersuai

Jika anda memerlukan pengesahan yang lebih khusus melebihi apa yang Python boleh kendalikan, anda boleh melaksanakan logik tersuai:

while True:
    data = input("Please enter a loud message (must be all caps): ")
    if not data.isupper():
        print("Input must be all caps. Please enter a loud message:")
        continue
    else:
        break

Penyelesaian 3: Menggabungkan Pengendalian Pengecualian dan Pengesahan Tersuai

Menggabungkan kedua-dua penyelesaian menyediakan fleksibiliti untuk mengurus keperluan pengesahan yang berbeza:

while True:
    try:
        age = int(input("Please enter your age: "))
    except ValueError:
        print("Invalid input. Please enter a valid age:")
        continue

    if age < 0:
        print("Age cannot be negative. Please enter a valid age:")
        continue
    else:
        break

Penyelesaian 4: Fungsi Input Boleh Digunakan Semula

Jika anda perlu mengesahkan berbilang input secara konsisten, pertimbangkan untuk mencipta fungsi boleh guna semula:

def get_valid_input(prompt, type_=int, min_=None, max_=None, range_=None):
    while True:
        try:
            value = type_(input(prompt))
        except ValueError:
            print("Invalid input. Please enter a valid value:")
            continue

        if min_ is not None and value < min_:
            print("Value must be greater than or equal to {}. Please enter a valid value:".format(min_))
            continue
        elif max_ is not None and value > max_:
            print("Value must be less than or equal to {}. Please enter a valid value:".format(max_))
            continue
        elif range_ is not None and value not in range_:
            print("Value must be in the range {}. Please enter a valid value:".format(range_))
            continue
        else:
            return value

Mengelakkan Perkara Biasa Perangkap

  • Pernyataan input berlebihan: Gunakan semasa Benar dan gelung bukannya berbilang panggilan input.
  • Menggunakan rekursi untuk pengesahan input: Ini pendekatan boleh menyebabkan limpahan tindanan. Berpegang pada gelung.

Kesimpulan

Dengan melaksanakan teknik ini, anda boleh memastikan program anda mengendalikan input pengguna dengan anggun, mencegah ranap sistem dan mengumpul data yang tepat.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memastikan Program Saya Mengendalikan Input Pengguna Tidak Sah dengan Anggun?. 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