Python使用int()转换输入变量时提示invalid literal值错误如何解决
报错根因
int()仅能转换内容为合法整数的字符串(支持自动忽略字符串首尾的空格、换行符),当传入内容包含非整数字符(字母、特殊符号、小数点、全角数字)、为空字符串时,就会抛出ValueError: invalid literal for int() with base 10错误。
原代码中两处int(input())调用均未做异常处理,任意一次输入不符合整数格式要求时,程序会直接终止,无法完成后续的循环读入、列表追加逻辑。
修复实现
封装通用的整数读取方法,遇到非法输入时提示重试,避免程序直接崩溃:
def read_int(): while True: content = input().strip() try: return int(content) except ValueError: print("输入不合法,请输入正确的整数") val = read_int() nums = [] for i in range(val): nums.append(read_int())
常见触发场景排查
- 手动输入时误输入字母、符号、小数,或者输入了全角格式的数字
- 批量粘贴输入时格式错位,出现空行、多内容粘连的情况
- 用文件做输入重定向时,文件内存在空行、表头注释、非数字的冗余内容
内容的提问来源于stack exchange,提问作者user19126440
相关产品推荐
相关产品推荐

