Python. Проблемы с list
Хочу написать программу для физики. Весь день делал расчеты по физике, но ошибка расчетов более 10 %. В итоге психанул, и решил программу написать, да еще не в си, как я привык, а в питоне, чтобы расчеты были более точными. Компилятор в питоне выдает ошибку. Не могу понять что именно не правильно , хотя в си все работает:
Cкорость:
Traceback (most recent call last):
File "fff.py", line 14, in <module>
speed_glitserin[i] = l / time_glitserin[i]
IndexError: list assignment index out of range
Вот код на питоне
print("Cкорость: ")
l = 0.5
time_glitserin = [5.15, 5.01, 4.73, 7.6, 6.96]
speed_glitserin = [] * 5
for i in (0,5):
speed_glitserin[i] = l / time_glitserin[i]
print(speed_glitserin[i])
Вот тот же код на си, но он работает:
#define SIZE 5
float l =0.5;
float skorost_gl[SIZE] = {};
float t_gl[SIZE] = {5.15, 5.01, 4.73, 7.6, 6.96};
printf("Скорость :\n");
for (int i = 0; i < SIZE; i++) {
skorost_gl[i] = l / t_gl[i];
printf("v%d = %.3f\n", i + 1, skorost_gl[i]);
}
Ответы (2 шт):
Вы неправильно выбрали параметр для for Решением проблемы будет заменить строчку с for на
Но и тут все не так просто. Когда вы сделали так
speed_glitserin = [] * 5
ничего не произошло. Для вашего удобства, чтобы массив был любого размера в вашей программе в будущем, можно использовать speed_glitserin.append(значение) это добавит в конец массива значение, которое вы укажете. В итоге правильным кодом будет:
l = 0.5
time_glitserin = [5.15, 5.01, 4.73, 7.6, 6.96]
speed_glitserin = []
for i in range(0,5):
speed_glitserin.append(l / time_glitserin[i])
print(speed_glitserin[i])
Замените
for i in (0,5):
на
for i in range(0,5):
В первом случае у вас берутся два числа 1 и 5. А элемента номер 5 в списке нет.
Во втором случае берутся числа от 0 до 4.
