У меня возникли проблемы с некоторым кодом, где у меня есть текстовый файл с 633,986 кортежами, каждый из которых имеет 3 значения (пример: первая строка - -0.70,0.34,1.05
). Я хочу создать массив, где я беру величину 3 значения в кортеже, поэтому для элементов a,b,c
, я хочу magnitude = sqrt(a^2 + b^2 + c^2)
.TypeError in for loop
Однако, я получаю сообщение об ошибке в своем коде. Любой совет?
import math
fname = '\\pathname\\GerrysTenHz.txt'
open(fname, 'r')
Magn1 = [];
for i in range(0, 633986):
Magn1[i] = math.sqrt((fname[i,0])^2 + (fname[i,1])^2 + (fname[i,2])^2)
TypeError: string indices must be integers, not tuple
Вы не читаете этот файл. 'open (fname, 'r')' ** возвращает ** новый объект открытого файла, который вы игнорируете. Вы не читаете этот открытый файл. Что вы ожидаете от 'fname [i, 0]' и т. Д., Чтобы дать вам? Это неправда Python (вернее, это, но не делать то, что вы ожидаете от этого, «i, 0» рассматривается как кортеж, следовательно, исключение). –
Оператор экспоненциальности также '**' не '^'. 'x = 2 ** 3' устанавливает' x' в '8'. – Brian
И '^' - оператор XOR, а не оператор экспоненты ('**'). –