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.
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
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
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
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
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!