#python-3.x #for-loop
#python-3.x #для цикла
Вопрос:
У меня эта распространенная ошибка в этом коде forloop, и я хотел бы получить чью-нибудь помощь.
m, n = 100, 4
x = np.ones(n)
for i in range(m):
y_1 = my_func(x, i)
y_2 = my_func(y_1, i 1)
R = 2*y_2 - y_1
R12 = 0.5*(x - R)
Я понимаю, что я получил эту ошибку из-за i 1, но я не знаю, как это исправить. Что я намерен сделать, так это применить my_func ко всем m парам. То есть примените my_func к m = 0, а затем m = 1 и выполняйте цикл, пока я не дойду до 100. Как только я доберусь до 100, я хочу, чтобы forloop применил его к m = 100, а затем m = 0. Но я получаю эту ошибку из-за того, что индекс списка находится вне диапазона.
Я буду признателен за любую помощь в этом отношении.
Комментарии:
1. Вы хотите, чтобы это применялось к m = 100 и m = 1 или m = 100 и m = 0? Последнее будет обтекаться, и вы можете изменить
i 1
на(i 1) % m
.2. Да. На самом деле я имел в виду последнее. Ваше предложение в точку! Спасибо, Марио Ишак
Ответ №1:
вы получаете это, потому что, когда цикл достигает конца списка, он добавляет 1 . например, если в вашем списке всего 10 элементов, ваша функция укажет 11, поэтому у вас будет ошибка, чтобы ответить на ваш вопрос, вы можете использовать приведенный ниже код :
m, n = 100, 4
x = np.ones(n)
for i in range(m-1):
y_1 = my_func(x, i)
y_2 = my_func(y_1, i 1)
R = 2*y_2 - y_1
R12 = 0.5*(x - R)