Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 原因:索引超出范围错误?_Python_Python 3.x - Fatal编程技术网

Python 原因:索引超出范围错误?

Python 原因:索引超出范围错误?,python,python-3.x,Python,Python 3.x,当我运行它时,我得到 索引器错误:列表索引超出范围 为什么?我该如何修复它呢?您试图在不指定参数的情况下执行程序,这就是为什么会出现此异常 您可以通过键入以下内容从命令行运行程序: python name of program.py argument1 argument2 示例:可能您没有以正确的方式调用脚本。由于您从用户获取参数,并且如果用户未指定参数,则会出现错误 请参见下图: 更好的方法是使用以下代码: import sys v0 = float(sys.argv[1]) t = fl

当我运行它时,我得到

索引器错误:列表索引超出范围


为什么?我该如何修复它呢?

您试图在不指定参数的情况下执行程序,这就是为什么会出现此异常

您可以通过键入以下内容从命令行运行程序:

python name of program.py argument1 argument2


示例:

可能您没有以正确的方式调用脚本。由于您从用户获取参数,并且如果用户未指定参数,则会出现错误

请参见下图:

更好的方法是使用以下代码:

import sys

v0 = float(sys.argv[1])
t = float(sys.argv[2])

g = 9.81

x = v0 * t - 0.5 * g *t **2
print (x)
导入系统 如果(len(sys.argv)!=4): 打印(“请键入正确的输入命令。正确的命令->python”) 其他: v0=浮动(系统argv[1]) t=浮动(sys.argv[2]) g=9.81 x=v0*t-0.5*g*t**2 打印(x)
。。。那么,您是如何调用此脚本的?能否澄清返回索引器的是哪行代码?从您的代码来看,似乎v0和t引用了一个索引值,所以您可能没有正确地传递参数?你怎么称呼这个脚本?@Geralt.O.Rivia第3行。v0=浮动(系统argv[1])。我知道我必须调用脚本,但我不明白为什么我把这个代码给了我的一个朋友,他只是复制并粘贴了它,它对他起了作用。我想我会尝试其他方法。@Geralt.O.Rivia可能是因为系统中没有导入“sys”吗?正如Juanpa所问的,你需要告诉我们你是如何运行它的
sys.argv[1]
表示第一个命令行参数(在脚本名称之后)。那么,您是否实际使用了任何命令行参数?
import sys

if ( len(sys.argv) != 4) :
    print ("Please type correct input command. Correct command -> python <file name> <digit 1> <digit 2>")

else:
    v0 = float(sys.argv[1])
    t = float(sys.argv[2])
    g = 9.81
    x = v0 * t - 0.5 * g *t **2
    print (x)