請求使用者輸入直到提供有效回應
在程式設計中,在進行進一步操作之前確保使用者輸入有效至關重要。如果接受無效數據,可能會導致錯誤結果或程式崩潰。讓我們探索處理使用者輸入驗證和防止錯誤的有效技術。
異常和循環
一種方法是使用 try 和 except 區塊來捕獲以下情況下可能出現的錯誤:解析使用者輸入。將輸入解析操作封裝在 while 迴圈中,您可以連續請求輸入,直到滿足所需的條件。
while True: try: age = int(input("Please enter your age: ")) except ValueError: print("Sorry, I didn't understand that.") continue else: break
自訂驗證邏輯
此外對於異常處理,您可以實作自己的驗證規則來檢查輸入。例如,您可以拒絕負數或超出特定範圍的值。
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
所有情況的錯誤處理
對於全面的輸入驗證,您可以組合在單一循環中使用自訂規則進行異常處理。這可以確保正確檢測和處理解析錯誤和無效值。
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
封裝和可重複使用函數
如果您經常遇到用戶輸入驗證的需要,將相關程式碼封裝到單獨的函數中是有好處的。這允許程式碼重複使用並簡化輸入收集過程。
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: ")
可擴充性和通用輸入驗證
透過進一步擴充概念,您可以建立一個高度多功能輸入驗證功能,涵蓋範圍廣泛
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.
常見陷阱和最佳實踐
以上是如何確保我的程式中的使用者輸入有效?的詳細內容。更多資訊請關注PHP中文網其他相關文章!