Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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 当使用while循环生成“while”时,会出现此错误;列表“;索引器:列表分配索引超出范围_Python - Fatal编程技术网

Python 当使用while循环生成“while”时,会出现此错误;列表“;索引器:列表分配索引超出范围

Python 当使用while循环生成“while”时,会出现此错误;列表“;索引器:列表分配索引超出范围,python,Python,回溯(最近一次呼叫最后一次): File”/Users/jackdennison/Documents/9.5.py“,第32行,在main()中 文件“/Users/jackdennison/Documents/9.5.py”,主文件第15行 NotGreen成本[12]=getNotGreen(NotGreen成本,月) 文件“/Users/jackdennison/Documents/9.5.py”,第26行,getNotGreen格式 notGreenCost[计数器]=整数(输入(“:”

回溯(最近一次呼叫最后一次):

File”/Users/jackdennison/Documents/9.5.py“,第32行,在main()中
文件“/Users/jackdennison/Documents/9.5.py”,主文件第15行
NotGreen成本[12]=getNotGreen(NotGreen成本,月)
文件“/Users/jackdennison/Documents/9.5.py”,第26行,getNotGreen格式
notGreenCost[计数器]=整数(输入(“:”)
索引器:列表分配索引超出范围

正如Bill Bell指出的,您正试图使用

File "/Users/jackdennison/Documents/9.5.py", line 32, in <module> main()

  File "/Users/jackdennison/Documents/9.5.py", line 15, in main
    notGreenCosts[12] = getNotGreen(notGreenCost, months)

  File "/Users/jackdennison/Documents/9.5.py", line 26, in getNotGreen
    notGreenCost[counter] = int(input(":"))

IndexError: list assignment index out of range
这样做的正确方法之一是创建一个可以容纳12个元素的空列表

notGreenCost = [11]
goneGreenCost = [11]
savings = [11]
我散列出了下面的函数,其中没有任何信息

notGreenCost = [None] * 12
goneGreenCost = [None] * 12
savings = [None] * 12
并使基本循环和数据输入为您提供基本的想法

工作代码

#getGoneGreen(goneGreenCost, months)
#energySaved(notGreenCost, goneGreenCost, savings)
#displayInfo(notGreenCost, goneGreenCost, savings, months)
注意:在进入
december
后选择
no
作为菜单选项时,我将
main()
函数重新运行以演示循环功能。你可以根据需要更换


希望这能有所帮助。

正如Bill Bell指出的,您正试图使用

File "/Users/jackdennison/Documents/9.5.py", line 32, in <module> main()

  File "/Users/jackdennison/Documents/9.5.py", line 15, in main
    notGreenCosts[12] = getNotGreen(notGreenCost, months)

  File "/Users/jackdennison/Documents/9.5.py", line 26, in getNotGreen
    notGreenCost[counter] = int(input(":"))

IndexError: list assignment index out of range
这样做的正确方法之一是创建一个可以容纳12个元素的空列表

notGreenCost = [11]
goneGreenCost = [11]
savings = [11]
我散列出了下面的函数,其中没有任何信息

notGreenCost = [None] * 12
goneGreenCost = [None] * 12
savings = [None] * 12
并使基本循环和数据输入为您提供基本的想法

工作代码

#getGoneGreen(goneGreenCost, months)
#energySaved(notGreenCost, goneGreenCost, savings)
#displayInfo(notGreenCost, goneGreenCost, savings, months)
注意:在进入
december
后选择
no
作为菜单选项时,我将
main()
函数重新运行以演示循环功能。你可以根据需要更换


希望这能有所帮助。

请修复缩进一条分配语句,如notGreenCost=[11]创建一个列表,该列表仅包含一(1)个项目,可以引用为notGreenCost[0]。也就是说,您可以将某些内容分配给此地址位置,或者获取已分配给此位置的值。然而,任何试图引用k不为零的notGreenCost[k]这样的地方的尝试都将失败。例如,月份有12个位置,因为您为其分配了12个项目。请修复缩进分配语句(如notGreenCost=[11])创建一个列表,该列表仅包含一(1)个项目,可以引用为notGreenCost[0]。也就是说,您可以将某些内容分配给此地址位置,或者获取已分配给此位置的值。然而,任何试图引用k不为零的notGreenCost[k]这样的地方的尝试都将失败。例如,月份有12个位置,因为您为其分配了12个项目。