Python 整数参数错误

Python 整数参数错误,python,arguments,sys,Python,Arguments,Sys,我正在尝试编写一个接受两个整数参数的程序。经过一些研究,我了解到在定义参数时需要使用int()函数。但是,我在尝试此代码时出错: import sys a, b = int(sys.argv[1]), int(sys.argv[2]) 我得到这个错误: ValueError Traceback (most recent call last) <ipython-input-11-7a4a02a9d164> in <

我正在尝试编写一个接受两个整数参数的程序。经过一些研究,我了解到在定义参数时需要使用
int()
函数。但是,我在尝试此代码时出错:

import sys

a, b = int(sys.argv[1]), int(sys.argv[2])
我得到这个错误:

ValueError                                Traceback (most recent call last)
<ipython-input-11-7a4a02a9d164> in <module>()
----> 1 a, b = int(sys.argv[1]), int(sys.argv[2])

ValueError: invalid literal for int() with base 10: '-f'
ValueError回溯(最近一次调用)
在()
---->1a,b=int(sys.argv[1]),int(sys.argv[2])
ValueError:基数为10的int()的文本无效:'-f'
尽管进行了调查,我还是无法解决这个问题。这可能与我的python版本有关吗

提前谢谢

编辑:我正在Jupyter笔记本中运行此代码。在终端中运行相同的代码会引发以下错误:

>>> import sys
>>> a = int(sys.argv[1])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range
导入系统 >>>a=int(sys.argv[1]) 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 索引器:列表索引超出范围
您尚未将argv分配给任何对象。Argv包含从shell运行的python脚本的命令行参数。在终端运行时,argv将是一个包含零元素的空列表。因此无法访问argv[0]和argv(它们不存在)

在Jupityer笔记本中运行脚本时,笔记本本身具有命令行参数“更高”。您的第一个参数不是您想要的(无论您输入的是什么整数),因此您无法转换它的类型

编写程序有三个选项: -直接从脚本开始工作 -命令行参数 -运行时输入

您甚至可能不需要使用命令行参数

def add_from_user_input():
    a = input('first number')
    b = input('second number')
    return a+b

你是如何运行你的脚本的?错误显示其中一个参数是
-f
,无法转换为整数。如何运行python脚本?我正在Jupyter笔记本中以交互方式执行此操作。这不是编写程序的正确方式吗@Brenban为什么在交互式上下文中使用
sys.argv
sys.argv
用于读取在命令行上传递的参数。感谢您提供的信息丰富的答案。我不知道你指出的关系,现在我正在更全面地理解这一点。非常感谢!