#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:
Во-первых, я не смог воспроизвести ошибку, то есть я выполнил ваш код и не получил ошибку.
Во-вторых: Когда вы приводите переменную как: float(точки), вы должны сохранить приведение в переменной (или обновить предыдущую).
points = float(points)
Примечание: в вашем случае вам не нужно приводить переменную к плавающему значению, потому что вы используете только значения int.