如何在Python3中实现try-parse功能,输入非整数时提示并支持用户重试
实现方案
你现有的try_parse_int函数核心逻辑可用,只要补充无限循环控制输入流程,直到拿到合法整数即可。建议同时调整异常捕获范围,避免裸except吞掉无关错误。
完整可运行代码
def try_parse_int(text): try: return int(text) # 仅捕获转换整数时会触发的合法异常 except (ValueError, TypeError): return None def get_valid_integer(prompt: str = "请输入整数: ") -> int: while True: input_content = input(prompt) parse_result = try_parse_int(input_content) if parse_result is not None: return parse_result print("Error! Please enter a number") # 调用示例 if __name__ == "__main__": user_num = get_valid_integer() print(f"你输入的有效整数是: {user_num}")
简化版本(无需单独拆分解析函数)
如果不需要复用解析逻辑,可以直接把逻辑合并到输入函数里:
def get_valid_integer(prompt: str = "请输入整数: ") -> int: while True: try: return int(input(prompt)) except (ValueError, TypeError): print("Error! Please enter a number")
运行说明
调用get_valid_integer()后程序会一直等待用户输入,只要输入内容无法转为整数就会打印错误提示并要求重新输入,直到拿到合法整数才会返回结果。可以通过传参自定义输入提示语,比如get_valid_integer("请输入你的年龄: ")。
内容的提问来源于stack exchange,提问作者JohannaH
相关产品推荐
相关产品推荐

