繁体   English   中英

IndexError:列表索引超出范围

[英]IndexError: List Index out of range

我能得到任何帮助来找出代码有什么问题吗? 当我运行它时,它给了我这个错误:

Traceback (most recent call last):
  File "ap_settings.py", line 19, in <module>
    AP_NUMBER = SETTINGS[TEST_SETTINGS_INDEX][0]
IndexError: list index out of range

这是文件 ap_settings.py:

# Define variables
# SETTINGS is [ (AP_NUMBER, SAVE_RESULTS, SKIP) ]

TEST_SETTINGS_INDEX = 3

SETTINGS = [
            (0, 0, 0),
            ]

# Defining the fuzzing MAC address device
STA_MAC = "00:20:A6:61:2D:09"

# Defining the injection interface
IFACE   = "ath0"

##### BELOW VARIABLES SHOULD NOT BE TWEAKED BY THE USER

AP_NUMBER = SETTINGS[TEST_SETTINGS_INDEX][0]
SAVE_RESULTS = SETTINGS[TEST_SETTINGS_INDEX][1]
SKIP = SETTINGS[TEST_SETTINGS_INDEX][2]

# Defining fuzzing specific variables
AP = [
        ('kikoo', '00:11:22:33:44:55', 11, 'WPA-PSK'),
        ][AP_NUMBER]

SSID = AP[0]
AP_MAC = AP[1]
CHANNEL = chr(AP[2])
AP_CONFIG = AP[3]

# Defining the number of retries when authenticating/associating to the AP
CRASH_RETRIES = 10
DELAY = 1
STATE_WAIT_TIME = 2
DELAY_REBOOT = 10
LOG_LEVEL = 3
CRASH_THRESHOLD = 3
TRUNCATE = True

# Defining the log file
FNAME = [None, 'audits/ap-%s-%s.session' % (AP_MAC, AP_CONFIG)][SAVE_RESULTS]

在你的文件的顶部,你有这个:

TEST_SETTINGS_INDEX = 3
SETTINGS = [
            (0, 0, 0),
            ]

然后再往下一点,你有这个:

AP_NUMBER = SETTINGS[TEST_SETTINGS_INDEX][0]
SAVE_RESULTS = SETTINGS[TEST_SETTINGS_INDEX][1]
SKIP = SETTINGS[TEST_SETTINGS_INDEX][2]

您正在尝试访问SETTINGS索引位置3 ,因为这是TEST_SETTINGS_INDEX的设置,但SETTINGS只有一项,因此您应该查看索引0

AP_NUMBER = SETTINGS[0][0]
SAVE_RESULTS = SETTINGS[0][1]
SKIP = SETTINGS[0][2]

SETTINGS 列表包含一个 (0,0,0) 元组,所以基本上你的列表只包含一个元素。 len(SETTINGS)=1

所以你的代码说

AP_NUMBER=SETTINGS[TEST_SETTINGS_INDEX][0]

其中 TEST_SETTINGS_INDEX=3,即:

AP_NUMBER=SETTINGS[3][0]

这意味着您正在访问不存在的列表的第三个元素,这就是您收到错误“索引超出范围”的原因。

列表还包含 n 个元素,然后访问您需要使用 n-1 的第 n 个元素。 例如

 x = [1,2,3,4] then x[0]=1, x[1]=2, x[2]=3, x[3]=4

所以在你的情况下代码应该是

AP_NUMBER = SETTINGS[0][TEST_SETTINGS_INDEX]

此外,由于 SETTINGS 列表中元组的 len 是 3 i:e

len((0,0,0)) = 3

因此,您的 TEST_SETTINGS_INDEX 值应介于 0 到 2 之间。

AP_NUMBER = SETTINGS[0][0]
AP_NUMBER = SETTINGS[0][1]
AP_NUMBER = SETTINGS[0][2]

有关更多信息,请参阅列表和元组

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM