Python 我得到一个索引器:sys.argv[1]中的列表索引超出范围
我想绘制此代码,但它已输入 索引器:在第k行中列出索引超出范围= 浮动(sys.argv[1]) 有人能帮我解决这个问题吗Python 我得到一个索引器:sys.argv[1]中的列表索引超出范围,python,index-error,Python,Index Error,我想绘制此代码,但它已输入 索引器:在第k行中列出索引超出范围= 浮动(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, w
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()
canWidth=500
罐高=500
**强文本**
def setupWindow():
全球胜利,画布
从tkinter导入Tk、画布、框架
win=Tk()
canvas=canvas(win,height=canHeight,width=canWidth)
f=帧(win)
canvas.pack()
f、 包()
def startApp():
全球胜利,画布
导入系统
k1=浮点(sys.argv[1])#K的起始值
k2=浮点(sys.argv[2])#K的结束值
x=.2#有点武断
vrng=范围(200)#我们将进行200个水平步
对于范围内的t(canWidth):
win.update()
k=k1+(k2-k1)*t/罐宽
打印(“K=%.04f”%K)
对于vrng中的i:
p=x*canHeight
画布。创建线(t,p,t,p+1)#只制作一个像素点
x=x*(1-x)*k#下一个x值
如果x=1.0:
打印(“k处溢出”,k)
返回
defmain():
setupWindow()#使用框架创建画布
startApp()#启动显示器
win.mainloop()#只需等待用户关闭图形
如果uuuu name_uuuuuu==“uuuuuuu main_uuuuuuuu”:main()
程序似乎需要两个浮点命令行参数。
`
`
所以你应该用类似的东西来启动它
python main.py 100 200
更详细地说,您的代码正在读取,它希望有两个,也可以解析为浮点值。
通常,第一个命令行参数是脚本文件本身,因此sys.argv
始终至少有一个元素长
也就是说,在启动脚本时,您可以按照上面的建议执行操作,并将2个浮点值作为参数传递,或者只编辑脚本和硬编码2值,而不是从命令行读取的值,如下所示
k1 = 100
k2 = 200
看起来程序需要2个浮点命令行参数。 ` ` 所以你应该用类似的东西来启动它
python main.py 100 200
更详细地说,您的代码正在读取,它希望有两个,也可以解析为浮点值。
通常,第一个命令行参数是脚本文件本身,因此sys.argv
始终至少有一个元素长
也就是说,在启动脚本时,您可以按照上面的建议执行操作,并将2个浮点值作为参数传递,或者只编辑脚本和硬编码2值,而不是从命令行读取的值,如下所示
k1 = 100
k2 = 200
您是如何启动程序的?您是否使用至少两个命令行参数运行脚本?e、 g.
python3 script.py arg1 arg2
如果使用python filename.py
启动它,则会出现错误。例如,如果使用python filename.py 1 2
启动它,则不会出现错误。我希望原因很清楚。你明白这意味着什么吗?你明白什么是argc
和argv
吗?你是如何启动程序的?你是否使用至少两个命令行参数运行脚本?e、 g.python3 script.py arg1 arg2
如果使用python filename.py
启动它,则会出现错误。例如,如果使用python filename.py 1 2
启动它,则不会出现错误。我希望原因很清楚。你明白它的意思吗?你明白argc
和argv
是什么吗?非常感谢!这真的很有帮助。然后,每当我想运行代码时,我就按F5。现在我知道如何使用sys,argv。非常感谢!这真的很有帮助。然后,每当我想运行代码时,我就按F5。现在我知道如何使用sys,argv。