我们正在为学校的编程课程制作温度传感器,我们遇到了这一特定代码行的问题:
devicefile= devicelist[0] + '/w1_slave'
IndexError:列表索引超出范围
我们从这些网站获取了代码: http://www.whiskeytangohotel.com/2013/07/raspberry-pi-charting-ambient-vs.html http://raspberrywebserver.com/gpio/connecting-a-temperature-sensor-to-gpio.html
答案 0 :(得分:3)
这意味着列表devicelist
少于1个元素(devicelist[0]
是列表中的第一个元素)。 IOW:这是一个空列表。
有关Python中列表的更多信息,请参阅教程http://docs.python.org/2/tutorial/introduction.html#lists和参考资料库http://docs.python.org/2/library/stdtypes.html#sequence-types-str-unicode-list-tuple-bytearray-buffer-xrange
答案 1 :(得分:1)
IndexError
表示您尝试按索引访问某些内容,但该索引超出了容器的范围,例如
>>> l = [0, 1, 2]
>>> l[2]
2
>>> l[3]
...
IndexError: list index out of range
如果容器没有第0个元素,则它必须为空:
>>> l = []
>>> l[0]
...
IndexError: list index out of range
您需要调查列表为空的原因,但是对于更强大的代码,您可以在尝试访问该元素之前明确检查:
if len(l) > 0:
# access l[0]
或者,简单地说:
if l:
# access l[0]