Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Memastikan Input Pengguna yang Sah dalam Program Saya?

Bagaimanakah Saya Boleh Memastikan Input Pengguna yang Sah dalam Program Saya?

Mary-Kate Olsen
Lepaskan: 2024-12-27 06:01:09
asal
622 orang telah melayarinya

How Can I Ensure Valid User Input in My Program?

Meminta Input Pengguna Sehingga Respons Sah Diberikan

Dalam pengaturcaraan, adalah penting untuk memastikan input pengguna adalah sah sebelum meneruskan operasi selanjutnya. Jika data tidak sah diterima, ia boleh menyebabkan hasil yang salah atau ranap program. Mari kita terokai teknik berkesan untuk mengendalikan pengesahan input pengguna dan mencegah ralat.

Pengecualian dan Penggelung

Satu pendekatan ialah menggunakan cuba dan kecuali blok untuk menangkap ralat yang mungkin timbul apabila menghuraikan input pengguna. Dengan membungkus operasi penghuraian input dalam gelung sementara, anda boleh meminta input secara berterusan sehingga ia memenuhi kriteria yang dikehendaki.

while True:
    try:
        age = int(input("Please enter your age: "))
    except ValueError:
        print("Sorry, I didn't understand that.")
        continue
    else:
        break
Salin selepas log masuk

Logik Pengesahan Tersuai

Selain itu kepada pengendalian pengecualian, anda boleh melaksanakan peraturan pengesahan anda sendiri untuk menyemak terhadap input. Sebagai contoh, anda boleh menolak nilai yang negatif atau di luar julat tertentu.

while True:
    data = input("Pick an answer from A to D:")
    if data.lower() not in ('a', 'b', 'c', 'd'):
        print("Not an appropriate choice.")
    else:
        break
Salin selepas log masuk

Pengendalian Ralat untuk Semua Kes

Untuk pengesahan input yang komprehensif, anda boleh menggabungkan pengendalian pengecualian dengan peraturan tersuai dalam satu gelung. Ini memastikan bahawa kedua-dua ralat penghuraian dan nilai tidak sah dikesan dan dikendalikan dengan sewajarnya.

while True:
    try:
        age = int(input("Please enter your age: "))
    except ValueError:
        print("Sorry, I didn't understand that.")
        continue

    if age < 0:
        print("Sorry, your response must not be negative.")
        continue
    else:
        break
Salin selepas log masuk

Fungsi Enkapsulasi dan Boleh Digunakan Semula

Jika anda kerap menghadapi keperluan untuk pengesahan input pengguna , adalah berfaedah untuk merangkum kod yang berkaitan ke dalam fungsi yang berasingan. Ini membenarkan penggunaan semula kod dan memudahkan proses pengumpulan input.

def get_non_negative_int(prompt):
    while True:
        value = int(input(prompt))
        if value >= 0:
            break
    return value

age = get_non_negative_int("Please enter your age: ")
Salin selepas log masuk

Kebolehlanjutan dan Pengesahan Input Generik

Dengan memperluaskan lagi konsep, anda boleh mencipta fungsi pengesahan input serba boleh yang merangkumi pelbagai jenis keperluan.

def sanitised_input(prompt, type_=None, min_=None, max_=None, range_=None):
    while True:
        ui = input(prompt)
        try:
            if type_ is not None:
                ui = type_(ui)
        except ValueError:
            continue

        # Perform further validation checks and return valid input if all criteria are met.
Salin selepas log masuk

Kesalahan Biasa dan Amalan Terbaik

  • Elakkan Penyata Input Berlebihan: Menggunakan berbilang penyata input untuk mencapai pengesahan adalah gaya pengaturcaraan yang lemah dan boleh meningkatkan kemungkinan ralat.
  • Elakkan daripada Rekursi: Walaupun rekursi mungkin kelihatan menggoda untuk pengesahan input, ia boleh menyebabkan limpahan tindanan, terutamanya dengan input tidak sah yang berlebihan.
  • Suka hati Gelung untuk Pengendalian Cekap: Menggunakan gelung sambil membolehkan pengendalian ralat yang cekap dengan berterusan meminta input sehingga respons yang sah diterima.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memastikan Input Pengguna yang Sah dalam Program Saya?. 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