Ошибка с циклом, который сохраняет значения в массиве: IndexError: список индексов вне диапазона - PullRequest
0 голосов
/ 09 мая 2018

Я хочу сохранить заданные значения (входные данные) в массиве. К сожалению, это не работает. Я не могу сохранить последнее значение, потому что я получаю следующую ошибку:

---> 18 zax [k] .append (abs) IndexError: индекс списка вне диапазона

Вы знаете, что пошло не так?

Вот мой код:

    ax = np.array([])
    k = 0
    l = 0

    mehrfach = int(input('Please write how often you measured your samples.\n
Please write an integer. For example: Duplicates: 2; Triplicates: 3; etc.'))
    werte = int(input('Please write how much samples you have.\n
Please write an integer. For example: Two different samples: 2; Three different samples: 3, etc.'))
    zax=[[] for k in range(mehrfach)]
    #while k < (werte):
    for k in range(werte):
    #for k in range(werte): #samples
        #while l < (mehrfach): #duplicates
        for l in range (mehrfach):
            abs = float(input('Please write down your measured absoprtion (float).'))
            zax[k].append(abs)
            l = l+1
        k = k+1
    print('Measured absorptions:',zax)

Приветствия

1 Ответ

0 голосов
/ 09 мая 2018

Вы должны добавить проверку проверки, чтобы убедиться, что werte не больше, чем mehrfach. Если werte больше mehrfach, вы получите IndexError во внутреннем цикле, пытаясь установить zax[k].

Причина в том, что вы устанавливаете zax как список с n списками, где n равно mehrfach. В вашем цикле вы пытаетесь установить элемент списка с zax[k], где k определяется из werte. Если werte> mehrfach, вы будете пытаться установить значение zax[k] в вашем внутреннем цикле, который не существует, и IndexError выбрасывается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...