Это проблема:
for string in initialMagnitudes:
string = float(string)
Это ничего не меняет в initialMagnitudes
. Вместо этого вы изменяете переменную string
на версию с плавающей запятой для ее строкового значения, а затем выбрасываете это значение с плавающей точкой. Переменная цикла в операторе for
- это значение, а не слот в списке; он не знает, откуда он пришел, и присвоение ему не возвращает значение в список.
Поскольку элементы initialMagnitudes
все еще являются строками, попытка умножить на один из них - это умножить строку на число с плавающей запятой, и вы получите ошибку, которую получаете.
Лучше всего сделать это с пониманием списка:
initialMagnitudes = [float(value) for value in initialMagnitudes]