I got an IndexError: list index out of range in sys.argv[1]
I got an IndexError: list index out of range in sys.argv[1]
我想绘制这段代码,但它输入了
IndexError: list index out of range in the line: k =
float(sys.argv[1])
谁能帮我解决这个问题?
canWidth=500
canHeight=500
**strong text**
def setupWindow () :
global win, canvas
from tkinter import Tk, Canvas, Frame
win = Tk()
canvas = Canvas(win, height=canHeight, width=canWidth)
f = Frame (win)
canvas.pack()
f.pack()
def startApp () :
global win, canvas
import sys
k1 = float(sys.argv[1]) # starting value of K
k2 = float(sys.argv[2]) # ending value of K
x = .2 # is somewhat arbitrary
vrng = range(200) # We'll do 200 horz steps
for t in range(canWidth) :
win.update()
k = k1 + (k2-k1)*t/canWidth
print ("K = %.04f" % k)
for i in vrng :
p = x*canHeight
canvas.create_line(t,p,t,p+1) # just makes a pixel dot
x = x * (1-x) * k # next x value
if x <=0 or x >= 1.0 :
print ("overflow at k", k)
return
def main () :
setupWindow() # Create Canvas with Frame
startApp() # Start up the display
win.mainloop() # Just wait for user to close graph
if __name__ == "__main__" : main()
看起来程序需要 2 个浮点命令行参数。
`
k1 = float(sys.argv[1]) # starting value of K
k2 = float(sys.argv[2])
`
所以你应该用类似
的东西来启动它
python main.py 100 200
更详细地说,您的代码正在读取 command line arguments 并且期望其中有 2 个,它们也可以解析为浮点值。
通常,第一个命令行参数是脚本文件本身,所以 sys.argv
总是至少有一个元素长。
也就是说,您可以按照上面的建议进行操作,并在启动脚本时将 2 个浮点数作为参数传递,或者只编辑脚本并硬编码 2 个值,而不是从命令行读取的值,就像这样
k1 = 100
k2 = 200
我想绘制这段代码,但它输入了
IndexError: list index out of range in the line: k = float(sys.argv[1])
谁能帮我解决这个问题?
canWidth=500
canHeight=500
**strong text**
def setupWindow () :
global win, canvas
from tkinter import Tk, Canvas, Frame
win = Tk()
canvas = Canvas(win, height=canHeight, width=canWidth)
f = Frame (win)
canvas.pack()
f.pack()
def startApp () :
global win, canvas
import sys
k1 = float(sys.argv[1]) # starting value of K
k2 = float(sys.argv[2]) # ending value of K
x = .2 # is somewhat arbitrary
vrng = range(200) # We'll do 200 horz steps
for t in range(canWidth) :
win.update()
k = k1 + (k2-k1)*t/canWidth
print ("K = %.04f" % k)
for i in vrng :
p = x*canHeight
canvas.create_line(t,p,t,p+1) # just makes a pixel dot
x = x * (1-x) * k # next x value
if x <=0 or x >= 1.0 :
print ("overflow at k", k)
return
def main () :
setupWindow() # Create Canvas with Frame
startApp() # Start up the display
win.mainloop() # Just wait for user to close graph
if __name__ == "__main__" : main()
看起来程序需要 2 个浮点命令行参数。 `
k1 = float(sys.argv[1]) # starting value of K
k2 = float(sys.argv[2])
`
所以你应该用类似
的东西来启动它python main.py 100 200
更详细地说,您的代码正在读取 command line arguments 并且期望其中有 2 个,它们也可以解析为浮点值。
通常,第一个命令行参数是脚本文件本身,所以 sys.argv
总是至少有一个元素长。
也就是说,您可以按照上面的建议进行操作,并在启动脚本时将 2 个浮点数作为参数传递,或者只编辑脚本并硬编码 2 个值,而不是从命令行读取的值,就像这样
k1 = 100
k2 = 200