接收"list index out of range"或"unsupported operand type(s)"错误,这应该是一个简单的代码块



大家好,这实际上是我在Stack Overflow上的第一篇帖子,所以很高兴最终成为社区的一员,而不是我浏览旧帖子来解决家庭作业问题!

我正在努力学习Python,因为隔离让我有了比预期更多的空闲时间,但我遇到了一个我不太理解的奇怪障碍。

提示很简单——生成一个函数add_numbers,它将把两个参数相加并返回。然后,我必须在代码中调用该函数(functions.py(,以便我使用的学习程序可以检查我的工作。

我的代码是这样的(没有显示的是文件顶部的"导入系统"(:

def add_numbers(num1,num2):
sum = {num1} + {num2}
return sum

maths = add_numbers(sys.argv[1],sys.argv[2])
print(maths)

当我这样离开它时,我会得到一个错误,上面写着";列表索引超出范围";,但如果我改为

maths = add_numbers(sys.argv[0],sys.argv[1])

相反,我得到一个错误,它读作";TypeError:不支持+的操作数类型:"set"one_answers"set";。我很困惑这个错误意味着什么,更不用说为什么会发生这种情况了。我很确定,如果我试图在C++中做一些结构上与之非常相似的事情,我不会有任何问题——那么为什么Python现在要向我抛出一个呢?

函数add_numbers中代码的添加部分应该与num1 + num2类似,不包含{}字符。

至于与sys.argv相关的查询,当您从命令行运行python程序时,第一个参数或sys.argv[0]是file_name,并且在其上传递了其他参数

编辑:

此外,在像这样相加之前,您需要将输入键入int或float

maths = add_numbers(int(sys.argv[1]),int(sys.argv[2]))

相关内容

最新更新