我一直收到这个错误“filename=系统argv[1] 索引器错误:列表索引超出范围”。你知道问题是什么吗?

2024-09-30 10:35:58 发布

您现在位置:Python中文网/ 问答频道 /正文

该代码应该显示在背景前行走的动画图像。我从我的教授那里收到了这个密码,我不知道是什么问题。在

import sys, os, math

sys.path.append("./")
from livewires import games

import spriteUtils
from spriteUtils import *

filename = sys.argv[1]
x = int(sys.argv[2])
y = int(sys.argv[3])

##print(filename, "\t", x, "\t", y)

games.init(screen_width = 1152, screen_height = 864, fps = 50)

nebula_image = games.load_image(os.path.join('.', "race_track.jpg"), transparent = 0)
games.screen.background = nebula_image

anim_list = load_2d_sheets(x, y, filename)

anim = games.Animation(images = anim_list,
                        x = games.screen.width/2,
                        y = 2*games.screen.height/4,
                        n_repeats = 15,
                        repeat_interval = 10)
games.screen.add(anim)

games.screen.mainloop()

Tags: pathfromimageimportossysfilenamewidth
3条回答

sys.argv[1]是传递给脚本的第一个参数,因此需要按如下方式运行脚本:

python my_script.py arg1

sys.argv[0]是脚本本身的名称,在本例中my_script.py

我先打印sys.argv,这样你就可以看到它代表了什么。例如:

$ ./myscript.py

>>> sys.argv
['/myscript.py']
>>> sys.argv[1]
IndexError

您可能需要向函数传递其他命令行参数,例如:

^{pr2}$

看起来这个脚本需要3个参数,但你没有给它任何参数。在命令行上调用它的语法是python script_name.py <file_name> <x> <y>,其中script_name.py是实际程序的名称,<file_name>是字符串,<x>和{}是整数。在

相关问题 更多 >

    热门问题