Не могу понять TypeError - PullRequest
       3

Не могу понять TypeError

0 голосов
/ 08 ноября 2018

Я получил ошибку (TypeError: невозможно умножить последовательность на не-int типа 'float'), и я не могу понять, как это исправить.Я искал ошибку и не смог выяснить, как ее исправить, потому что примеры кода, в которых была ошибка, не были похожи на код, с которым у меня проблема.

# Variable stuff
initialMagnitudes = input("What are the initial magnitudes of the 
vector? (separate with spaces)\t").split()
for string in initialMagnitudes:
    string = float(string)
initialDirections = input("What are the initial directions of the 
vector? (in degrees and separate with spaces)\t").split()
for string in initialDirections:
    string = float(string)
vector_i = []
vector_j = []
vectorEquation = "Xi + Yj"
resultantMagnitude = 0.0
resultantDirection = 0.0
resultantVectorEquation = "R = Xi + Yj"


def find_vector_equation():
    global vectorEquation
    global vector_i
    global vector_j
    for magnitude in initialMagnitudes:
        theta = 
float(initialDirections[initialMagnitudes.index(magnitude)])
        vector_i.append(math.cos(math.radians(theta))*magnitude)
        vector_j.append(math.sin(math.radians(theta))*magnitude)
        vectorEquation = "{}i + {}j".format(vector_i, vector_j)
    print("The resultant vector equation is: "+vectorEquation)
find_vector_equation()

Вот весь код, который может быть частью проблемы.Заранее спасибо за помощь!

1 Ответ

0 голосов
/ 08 ноября 2018

Это проблема:

for string in initialMagnitudes:
    string = float(string)

Это ничего не меняет в initialMagnitudes. Вместо этого вы изменяете переменную string на версию с плавающей запятой для ее строкового значения, а затем выбрасываете это значение с плавающей точкой. Переменная цикла в операторе for - это значение, а не слот в списке; он не знает, откуда он пришел, и присвоение ему не возвращает значение в список.

Поскольку элементы initialMagnitudes все еще являются строками, попытка умножить на один из них - это умножить строку на число с плавающей запятой, и вы получите ошибку, которую получаете.

Лучше всего сделать это с пониманием списка:

initialMagnitudes = [float(value) for value in initialMagnitudes]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...