如何修复Python重复输入异常导致的程序崩溃问题
修复循环获取正整数输入的异常问题
你的代码崩溃是因为未捕获输入转换时的ValueError——当输入非整数内容(比如小数、字符串)时,int()转换会直接抛出异常终止程序。要实现持续循环直至输入正确,需要结合异常捕获和正整数校验。
错误代码示例(触发崩溃的场景)
while True: book_count = int(input("请输入书籍数量:")) if book_count > 0: print(f"你输入的书籍数量是:{book_count}") break
报错信息示例:
ValueError: invalid literal for int() with base 10: '3.5'
修复后的代码
while True: try: book_count = int(input("请输入书籍数量:")) if book_count > 0: print(f"确认书籍数量:{book_count}") break else: print("错误:请输入大于0的正整数!") except ValueError: print("错误:请输入有效的整数!")
代码逻辑说明
try块中完成两个核心校验:- 将用户输入转换为整数,若转换失败直接触发
except分支 - 校验转换后的整数是否为正整数,不符合则提示错误并继续循环
- 将用户输入转换为整数,若转换失败直接触发
except ValueError专门捕获输入无法转为整数的场景(比如输入小数、字母、符号等),提示错误后继续循环,避免程序崩溃
内容的提问来源于stack exchange,提问作者pleasehelp
相关产品推荐
相关产品推荐

