Продолжайте получать ошибки при использовании операции = между двумя переменными — Python

#python

Вопрос:

В настоящее время у меня есть немного кода, который добавляет определенное количество очков к баллам плоскогубцев:

 points = 5
player1 = 0
float(points)
float(player1)
player1  = points
points = 0
 

Проблема в том, что когда я запускаю это, я получаю эту ошибку:

 TypeError: unsupported operand type(s) for  =: 'int' and 'str'
 

Сначала я думал, что это связано с типами данных переменных, точек и игрока1, но прямо перед этим у меня есть функция float. Также просто в целях отладки я написал bool заявление print(bool(float(var))) , чтобы проверить, правильно ли оно плавает, и это не так. Переменная points плавала правильно, но она говорила, что player1 это не a float . Есть какие-нибудь идеи о том, почему это происходит?

Комментарии:

1. float(points) ничего не меняется points . Это должно быть points = float(points)

2. Эта ошибка не может произойти с кодом, который вы показали. points = 5 делает это int , нет str .

3. В этом коде нет никаких строковых переменных. Покажите нам настоящий код.

Ответ №1:

Если вы читаете вводимые пользователем данные, вам необходимо присвоить результат float переменной.

 points = float(points) # convert existing string, or use float(input())
player1 = float(player1)
 

Комментарии:

1. Ладно, я глупый, не могу поверить, что забыл это, большое спасибо.

Ответ №2:

Во-первых, я не смог воспроизвести ошибку, то есть я выполнил ваш код и не получил ошибку.

Все хорошо (с помощью Programiz)

Во-вторых: Когда вы приводите переменную как: float(точки), вы должны сохранить приведение в переменной (или обновить предыдущую).

 points = float(points)
 

Примечание: в вашем случае вам не нужно приводить переменную к плавающему значению, потому что вы используете только значения int.