Цикл for перебирает все значения какой либо итерируемой последовательности. Во втором случае ты напрямую перебираешь объекты какого либо списка по порядку. А в первом ты перебираешь значения индексов этого списка. Замечу, что функция range это та же итерируемая последовательность. Она создает объект range, который можно превратить в лист функцией list. Так print(list(range(4))) выведет список [0, 1, 2, 3]. Как видно, список начался с 0, а цифра 4 в список не вошла, ибо так и задумано. Теперь возвращаясь к циклу for i in range(len(а)): print(a[i]). Например для списка a=[1, 2, 3, 4]. Его длина равна 4, значит функция range(len(a)) создаст список [0, 1, 2, 3]. Цикл for переберёт эти значения и напечатает элемент из a под индексом i. Вспомним, что индексирование списков начинается с 0. Кстати, если вызвать a[4] выдаст ошибку, ибо элемента в списке с таким индексом в списке нет.
я так понял, что вам нужно найти среднее значение всех элементов 3 списков, если это так, то обратите внимание вот на эти строки
my_list1 = a[i]
my_list2 = b[i]
my_list3 = c[i]
здесь сбита табуляция, однако я думаю, что вы явно прогоняете эти переменные по циклу и хотите работать с ними дальше в виде списка с переменными, в этом случае вы должны были объявить их до цикла и в самом цикле написать что то типа my_list1 += a[i], а получается, что весь цикл они просто переприсваиваются и по завершении просто равны последнему элементу a, b, c соответственно, уберите days = float(days) из цикла - занимает память и num никак не используется - ну это мелочи,
если бы вы написали что хотите от кода, я бы детальнее
Цикл for перебирает все значения какой либо итерируемой последовательности. Во втором случае ты напрямую перебираешь объекты какого либо списка по порядку. А в первом ты перебираешь значения индексов этого списка. Замечу, что функция range это та же итерируемая последовательность. Она создает объект range, который можно превратить в лист функцией list. Так print(list(range(4))) выведет список [0, 1, 2, 3]. Как видно, список начался с 0, а цифра 4 в список не вошла, ибо так и задумано. Теперь возвращаясь к циклу for i in range(len(а)): print(a[i]). Например для списка a=[1, 2, 3, 4]. Его длина равна 4, значит функция range(len(a)) создаст список [0, 1, 2, 3]. Цикл for переберёт эти значения и напечатает элемент из a под индексом i. Вспомним, что индексирование списков начинается с 0. Кстати, если вызвать a[4] выдаст ошибку, ибо элемента в списке с таким индексом в списке нет.
не совсем понятно, что вы хотите от программы.
я так понял, что вам нужно найти среднее значение всех элементов 3 списков, если это так, то обратите внимание вот на эти строки
my_list1 = a[i]
my_list2 = b[i]
my_list3 = c[i]
здесь сбита табуляция, однако я думаю, что вы явно прогоняете эти переменные по циклу и хотите работать с ними дальше в виде списка с переменными, в этом случае вы должны были объявить их до цикла и в самом цикле написать что то типа my_list1 += a[i], а получается, что весь цикл они просто переприсваиваются и по завершении просто равны последнему элементу a, b, c соответственно, уберите days = float(days) из цикла - занимает память и num никак не используется - ну это мелочи,
если бы вы написали что хотите от кода, я бы детальнее