Python输入转int求和程序报错:输入done触发ValueError问题排查
问题解决:数字累加程序异常修复
原代码的核心问题有两个:
- 直接将输入转为整数,输入"done"时会触发
ValueError,因为字符串无法转成整数 - 转成整数后,用整数和字符串"done"做相等判断,逻辑永远不成立,无法正常退出循环
以下是修复后的代码:
total = 0 while True: user_input = input('enter number or "done" to finish: \n') if user_input == 'done': break # 尝试将输入转为整数,处理非数字输入的情况 try: number = int(user_input) total += number except ValueError: print("请输入有效的数字或'done'") print(f"累加总和为: {total}")
关键修复点:
- 先获取原始输入字符串,优先判断是否是退出指令"done",避免类型转换错误
- 使用
try-except捕获非数字输入的异常,增强程序健壮性,提示用户正确输入 - 仅当输入是有效数字时,才执行累加操作
内容的提问来源于stack exchange,提问作者zahra farzanh
相关产品推荐
相关产品推荐

