You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python输入列表首尾整数相加报错ValueError,求问题分析与修正

解决你的Python列表首尾相加代码问题

嘿,我来帮你一步步排查代码里的问题,你遇到的报错和逻辑错误都是新手常踩的坑,别担心:

1. 先搞定ValueError报错

你看到的ValueError: invalid literal for int() with base 10,原因是输入分割后的字符串可能带有空格。比如你输入1, 2, 3(逗号后有空格),input().split(',')会得到['1', ' 2', ' 3'],其中' 2'这种带空格的字符串转int时就会报错——Python没法把带空格的字符串当成整数。

解决方法很简单,在转int之前先去掉每个元素的首尾空格:

userList = list(map(lambda x: int(x.strip()), input().split(',')))

这里用lambda x: int(x.strip())代替直接的int,先对每个分割后的字符串执行strip()去掉空格,再转成整数,不管用户输入时加不加空格都能兼容。

2. 修正列表索引的错误

你提到以为userList[1]是第一个元素,这是Python列表索引的核心知识点:Python列表是从0开始索引的!

  • 第一个元素的索引是userList[0]
  • 第二个元素才是userList[1]

另外你写的userList[len userList]有两个问题:

  • 调用len()函数必须加括号,应该是len(userList)
  • 最后一个元素的索引不是len(userList),而是len(userList)-1(因为索引从0开始,长度为n的列表,最后一个元素索引是n-1)。不过Python有更简洁的写法:直接用userList[-1]就能获取最后一个元素,不用算长度。

3. 修正后的完整代码

把上面的问题都修复后,代码就能正常运行了:

# 处理输入,兼容带空格的情况
userList = list(map(lambda x: int(x.strip()), input().split(',')))
# 首尾元素相加:第一个元素[0] + 最后一个元素[-1]
intTotal = userList[0] + userList[-1]
print(intTotal)

测试一下:输入5,10,15会输出20,输入3, 7, 9(带空格)也能正常输出12。

内容的提问来源于stack exchange,提问作者Matthew Webster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:53:44